guile-commits
[Top][All Lists]
Advanced

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

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


From: Christopher Allan Webber
Subject: [Guile-commits] 31/36: use guile eval for elisp tree-il
Date: Fri, 25 Mar 2016 20:04:26 +0000

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

commit 02bb985c987b29aee755414868d54af7a1d8a2c3
Author: Robin Templeton <address@hidden>
Date:   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 9f2b10c..3e4f74b 100644
--- a/module/language/elisp/compile-tree-il.scm
+++ b/module/language/elisp/compile-tree-il.scm
@@ -30,6 +30,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
@@ -462,7 +463,7 @@
                  (map compile-expr-1 args))))
 
 (defspecial eval-when-compile (loc args)
-  (make-const loc (compile `(progn ,@args) #:from 'elisp #:to 'value)))
+  (make-const loc (eval-elisp `(progn ,@args))))
 
 (define toplevel? (make-fluid))
 
@@ -786,7 +787,7 @@
                                           body))))
                   (make-const loc name))))
            (when (fluid-ref toplevel?)
-             (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]