1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
Commit graph

79 commits

Author SHA1 Message Date
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
Neil Jerram
1a2285752e Add GDS test and documentation files
(Transferred from the remains of the old standalone guile-debugging
project at gna.org.)

* emacs/gds-faq.txt, emacs/gds-test.el, emacs/gds-test.sh,
  emacs/gds-test.stdin, emacs/gds-tutorial.txt: New files.
2008-12-12 22:32:59 +00:00
Neil Jerram
8b08722023 Add a GDS protocol hook, that we can use for testing
* emacs/gds.el (gds-protocol-hook): New hook.
  (gds-debug-protocol): Run this hook for each received protocol form.
2008-12-11 21:40:03 +00:00
Neil Jerram
69986e21d3 Remove everything to do with GDS Breakpoints
(which I now regard as an unsuccesful experiment)

This commit makes all affected files the same in master as they are in branch_release-1-8.

* doc/ref/api-debug.texi (Breakpoints): Removed.

* doc/ref/scheme-using.texi (GDS Introduction, GDS Getting Started,
  Displaying the Scheme Stack): Remove mentions of breakpoints.
  (Setting Specific Breakpoints, Setting GDS-managed Breakpoints,
  Setting and Managing Breakpoints, Listing and Deleting Breakpoints,
  Moving and Losing Breakpoints): Removed.

* emacs/gds-scheme.el (gds-bufferless-breakpoints,
  gds-bpdef:behaviour, gds-bpdef:type, gds-bpdef:file-name,
  gds-bpdef:proc-name, gds-bpdef:lc, gds-breakpoint-number,
  gds-breakpoint-buffers, gds-breakpoint-programming,
  gds-breakpoint-cache, gds-breakpoint-face,
  gds-breakpoints-file-name, gds-delete-lost-breakpoints,
  gds-bpdefs-cache, gds-read-breakpoints-file, gds-adopt-breakpoints,
  gds-adopt-breakpoint, gds-make-breakpoint-overlay,
  gds-send-breakpoint-to-client, gds-default-breakpoint-type,
  gds-set-breakpoint, gds-defun-name-region,
  gds-breakpoint-overlays-at, gds-write-breakpoints-file,
  gds-fold-breakpoints, gds-delete-breakpoints, gds-delete-breakpoint,
  gds-breakpoint-at-point, gds-union, gds-user-selected-breakpoint,
  gds-describe-breakpoints, gds-describe-breakpoint,
  gds-after-save-update-breakpoints, gds-breakpoint-map): Removed.
  (gds-nondebug-protocol): Removed handling for `breakpoint' and
  `get-breakpoints'.

* emacs/gds.el (gds-scheme-first-load): Removed.

* ice-9/debugging/Makefile.am (ice9_debugging_sources): Removed
  breakpoints.scm and load-hooks.scm.

* ice-9/debugging/breakpoints.scm: Removed.

* ice-9/debugging/load-hooks.scm: Removed.

* ice-9/gds-client.scm (handle-nondebug-protocol): Remove everything
  to do with breakpoints.
  (breakpoints, set-gds-breakpoints): Removed.
  (run-utility): Call `connect-to-gds' instead of `set-gds-breakpoints'.
2008-12-10 00:19:11 +00:00
Ludovic Courtès
61db429e25 Add `ChangeLog-2008' files to the distribution. 2008-09-12 21:57:52 +02:00
Ludovic Courtès
afb59d75b8 Rename ChangeLog' files to ChangeLog-2008'. 2008-09-12 21:49:58 +02:00
Ludovic Courtès
85ca88c68b Remove `.cvsignore' files. 2008-09-11 21:28:21 +02:00
Neil Jerram
091baf9edf Single stepping through code from Emacs
When you use GDS to evaluate Scheme code from Emacs, you can now use
`C-u' to indicate that you want to single step through that code. See
`Evaluating Scheme Code' in the manual for more details.

	* scheme-using.texi (Evaluating Scheme Code): Document use of
        `C-u' prefix with evaluation commands.

        * gds-scheme.el (gds-eval-region, gds-eval-expression)
        (gds-eval-defun, gds-eval-last-sexp): Support `C-u' prefix,
        meaning that user wants to single step through the code.

        * gds-client.scm (handle-nondebug-protocol): Add support for
        setting a trap on code that is about to be evaluated.
2008-07-17 23:05:57 +01:00
Neil Jerram
ed1dec3ce3 * gds-scheme.el (gds-display-results): Use save-selected-window
instead of switching to other-window in order to return to the
        proper window in frames with more than two windows.
