Simplify variable resolution in the evaluator
authorAndy Wingo <wingo@pobox.com>
Sun, 7 Dec 2014 14:52:34 +0000 (15:52 +0100)
committerAndy Wingo <wingo@pobox.com>
Sun, 7 Dec 2014 14:52:34 +0000 (15:52 +0100)
commite6a42e676528bf56c6535a7e0c79e936a6d2a818
tree82802288051ec1941785bd49bbbbac18e57db6c1
parenta3cae847d0e6c77494c7cf5f395e8234e3b9b5cf
Simplify variable resolution in the evaluator

* libguile/expand.c (convert_assignment): Handle creation of the default
  lambda-case body here.

* libguile/eval.c (eval):
* module/ice-9/eval.scm (primitive-eval):

* libguile/memoize.h:
* libguile/memoize.c (MAKMEMO_BOX_REF, MAKMEMO_BOX_SET):
  (MAKMEMO_TOP_BOX, MAKMEMO_MOD_BOX): Refactor all global var resolution
  to go through "resolve".  Add "box-ref" and "box-set!".  Rename
  memoize-variable-access! to %resolve-variable, and don't be
  destructive.
libguile/eval.c
libguile/expand.c
libguile/memoize.c
libguile/memoize.h
module/ice-9/eval.scm