[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-guile 1eebcce 197/284: Guile reconnected (but not d
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-guile 1eebcce 197/284: Guile reconnected (but not debuggable (yet)) |
Date: |
Sun, 1 Aug 2021 18:29:44 -0400 (EDT) |
branch: elpa/geiser-guile
commit 1eebcce8c6da5164394225d13bd08ca5826daa9a
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Guile reconnected (but not debuggable (yet))
Or the importance of EOL. Switching to a transaction queue for
communication with the Scheme process means that i had to care about
sending eols in the queries... Guile was waiting for ever reading a
metacommand taking a variable number of arguments. Argh: this has
taken me a few hours -- i'm getting old.
---
elisp/geiser-guile.el | 37 +++++++++++++++++++++++--------------
1 file changed, 23 insertions(+), 14 deletions(-)
diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el
index 3979688..1295bac 100644
--- a/elisp/geiser-guile.el
+++ b/elisp/geiser-guile.el
@@ -101,15 +101,14 @@ This function uses `geiser-guile-init-file' if it exists."
(let ((init-file (and (stringp geiser-guile-init-file)
(expand-file-name geiser-guile-init-file))))
`(,@(and (listp geiser-guile-binary) (cdr geiser-guile-binary))
- "-q"
+ "-q" "-L" ,(expand-file-name "guile/" geiser-scheme-dir)
,@(apply 'append (mapcar (lambda (p) (list "-L" p))
geiser-guile-load-path))
,@(and init-file (file-readable-p init-file) (list "-l" init-file)))))
-(defconst geiser-guile--prompt-regexp "^[^() \n]+@([^)]*?)> ")
+;;(defconst geiser-guile--prompt-regexp "^[^() \n]+@([^)]*?)> ")
+(defconst geiser-guile--prompt-regexp "[^@()]+@([^)]*?)> ")
(defconst geiser-guile--debugger-prompt-regexp
- "^[^() \n]+@([^)]*?) \\[[0-9]+\\]> ")
-(defconst geiser-guile--debugger-preamble-regexp
- "^Entering a new prompt\\. ")
+ "^[^@()]+@([^)]*?) \\[[0-9]+\\]> ")
;;; Evaluation support:
@@ -118,7 +117,7 @@ This function uses `geiser-guile-init-file' if it exists."
(defun geiser-guile--geiser-procedure (proc &rest args)
(case proc
- ((eval compile) (format ",geiser-eval %s %s%s"
+ ((eval compile) (format ",geiser-eval %s %s%s\n"
(or (car args) "#f")
(geiser-guile--linearize-args (cdr args))
(if (cddr args) "" " ()")))
@@ -248,7 +247,14 @@ it spawn a server thread."
(interactive)
(geiser-connect 'guile))
-(defun geiser-guile--startup ()
+(defun geiser-guile--load-path-string ()
+ (let* ((path (expand-file-name "guile/" geiser-scheme-dir))
+ (witness "geiser/emacs.scm")
+ (code `(if (not (%search-load-path ,witness))
+ (set! %load-path (cons ,path %load-path)))))
+ (geiser-eval--scheme-str code)))
+
+(defun geiser-guile--startup (remote)
(set (make-local-variable 'compilation-error-regexp-alist)
`((,geiser-guile--path-rx geiser-guile--resolve-file-x)
("^ +\\([0-9]+\\):\\([0-9]+\\)" nil 1 2)))
@@ -256,23 +262,26 @@ it spawn a server thread."
(font-lock-add-keywords nil
`((,geiser-guile--path-rx 1
compilation-error-face)))
- (geiser-eval--send/wait
- (format "(set! %%load-path (cons %S %%load-path))"
- (expand-file-name "guile/" geiser-scheme-dir)))
- (geiser-eval--send/wait ",use (geiser emacs)")
+ (when remote
+ (geiser-eval--send/wait (concat (geiser-guile--load-path-string) "\n"))
+ (geiser-eval--send/wait ",use (geiser emacs)\n"))
(geiser-guile-update-warning-level))
+(defconst geiser-guile--init-server-command
+ ",use (geiser emacs)\n,geiser-start-server")
+
;;; Implementation definition:
(define-geiser-implementation guile
(binary geiser-guile--binary)
(arglist geiser-guile--parameters)
- (startup geiser-guile--startup)
+ (repl-startup geiser-guile--startup)
(prompt-regexp geiser-guile--prompt-regexp)
- (enter-debugger geiser-guile--enter-debugger)
+ (inferior-prompt-regexp geiser-guile--prompt-regexp)
+ (init-server-command geiser-guile--init-server-command)
(debugger-prompt-regexp geiser-guile--debugger-prompt-regexp)
- (debugger-preamble-regexp geiser-guile--debugger-preamble-regexp)
+ (enter-debugger geiser-guile--enter-debugger)
(marshall-procedure geiser-guile--geiser-procedure)
(find-module geiser-guile--get-module)
(enter-command geiser-guile--enter-command)
- [nongnu] elpa/geiser-guile 236ec5f 096/284: Guile: define-module forms are now individually evaluable (e.g. using C-M-x or C-x C-e)., (continued)
- [nongnu] elpa/geiser-guile 236ec5f 096/284: Guile: define-module forms are now individually evaluable (e.g. using C-M-x or C-x C-e)., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile e8d1ca5 113/284: Guile: switch to REPL and module activated., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile c6248c4 119/284: Guile: evaluation output collection reactivated., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 503e239 137/284: Guile: tweaks to the previous fix., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 6212ff6 128/284: Guile: real fix for symbol locations (needs Guile's git head)., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 90835ae 127/284: Guile: new evaluation strategy that really delimits stack frames., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile a15f00a 156/284: Dead code elimination, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 7ecebbc 160/284: Guile: xref commands working again, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile d5252a1 189/284: Guile: fix for the argument shortening algorithm, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile a77bf8b 193/284: Elisp buggettes and warnings, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 1eebcce 197/284: Guile reconnected (but not debuggable (yet)),
Philip Kaludercic <=
- [nongnu] elpa/geiser-guile fa4e0bc 198/284: Guile reconnected (but not debuggable (yet)), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 6d52afb 199/284: Better EOT token for more robust communication, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 2ea6d9d 204/284: Superior schemes, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 0d3b1f8 205/284: Support for implementation-specific font lock keywords, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 92dadf9 206/284: Typo, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile e25e31f 208/284: Fix for error in Guile initialisation, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 67e9ff2 220/284: Guile: 'format' added to the warning list, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 5ed0541 243/284: Possible fix for scanning problem, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile afa28c8 253/284: Support for guile-2.2, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-guile 60c7b01 260/284: A note on dir-locals and load-path variables, Philip Kaludercic, 2021/08/01