~ 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-librariesTrap