2007-02-06 23:31:03 +00:00
Neil Jerram
6d6a3fe260 (gds-display-results): Add another binding for
gds-show-last-stack (RET).
(scheme-mode-map): And another: C-h S.
(scheme-mode-map): And an alternative C-h G binding for
gds-apropos, as we probably should not be using C-h C-g.
2007-01-17 13:38:17 +00:00
Neil Jerram
19b16cd055 *** empty log message *** 2006-11-13 22:21:36 +00:00
Neil Jerram
ba6984d09b (gds-socket-type-alist): New.
(gds-run-debug-server): Use gds-server-socket-type and
gds-socket-type-alist instead of gds-server-port-or-path.
(gds-server-socket-type): New, replacing gds-server-port-or-path.
2006-10-14 16:34:16 +00:00
Neil Jerram
e2d23cc0f8 * gds.el (gds-run-debug-server): Use variable
gds-server-port-or-path instead of hardcoded 8333.
(gds-server-port-or-path): New.

* gds-server.el (gds-start-server): Change port arg to
port-or-path, to support Unix domain sockets.

* gds-client.scm (connect-to-gds): Try to connect by Unix domain
socket if TCP connection fails.

* gds-server.scm (run-server): Update to support listening on a
Unix domain socket.
2006-10-12 23:24:02 +00:00
Neil Jerram
fce4b99e9e * gds-server.el (gds-start-server): Change "ossau" to "ice-9".
* gds-scheme.el (gds-start-utility-guile): Change "ossau" to
"ice-9".
2006-08-18 14:21:23 +00:00
Neil Jerram
731bcf738e * Makefile.am: New file.
* gds.el, gds-scheme.el, gds-server.el: New files.
2006-06-19 22:01:23 +00:00
Kevin Ryde
6e7d5622ee merge from 1.8 branch 2006-04-16 23:37:40 +00:00
Neil Jerram
e6def95db0 Remove GDS files. 2005-07-09 15:11:09 +00:00
Marius Vollmer
92205699d0 The FSF has a new address. 2005-05-23 19:57:22 +00:00
Marius Vollmer
0954f871cd *** empty log message *** 2004-07-06 09:54:35 +00:00
Neil Jerram
cbd3255bf8 Document removal of guileint. 2004-03-10 10:14:13 +00:00
Neil Jerram
464620ec63 Remove guileint files. 2004-03-10 10:09:33 +00:00
Neil Jerram
6841205b19 *** empty log message *** 2004-02-25 19:11:33 +00:00
Neil Jerram
7f05d32538 * gds-client.scm (handle-instruction-1): In `eval' protocol, catch
and report read errors nicely.

	* gds.el (gds-display-buffers): Don't select the GDS window.
2004-02-25 19:10:07 +00:00
Neil Jerram
9de7b7abb4 * gds-tutorial.txt, gds-problems.txt: New files. 2004-02-22 11:11:17 +00:00
Neil Jerram
580987cf4b * gds.el: Add requirements: cl, comint, info.
(gds-guile-program): New.
	(gds-start): When starting or restarting, kill captive if it
	exists.  Use gds-guile-program instead of just "guile".
	(gds-mode): Use widget minor mode.
	(gds-client-ref): New optional client arg.
	(gds-update-buffers): Don't call widget-setup.
	(gds-heading-face): New.
	(gds-insert-interaction): Various prettifications.
	(gds-heading-insert): New.
	(gds-choose-client): Check that numbers in client and gds-client
	are still valid.
	(gds-eval-expression, gds-apropos): Remove text properties from
	expression to evaluate.
	(gds-mode-map): Don't set widget-mode-map as parent.
	(gds-start-captive): Use gds-guile-program instead of just
	"guile".

	* gds-client.scm (install-breakpoints): Bugfix: avoid null lists
	in traversal.
	(eval-thread, gds-eval): Where expression has multiple parts,
	modify output to say which part is being evaluated.
2004-02-21 14:53:07 +00:00
Mikael Djurfeldt
f1dc5f45ab * Makefile.am (TAGS_FILES): Use this variable instead of
ETAGS_ARGS so that TAGS can be built using separate build
directory.

* Makefile.am (TAGS_FILES): Use this variable instead of
ETAGS_ARGS so that TAGS can be built using separate build
directory.

* debugger/breakpoints/Makefile.am (TAGS_FILES),
debugger/Makefile.am (TAGS_FILES), Makefile.am (TAGS_FILES): Use
this variable instead of ETAGS_ARGS so that TAGS can be built
using separate build directory.

* primitives/Makefile.am (TAGS_FILES), internals/Makefile.am
(TAGS_FILES), Makefile.am (TAGS_FILES): Use this variable instead
of ETAGS_ARGS so that TAGS can be built using separate build
directory.

* Makefile.am, goops/Makefile.am (TAGS_FILES): Use this variable
instead of ETAGS_ARGS so that TAGS can be built using separate
build directory.

* Makefile.am (TAGS_FILES): Use this variable instead of
ETAGS_ARGS so that TAGS can be built using separate build
directory.
2004-02-09 01:48:34 +00:00
Neil Jerram
15e6a33592 * gds.el (gds-handle-client-input): Handle new `thread-status'
protocol.
	(gds-display-slow-eval): New.
	(gds-client-ref): Bugfix: buf -> (cdr buf).
	(gds-display-buffers): Bugfix: minimum overlay end value is 1, not
	0.
	(gds-evals-in-progress): New.
	(gds-results): New.
	(gds-insert-interaction): Show evaluations in progress (with
	button to interrupt them) and results of last help or evaluation.
	(gds-interrupt-eval): New.
	(gds-debug-trap-hooks, gds-up, gds-down): New.
	(gds-eval-region, gds-eval-expression): Include abbreviated code
	in eval correlator.
	(gds-abbreviated-length, gds-abbreviated): New.
	(gds-mode-map): New keys for gds-debug-trap-hooks, gds-up,
	gds-down.
	(gds-debug-menu): New menu entries for gds-up, gds-down.

	* gds-client.scm (gds-connect): Enable trapping for gds-eval
	stacks.
	(ui-read-thread-proc): Write 'running status earlier.
	(stack->emacs-readable): Limit stack length to 'depth debug
	option.
	(handle-instruction): Update format of eval correlator.
	(handle-instruction-1): Resolve module names from root module
	instead of from current module.
	(resolve-module-from-root): New.
	(handle-instruction-1): New protocol `interrupt-eval'.
	(eval-thread-table): New.
	(eval-thread): Add thread to eval-thread-table; write new protocol
	to frontend to communicate eval thread status; update for new
	correlator format; bind correlator local before entering loop2.
	(gds-eval): Use start-stack 'gds-eval-stack to rebase stack.

	* gds.el (gds-start, gds-start-captive): Do
	`process-kill-without-query' as soon as processes started, ...
	(gds-shutdown, gds-kill-captive): ... instead of here.
	(gds-display-results): More clearly show unspecified results; show
	results in interaction view instead of in separate window.
	(gds-send): Add sent protocol to transcript.
