[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