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

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

[nongnu] elpa/geiser-chez a5a6176 11/37: fix compile and load for chez


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-chez a5a6176 11/37: fix compile and load for chez
Date: Sun, 1 Aug 2021 18:25:56 -0400 (EDT)

branch: elpa/geiser-chez
commit a5a617648a445ff323bc7c832786769782d8c45c
Author: Maris Orbidans <maris.orbidans@onthemarket.com>
Commit: Maris Orbidans <maris.orbidans@onthemarket.com>

    fix compile and load for chez
---
 elisp/geiser-chez.el         |  2 +-
 scheme/chez/geiser/geiser.ss | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/elisp/geiser-chez.el b/elisp/geiser-chez.el
index 2bd45f1..ff75e5a 100644
--- a/elisp/geiser-chez.el
+++ b/elisp/geiser-chez.el
@@ -104,7 +104,7 @@ This function uses `geiser-chez-init-file' if it exists."
     (geiser-eval--send/wait "(begin (import (geiser)) (write `((result ) 
(output . \"\"))) (newline))")))
 
 (defun geiser-chez--display-error (module key msg)
-  (and key (message key) nil))
+  (and key (message msg) nil))
 
 ;;; Implementation definition:
 
diff --git a/scheme/chez/geiser/geiser.ss b/scheme/chez/geiser/geiser.ss
index 8b9aba7..38bc68f 100644
--- a/scheme/chez/geiser/geiser.ss
+++ b/scheme/chez/geiser/geiser.ss
@@ -4,9 +4,26 @@
           geiser:module-completions
           geiser:autodoc
           geiser:no-values
+         geiser:load-file
           geiser:newline)
   (import (chezscheme))
 
+  (define (last-index-of str-list char idx last-idx)
+    (if (null? str-list)
+       last-idx
+       (last-index-of (cdr str-list) char (+ 1 idx) (if (char=? char (car 
str-list)) idx last-idx))))
+
+  (define (obj-file-name name)
+    (let ((idx (last-index-of (string->list name) #\. 0 -1)))
+      (if (= idx -1)
+         (string-append name ".so")
+         (string-append (substring name 0 idx) ".so"))))
+
+  (define (geiser:load-file filename)
+    (let ((output-filename (obj-file-name filename)))
+      (maybe-compile-file filename output-filename)
+      (load output-filename)))
+
   (define string-prefix?
     (lambda (x y)
       (let ([n (string-length x)])



reply via email to

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