emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/geiser-racket ff0283d 058/191: Make do with a single conne


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-racket ff0283d 058/191: Make do with a single connection
Date: Sun, 1 Aug 2021 18:32:00 -0400 (EDT)

branch: elpa/geiser-racket
commit ff0283d264b69c76991569d142dbf3e7c96ce03d
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>

    Make do with a single connection
    
    Separate connections for the REPL and Geiser commands was kind of
    neat, but it had the problem of synchronising the current namespace
    for both connections. A quick fix would have been to ask the scheme
    for the current namespace for every Geiser command in the REPL, but
    that, besides clunky, would add potentially prohibitive overhead for
    (real) remote connections.
    
    As it happens, using a single connection turned out to be not that
    difficult and relatively clean code-wise. We could even turn back to
    not use inferior schemes, and the net result of this refactoring would
    be the replacement of comint-redirect (which wasn't able to match the
    whole EOT token if it didn't arrive all at once) by transaction queues
    (which also makes geiser-connection's implementation cleaner).
    
    But using an inferior scheme has a dog-food value, and allows external
    processes to connect to the scheme being used by Geiser without
    further ado, which could be useful for debugging (although this is a
    lame excuse: nothing prevents you from starting a REPL server from
    emacs if you want). We'll see.
---
 elisp/geiser-racket.el | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/elisp/geiser-racket.el b/elisp/geiser-racket.el
index f3aa7e5..3ab181b 100644
--- a/elisp/geiser-racket.el
+++ b/elisp/geiser-racket.el
@@ -82,7 +82,7 @@ This function uses `geiser-racket-init-file' if it exists."
       ,@(and init-file (file-readable-p init-file) (list "-f" init-file))
       "-f" ,(expand-file-name "racket/geiser.rkt" geiser-scheme-dir))))
 
-(defconst geiser-racket--prompt-regexp "^=?\\(mzscheme\\|racket\\)@[^ ]*?> ")
+(defconst geiser-racket--prompt-regexp "\\(mzscheme\\|racket\\)@[^ ]*?> ")
 
 (defconst geiser-racket--init-server-command ",start-geiser")
 
@@ -97,6 +97,12 @@ This function uses `geiser-racket-init-file' if it exists."
         (car (geiser-syntax--read-from-string (match-string-no-properties 1)))
       "#f")))
 
+(defun geiser-racket--enter-command (module)
+  (when (stringp module)
+    (cond ((zerop (length module)) ",enter #f")
+          ((file-name-absolute-p module) (format ",enter (file %S)" module))
+          (t (format ",enter %s" module)))))
+
 (defun geiser-racket--geiser-procedure (proc &rest args)
   (case proc
     ((eval compile)
@@ -140,12 +146,6 @@ This function uses `geiser-racket-init-file' if it exists."
 (defun geiser-racket--symbol-begin (module)
   (save-excursion (skip-syntax-backward "^-()>") (point)))
 
-(defun geiser-racket--enter-command (module)
-  (when (stringp module)
-    (cond ((zerop (length module)) ",enter #f")
-          ((file-name-absolute-p module) (format ",enter (file %S)" module))
-          (t (format ",enter %s" module)))))
-
 (defun geiser-racket--import-command (module)
   (and (stringp module)
        (not (zerop (length module)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]