~ chicken-core (chicken-5) fa2f293e4ab592cbccf4668de0987e1491c9e92a
commit fa2f293e4ab592cbccf4668de0987e1491c9e92a Author: felix <felix@call-with-current-continuation.org> AuthorDate: Sat Dec 29 23:08:44 2012 +0100 Commit: Peter Bex <peter.bex@xs4all.nl> CommitDate: Thu Jan 3 23:15:50 2013 +0100 omit bound-checks in eval's closure-compilation for global variables that are already bound at compile-time Signed-off-by: Peter Bex <peter.bex@xs4all.nl> diff --git a/eval.scm b/eval.scm index d3d077ea..3e776e7b 100644 --- a/eval.scm +++ b/eval.scm @@ -261,6 +261,8 @@ (cond ((not var) (lambda (v) (##sys#error "unbound variable" x))) + ((##sys#symbol-has-toplevel-binding? var) + (lambda v (##sys#slot var 0))) (else (lambda v (##core#inline "C_retrieve" var)))))) (elseTrap