(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.
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.
(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.
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.