1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-29 22:40:34 +02:00
guile/ice-9
Neil Jerram 72553cb0ce Support multiple concurrent instances of Emacs + GDS server
By:

- Making the Unix socket name unique (for each Emacs instance), by
  appending Emacs's PID to it.

- Changing the GDS server to listen on both Unix domain and TCP (and
  not to mind if the TCP bind fails, which will happen if another GDS
  instance has already bound to the TCP port number).

- Adding this unique Unix socket name to the environment (as
  GDS_UNIX_SOCKET_NAME), so that Guile clients started from inside
  Emacs can pick it up.

- Changing the GDS client code to look for GDS_UNIX_SOCKET_NAME in the
  environment, and to connect to the Unix socket with that name
  instead of over TCP.

  Guile clients started outside Emacs will not find
  GDS_UNIX_SOCKET_NAME and so will fall back to using TCP.  This means
  they will connect to whichever Emacs + GDS server instance started
  first.

* emacs/gds-server.el (gds-start-server): Take both Unix socket name
  and TCP port args, instead of just one (which could be either Unix
  or TCP), and pass these on to `run-server'.  Remove unused optional
  bufname arg.

* emacs/gds.el (gds-unix-socket-name, gds-tcp-port): New variables.
  (gds-socket-type-alist): Removed.
  (gds-run-debug-server): Pass gds-unix-socket-name and gds-tcp-port
  to gds-start-server.  Add the Unix socket name to the environment.
  (gds-server-socket-type): Note now obsolete.

* ice-9/gds-client.scm (connect-to-gds): Get Unix socket name from
  environment, and connect to this in preference to using TCP.

* ice-9/gds-server.scm (run-server): Take both Unix socket name and
  TCP port args.  Listen and accept connections on both.
2008-12-13 00:01:34 +00:00
..
debugger Remove `.cvsignore' files. 2008-09-11 21:28:21 +02:00
debugging Remove everything to do with GDS Breakpoints 2008-12-10 00:19:11 +00:00
and-let-star.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
arrays.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
boot-9.scm Changes from arch/CVS synchronization 2007-09-01 16:54:26 +00:00
buffered-input.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
calling.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
ChangeLog-2008 Rename ChangeLog' files to ChangeLog-2008'. 2008-09-12 21:49:58 +02:00
channel.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
common-list.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
compile-psyntax.scm * psyntax.ss (build-data): Don't quote self-evaluating expressions 2003-01-16 11:48:14 +00:00
debug.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
debugger.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
deprecated.scm * deprecated.scm (make-uniform-array): Don't pass the prototype as 2006-02-12 01:01:46 +00:00
documentation.scm merge from 1.8 branch 2006-06-17 22:53:04 +00:00
emacs.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
expect.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
format.scm merge from 1.8 branch 2006-10-09 22:59:10 +00:00
ftw.scm merge from 1.8 branch 2006-10-09 22:59:10 +00:00
gap-buffer.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
gds-client.scm Support multiple concurrent instances of Emacs + GDS server 2008-12-13 00:01:34 +00:00
gds-server.scm Support multiple concurrent instances of Emacs + GDS server 2008-12-13 00:01:34 +00:00
getopt-long.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
hcons.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
history.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
i18n.scm Changes from arch/CVS synchronization 2007-01-31 20:58:20 +00:00
lineio.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
list.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
ls.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
Makefile.am Add `ChangeLog-2008' files to the distribution. 2008-09-12 21:57:52 +02:00
mapping.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
match.scm Fix `(ice-9 match)' for lists of lists. 2008-02-22 16:05:30 +00:00
networking.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
null.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
occam-channel.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
optargs.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
poe.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
popen.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
posix.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
pretty-print.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
psyntax.pp * evalext.c, evalext.h (scm_self_evaluating_p): New function. 2003-01-20 10:12:39 +00:00
psyntax.ss merge from 1.8 branch 2006-04-16 23:43:48 +00:00
q.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
r4rs.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
r5rs.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
rdelim.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
README Initial revision 2001-06-13 09:25:43 +00:00
receive.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
regex.scm Fix handling of the FLAGS argument in `fold-matches'. 2008-09-25 21:07:06 +02:00
runq.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
rw.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
safe-r5rs.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
safe.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
serialize.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
session.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
slib.scm Changes from arch/CVS synchronization 2007-10-02 03:16:28 +00:00
stack-catch.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
streams.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
string-fun.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
syncase.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
test.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
threads.scm merge from 1.8 branch 2006-06-17 22:53:04 +00:00
time.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00
weak-vector.scm merge from 1.8 branch 2006-04-16 23:43:48 +00:00

This directory contains various bits of Guile Scheme code.
Most of these are packaged as modules, with foo.scm implementing
the module `(ice-9 foo)'.

The non-module files are:

boot-9.scm	-- loaded on guile startup
		   implements module system + lots of other stuff
arrays.scm	-- loaded by boot-9.scm
networking.scm	-- loaded by boot-9.scm
posix.scm	-- loaded by boot-9.scm
r4rs.scm	-- loaded by boot-9.scm