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

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

[nongnu] elpa/geiser-guile cf8fbd0 1/6: Support for connection-address


From: ELPA Syncer
Subject: [nongnu] elpa/geiser-guile cf8fbd0 1/6: Support for connection-address
Date: Sun, 19 Dec 2021 18:57:47 -0500 (EST)

branch: elpa/geiser-guile
commit cf8fbd078da45b8f796f33c3d0dea2ba5c6248ec
Author: jao <jao@gnu.org>
Commit: jao <jao@gnu.org>

    Support for connection-address
---
 geiser-guile.el | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/geiser-guile.el b/geiser-guile.el
index dcf872e..597e6b9 100644
--- a/geiser-guile.el
+++ b/geiser-guile.el
@@ -78,7 +78,7 @@ exported modules."
   :type 'boolean
   :link '(info-link "(guile) Declarative Modules"))
 
-(geiser-custom--defcustom geiser-guile-debug-show-bt-p nil
+(geiser-custom--defcustom geiser-guile-debug-show-bt-p t
   "Whether to automatically show a full backtrace when entering the debugger.
 If nil, only the last frame is shown."
   :type 'boolean)
@@ -144,14 +144,23 @@ effect on new REPLs.  For existing ones, use the command
   (expand-file-name "src" (file-name-directory load-file-name))
   "Directory where the Guile scheme geiser modules are installed.")
 
+(defvar geiser-guile--conn-address nil)
+
+(defun geiser-guile--get-connection-address (&optional new)
+  "The path to the UNIX socket to talk to Guile in a connection."
+  (when new
+    (setq geiser-guile--conn-address (make-temp-name "/tmp/geiser-guile-")))
+  geiser-guile--conn-address)
+
 (defun geiser-guile--parameters ()
   "Return a list with all parameters needed to start Guile.
 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)))
-        (q-flags (and (not geiser-guile-load-init-file-p) '("-q"))))
+        (q-flags (and (not geiser-guile-load-init-file-p) '("-q")))
+        (cflag (format "--listen=%s" (geiser-guile--get-connection-address 
t))))
     `(,@(and (listp geiser-guile-binary) (cdr geiser-guile-binary))
-      ,@q-flags "-L" ,geiser-guile-scheme-dir
+      ,@q-flags "-L" ,geiser-guile-scheme-dir ,cflag
       ,@(apply 'append (mapcar (lambda (p) (list "-L" p))
                                geiser-guile-load-path))
       ,@(and init-file (file-readable-p init-file) (list "-l" init-file)))))
@@ -413,7 +422,8 @@ See `geiser-guile-use-declarative-modules-p'."
         (g-load-path (buffer-local-value 'geiser-guile-load-path
                                          (or geiser-repl--last-scm-buffer
                                              (current-buffer)))))
-    (when remote (geiser-guile--set-geiser-load-path))
+    (when (or geiser-guile--connection-address remote)
+      (geiser-guile--set-geiser-load-path))
     (geiser-guile--set-up-declarative-modules)
     (geiser-eval--send/wait ",use (geiser emacs)\n'done")
     (dolist (dir g-load-path)
@@ -461,6 +471,7 @@ See `geiser-guile-use-declarative-modules-p'."
   (version-command geiser-guile--version)
   (minimum-version geiser-guile-minimum-version)
   (repl-startup geiser-guile--startup)
+  (connection-address geiser-guile--get-connection-address)
   (prompt-regexp geiser-guile--prompt-regexp)
   (debugger-prompt-regexp geiser-guile--debugger-prompt-regexp)
   (enter-debugger geiser-guile--enter-debugger)



reply via email to

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