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

commit 1393f1d856e08920462cce3e13b99733538af71c
Author: Robin Templeton <[email protected]>
AuthorDate: Tue Jun 24 00:10:10 2014 -0400

    defvar affects default value
    
    (Best-ability ChangeLog annotation added by Christopher Allan Webber.)
    
    * module/language/elisp/compile-tree-il.scm (defvar): Refactor 
appropriately.
---
 module/language/elisp/compile-tree-il.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/module/language/elisp/compile-tree-il.scm 
b/module/language/elisp/compile-tree-il.scm
index a405ab4..55e5c3b 100644
--- a/module/language/elisp/compile-tree-il.scm
+++ b/module/language/elisp/compile-tree-il.scm
@@ -511,10 +511,13 @@
        (make-conditional
         loc
         (make-call loc
-                   (make-module-ref loc runtime 'symbol-bound? #t)
+                   (make-module-ref loc runtime 'symbol-default-bound? #t)
                    (list (make-const loc sym)))
         (make-void loc)
-        (set-variable! loc sym (compile-expr value)))
+        (make-call loc
+                   (make-module-ref loc runtime 'set-symbol-default-value! #t)
+                   (list (make-const loc sym)
+                         (compile-expr value))))
        (make-const loc sym))))
     (else (report-error loc "Bad defvar" args))))
 

Reply via email to