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

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

[nongnu] elpa/geiser-chicken a35ce4e 065/102: Chicken 5 works with Geise


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-chicken a35ce4e 065/102: Chicken 5 works with Geiser, many features removed
Date: Sun, 1 Aug 2021 18:26:56 -0400 (EDT)

branch: elpa/geiser-chicken
commit a35ce4ed5b28a3e49a42431bb867be020cb08ca1
Author: Dan Leslie <dan@ironoxide.ca>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>

    Chicken 5 works with Geiser, many features removed
---
 elisp/geiser-chicken.el | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/elisp/geiser-chicken.el b/elisp/geiser-chicken.el
index 9f38354..dafdef9 100644
--- a/elisp/geiser-chicken.el
+++ b/elisp/geiser-chicken.el
@@ -109,12 +109,6 @@ this variable to t."
   :type 'integer
   :group 'geiser-chicken)
 
-(geiser-custom--defcustom geiser-chicken-required-modules
-    (list "chicken-doc" "apropos" "data-structures" "extras" "ports" "posix" 
"srfi-1" "srfi-13" "srfi-14" "srfi-18" "srfi-69" "tcp" "utils")
-  "Modules automatically loaded in the Chicken REPL."
-  :type '(repeat string)
-  :group 'geiser-chicken)
-
 
 ;;; REPL support:
 
@@ -133,9 +127,7 @@ This function uses `geiser-chicken-init-file' if it exists."
     ,@n-flags "-include-path" ,(expand-file-name "chicken/" geiser-scheme-dir)
     ,@(apply 'append (mapcar (lambda (p) (list "-include-path" p))
                              geiser-chicken-load-path))
-    ,@(and init-file (file-readable-p init-file) (list init-file))
-    ,@(apply 'append (mapcar (lambda (m) (list "-R" m))
-                            geiser-chicken-required-modules)))))
+    ,@(and init-file (file-readable-p init-file) (list init-file)))))
 
 (defconst geiser-chicken--prompt-regexp "#[^;]*;[^:0-9]*:?[0-9]+> ")
 
@@ -266,14 +258,17 @@ This function uses `geiser-chicken-init-file' if it 
exists."
 (defconst geiser-chicken-minimum-version "4.8.0.0")
 
 (defun geiser-chicken--version (binary)
-  (car (process-lines binary "-e" "(display (chicken-version))")))
+  (cadr
+   (split-string
+    (cadddr
+     (process-lines "csc" "-version")))))
 
 (defun connect-to-chicken ()
   "Start a Chicken REPL connected to a remote process."
   (interactive)
   (geiser-connect 'chicken))
 
-(defun geiser-chicken--compile-or-load (force-load)
+(defun geiser-chicken4--compile-or-load (force-load)
   (let ((target
          (expand-file-name "chicken/geiser/emacs.so" geiser-scheme-dir))
         (source
@@ -295,9 +290,20 @@ This function uses `geiser-chicken-init-file' if it 
exists."
                      suppression-prefix source target suppression-postfix)))))
       (geiser-eval--send/wait load-sequence))))
 
+(defun geiser-chicken5-load ()
+  (let ((source (expand-file-name "chicken/geiser/chicken5.scm" 
geiser-scheme-dir))
+       (suppression-prefix
+         "(define geiser-stdout (current-output-port))(current-output-port 
(make-output-port (lambda a #f) (lambda a #f)))")
+        (suppression-postfix
+         "(current-output-port geiser-stdout)"))
+    (geiser-eval--send/wait (format "%s (load \"%s\") (import geiser) %s" 
suppression-prefix source suppression-postfix))))
+
 (defun geiser-chicken--startup (remote)
   (compilation-setup t)
-  (geiser-chicken--compile-or-load t))
+  (cond
+   ((version< (geiser-chicken--version nil) "5.0.0")
+    (geiser-chicken4--compile-or-load t))
+   (t (geiser-chicken5-load))))
 
 
 ;;; Implementation definition:



reply via email to

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