~ chicken-core (chicken-5) ffb143ee56c25598fde0097f04cf9c6d1e363824


commit ffb143ee56c25598fde0097f04cf9c6d1e363824
Author:     felix <felix@z.(none)>
AuthorDate: Fri Feb 25 12:26:46 2011 +0100
Commit:     felix <felix@z.(none)>
CommitDate: Fri Feb 25 12:26:46 2011 +0100

    eval/meta change also in compiler (untested)

diff --git a/compiler.scm b/compiler.scm
index ec03085d..8b300de0 100644
--- a/compiler.scm
+++ b/compiler.scm
@@ -475,13 +475,23 @@
 	    (else x))))
   
   (define (eval/meta form)
-    (parameterize ((##sys#current-module #f)
-		   (##sys#macro-environment (##sys#meta-macro-environment)))
-      ((##sys#compile-to-closure
-	form
-	'() 
-	(##sys#current-meta-environment))
-       '() ) ))
+    (let ((oldcm (##sys#current-module))
+	  (oldme (##sys#macro-environment))
+	  (mme (##sys#meta-macro-environment)))
+      (dynamic-wind
+	  (lambda () 
+	    (##sys#current-module #f)
+	    (##sys#macro-environment mme))
+	  (lambda ()
+	    ((##sys#compile-to-closure
+	      form
+	      '() 
+	      (##sys#current-meta-environment))
+	     '() ) )
+	  (lambda ()
+	    (##sys#current-module oldcm)
+	    (##sys#meta-macro-environment (##sys#macro-environment))
+	    (##sys#macro-environment oldme)))))
 
   (define (emit-import-lib name il)
     (let* ((fname (if all-import-libraries
Trap