[armedbear-cvs] r11438 - trunk/j/src/org/armedbear/lisp

Erik Huelsmann ehuelsmann at common-lisp.net
Sat Dec 13 21:24:22 UTC 2008


Author: ehuelsmann
Date: Sat Dec 13 21:24:21 2008
New Revision: 11438

Log:
Fix a whole slew of failures involving MACROEXAND/EXPAND-IN-CURRENT-ENV.

Back to 52 (compiled) failures.

Modified:
   trunk/j/src/org/armedbear/lisp/precompiler.lisp

Modified: trunk/j/src/org/armedbear/lisp/precompiler.lisp
==============================================================================
--- trunk/j/src/org/armedbear/lisp/precompiler.lisp	(original)
+++ trunk/j/src/org/armedbear/lisp/precompiler.lisp	Sat Dec 13 21:24:21 2008
@@ -713,14 +713,14 @@
         expansion)))
 
 (defun precompile-macrolet (form)
-  (let ((*local-functions-and-macros* *local-functions-and-macros*)
-        (macros (cadr form)))
-    (dolist (macro macros)
-      (let ((name (car macro))
-            (lambda-list (cadr macro))
-            (forms (cddr macro)))
-        (push (define-local-macro name lambda-list forms) *local-functions-and-macros*)
-        (push name *local-functions-and-macros*)))
+  (let ((*compile-file-environment*
+         (make-environment *compile-file-environment*)))
+    (dolist (definition (cadr form))
+      (environment-add-macro-definition
+       *compile-file-environment*
+       (car definition)
+       (make-macro (car definition)
+                   (make-expander-for-macrolet definition))))
     (multiple-value-bind (body decls)
         (parse-body (cddr form) nil)
       `(locally , at decls ,@(mapcar #'precompile1 body)))))




More information about the armedbear-cvs mailing list