~ chicken-core (chicken-5) 388d3432ad56ad8513a3ab86da836b2d94e747d0
commit 388d3432ad56ad8513a3ab86da836b2d94e747d0
Author: megane <meganeka@gmail.com>
AuthorDate: Fri Aug 3 13:54:05 2018 +0300
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sat Aug 4 11:41:07 2018 +0200
* eval.scm (compile): Remove failing environment lookup in ##core#set!
The x is the full expression (e.g. '(##core#set! foo bar)) which
should never be in the syntax environment.
Signed-off-by: Peter Bex <peter@more-magic.net>
Signed-off-by: felix <felix@call-with-current-continuation.org>
diff --git a/eval.scm b/eval.scm
index f1c5bb6c..e31fbfce 100644
--- a/eval.scm
+++ b/eval.scm
@@ -262,14 +262,10 @@
(and-let* ((a (assq var (##sys#current-environment)))
((symbol? (cdr a))))
(##sys#notice "assignment to imported value binding" var)))
- (let ((var
- (cond ((assq x (##sys#current-environment)) j) ;XXX this looks wrong
- ((not static)
- (##sys#alias-global-hook j #t cntr))
- (else #f))))
- (if (not var) ; static
- (lambda (v)
- (##sys#error 'eval "environment is not mutable" evalenv var)) ;XXX var?
+ (if static
+ (lambda (v)
+ (##sys#error 'eval "environment is not mutable" evalenv var)) ;XXX var?
+ (let ((var (##sys#alias-global-hook j #t cntr)))
(lambda (v)
(let ((result (##core#app val v)))
(##core#inline "C_i_persist_symbol" var)
Trap