2004-02-04 12:50:37 +00:00
Neil Jerram
1264d33105 Simplify algorithm for popping up windows. 2004-01-26 21:40:42 +00:00
Neil Jerram
ea73836c1d Reorg gds-send args; use evaluation correlator 2004-01-20 22:13:20 +00:00
Neil Jerram
a6ab1debaf Implement eval threads. 2004-01-20 22:09:32 +00:00
Neil Jerram
5c963b6eb8 Add GDS doc 2004-01-20 22:05:44 +00:00
Neil Jerram
7dd3f110af Initial support for setting source breakpoints. 2003-11-27 20:54:05 +00:00
Neil Jerram
0f8b558cbc Work in progress. 2003-11-19 01:27:31 +00:00
Neil Jerram
d9d022a7d6 Work in progress. 2003-11-19 01:22:06 +00:00
Rob Browning
ec3972f753 *** empty log message *** 2003-11-17 19:19:26 +00:00
Rob Browning
936f702bfd new file. 2003-11-17 19:15:30 +00:00
Neil Jerram
e707c78b4b Lots of ongoing development. 2003-11-11 23:40:38 +00:00
Neil Jerram
32ac6ed12f Moved all gds files here; plus ongoing work on them. 2003-11-11 23:30:06 +00:00
Neil Jerram
9f1af5d96e Work on debugger frontend code. 2003-10-16 11:53:58 +00:00
Neil Jerram
41a80feb8a UI frontend work: eval support. 2003-10-06 20:33:02 +00:00
Neil Jerram
02b0c69289 Debugger UI asynchronous thread support. 2003-10-04 20:03:51 +00:00
Neil Jerram
79b1c5b67f Work (in progress) on new debugging frontend. 2003-09-25 20:32:10 +00:00
Neil Jerram
4559123bee Rewrite enhanced editing logic - sexp-track.el. 2003-08-31 22:59:39 +00:00
Neil Jerram
fde791b502 Misc. file rationalization. 2003-08-21 18:34:43 +00:00
Neil Jerram
7737c5f259 Reorg to remove guile-init.el. 2003-08-21 18:13:59 +00:00
Neil Jerram
db24983896 Import Mikael's Emacs interface code (guileint-1.5.2) into Guile CVS. 2003-08-20 19:00:44 +00:00
Thien-Thi Nguyen
327d4dd38f doc/ref/ChangeLog 2002-02-26 10:32:34 +00:00
Thien-Thi Nguyen
0a3c6bb22a *** empty log message *** 2001-11-20 00:24:55 +00:00
Thien-Thi Nguyen
d0eeda8563 *** empty log message *** 2001-11-19 22:10:57 +00:00
Thien-Thi Nguyen
78b1e5ad61 Initial revision 2001-11-19 22:09:34 +00:00