guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 29/36: use guile eval for elisp tree-il


From: Christopher Allan Webber
Subject: [Guile-commits] 29/36: use guile eval for elisp tree-il
Date: Tue, 19 Oct 2021 17:59:41 -0400 (EDT)

cwebber pushed a commit to branch wip-elisp-rebased
in repository guile.

commit e1d662e9532fb287e4ad3a1f42958fe5be667524
Author: Robin Templeton <robin@terpri.org>
AuthorDate: Mon Aug 18 04:01:39 2014 -0400

    use guile eval for elisp tree-il
    
    (Best-ability ChangeLog annotation added by Christopher Allan Webber.)
    
    * module/language/elisp/boot.el (eval): Update with simplified definition.
    * module/language/elisp/compile-tree-il.scm: Import "(language tree-il 
eval)".
      (eval-when-compile): Use eval-elisp.
      (defmacro): Use eval-tree-il.
    * module/language/elisp/runtime.scm: Import "(language tree-il eval)".
      (eval-elisp): Use "eval" to evaluate compiled form within current-module.
---
 module/language/elisp/boot.el             | 7 +------
 module/language/elisp/compile-tree-il.scm | 5 +++--
 module/language/elisp/runtime.scm         | 3 ++-
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/module/language/elisp/boot.el b/module/language/elisp/boot.el
index e6d3994..27af815 100644
--- a/module/language/elisp/boot.el
+++ b/module/language/elisp/boot.el
@@ -209,12 +209,7 @@
       f)))
 
 (defun eval (form)
-  (%funcall (@ (system base compile) compile)
-            form
-            (%funcall (@ (guile) symbol->keyword) 'from)
-            'elisp
-            (%funcall (@ (guile) symbol->keyword) 'to)
-            'value))
+  (%funcall (@ (language elisp runtime) eval-elisp) form))
 
 (defun %indirect-function (object)
   (cond
diff --git a/module/language/elisp/compile-tree-il.scm 
b/module/language/elisp/compile-tree-il.scm
index ff49c3d..5525634 100644
--- a/module/language/elisp/compile-tree-il.scm
+++ b/module/language/elisp/compile-tree-il.scm
@@ -31,6 +31,7 @@
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 format)
+  #:use-module (language tree-il eval)
   #:export (compile-tree-il
             compile-progn
             compile-eval-when-compile
@@ -466,7 +467,7 @@
 (defspecial eval-when-compile (loc args)
   (make-const loc (with-native-target
                    (lambda ()
-                     (compile `(progn ,@args) #:from 'elisp #:to 'value)))))
+                     (eval-elisp `(progn ,@args))))))
 
 (define toplevel? (make-fluid))
 
@@ -792,7 +793,7 @@
            (when (fluid-ref toplevel?)
              (with-native-target
               (lambda ()
-                (compile tree-il #:from 'tree-il #:to 'value))))
+                (eval-tree-il tree-il))))
            tree-il)))
     (else (report-error loc "bad defmacro" args))))
 
diff --git a/module/language/elisp/runtime.scm 
b/module/language/elisp/runtime.scm
index d6d4f70..c8c39bf 100644
--- a/module/language/elisp/runtime.scm
+++ b/module/language/elisp/runtime.scm
@@ -22,6 +22,7 @@
   #:use-module (ice-9 format)
   #:use-module ((system base compile)
                 #:select (compile))
+  #:use-module (language tree-il eval)
   #:export (nil-value
             t-value
             value-slot-module
@@ -247,7 +248,7 @@
   (set! set-lexical-binding-mode (lambda (x) (set-symbol-value! 
'lexical-binding x))))
 
 (define (eval-elisp form)
-  (compile form #:from 'elisp #:to 'value))
+  (eval (compile form #:from 'elisp #:to 'tree-il) (current-module)))
 
 (define (compile-elisp form)
   (compile (compile form #:from 'elisp #:to 'bytecode)



reply via email to

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