~ chicken-core (chicken-5) 42853564b1fa4941731c570ad9f091882ab68e70
commit 42853564b1fa4941731c570ad9f091882ab68e70
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Sep 19 13:07:53 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Mon Sep 19 13:07:53 2011 +0200
Revert "added evaluation hooks for variable references"
This reverts commit ae95cdfe32131fecb7b16bc148be8dbfaca98ba8.
The general usefulness isn't clear yet - some more elaborate
mechanism may be needed.
diff --git a/eval.scm b/eval.scm
index 0e198a63..445df6e7 100644
--- a/eval.scm
+++ b/eval.scm
@@ -31,8 +31,7 @@
(hide pds pdss pxss d)
(not inline ##sys#repl-read-hook ##sys#repl-print-hook
##sys#read-prompt-hook ##sys#alias-global-hook ##sys#user-read-hook
- ##sys#syntax-error-hook
- ##sys#eval-global-ref-hook ##sys#eval-global-assign-hook))
+ ##sys#syntax-error-hook))
#>
#ifndef C_INSTALL_EGG_HOME
@@ -180,8 +179,6 @@
(define ##sys#unbound-in-eval #f)
(define ##sys#eval-debug-level (make-parameter 1))
-(define (##sys#eval-global-ref-hook var rvar c) c)
-(define (##sys#eval-global-assign-hook var rvar val c) c)
(define ##sys#compile-to-closure
(let ([write write]
@@ -247,15 +244,12 @@
(or (not var)
(not (##sys#symbol-has-toplevel-binding? var))))
(set! ##sys#unbound-in-eval
- (cons (cons (or var x) cntr) ##sys#unbound-in-eval)) )
- (##sys#eval-global-ref-hook
- x var
- (cond ((not var)
- (lambda (v)
- ;; evaluation in static env and variable not found in se
- (##sys#error 'eval "unbound variable" x)))
- (else
- (lambda v (##core#inline "C_retrieve" var)))))))
+ (cons (cons var cntr) ##sys#unbound-in-eval)) )
+ (cond ((not var)
+ (lambda (v)
+ (##sys#error "unbound variable" x)))
+ (else
+ (lambda v (##core#inline "C_retrieve" var))))))
(else
(case i
((0) (lambda (v)
@@ -354,7 +348,7 @@
(let ((var (cadr x)))
(receive (i j) (lookup var e se)
(let ((val (compile (caddr x) e var tf cntr se)))
- (cond ((not i)
+ (cond [(not i)
(when ##sys#notices-enabled
(and-let* ((a (assq var (##sys#current-environment)))
((symbol? (cdr a))))
@@ -364,20 +358,12 @@
(and (not static)
(##sys#alias-global-hook j #t cntr))
(or (##sys#get j '##core#primitive) j))))
- (##sys#eval-global-assign-hook
- (cadr x) var val
- (if (not var) ; static
- (lambda (v)
- ;; evaluation in static env and variable
- ;; not found in se
- (##sys#error
- 'eval "environment is not mutable"
- evalenv (or var x)))
- (lambda (v)
- (##sys#setslot var 0 (##core#app val v)))))))
- [(zero? i)
- (lambda (v)
- (##sys#setslot (##sys#slot v 0) j (##core#app val v)))]
+ (if (not var) ; static
+ (lambda (v)
+ (##sys#error 'eval "environment is not mutable" evalenv var))
+ (lambda (v)
+ (##sys#setslot var 0 (##core#app val v))) ) ) ]
+ [(zero? i) (lambda (v) (##sys#setslot (##sys#slot v 0) j (##core#app val v)))]
[else
(lambda (v)
(##sys#setslot
Trap