~ chicken-core (chicken-5) 110f539bbc202b6ff4eaa6be8b1ee57180bf8de5
commit 110f539bbc202b6ff4eaa6be8b1ee57180bf8de5 Author: Evan Hanson <evhan@foldling.org> AuthorDate: Mon May 30 10:39:38 2016 +1200 Commit: Peter Bex <peter@more-magic.net> CommitDate: Tue May 31 19:42:10 2016 +0200 Drop unnecessary boxing of constant-table entries Now that "collapsable-literal?" constants are inserted into the constants table as quoted values, there's no need to box them in a list (which was done to ensure that "#f" isn't treated as a missing entry). diff --git a/core.scm b/core.scm index 688bd79f..d3c4c6cc 100644 --- a/core.scm +++ b/core.scm @@ -529,7 +529,7 @@ (d `(RESOLVE-VARIABLE: ,x0 ,x ,(map (lambda (x) (car x)) se))) (cond ((not (symbol? x)) x0) ; syntax? ((##sys#hash-table-ref constant-table x) - => (lambda (val) (walk (car val) e se dest ldest h #f))) + => (lambda (val) (walk val e se dest ldest h #f))) ((##sys#hash-table-ref inline-table x) => (lambda (val) (walk val e se dest ldest h #f))) ((assq x foreign-variables) @@ -1235,11 +1235,11 @@ (set! defconstant-bindings (cons (list name `(##core#quote ,val)) defconstant-bindings)) (cond ((collapsable-literal? val) - (##sys#hash-table-set! constant-table name (list `(##core#quote ,val))) + (##sys#hash-table-set! constant-table name `(##core#quote ,val)) '(##core#undefined)) ((basic-literal? val) (let ((var (gensym "constant"))) - (##sys#hash-table-set! constant-table name (list var)) + (##sys#hash-table-set! constant-table name var) (hide-variable var) (mark-variable var '##compiler#constant) (mark-variable var '##compiler#always-bound)Trap