separate boot expansion from memoization
* libguile/Makefile.am: * libguile/init.c: * libguile/expand.c: * libguile/expand.h: Add new expander. The idea is that macroexpansion is one thing, and whether to compile or interpret the result of that is another thing. * libguile/memoize.c: Adapt to expand as necessary, and then memoize expanded source without worrying about syntax errors. * module/ice-9/eval.scm (make-general-closure): Allow alt clauses to not possess the full make-general-closure arity.
This commit is contained in:
parent
667361f6ce
commit
dc3e203e07
7 changed files with 1862 additions and 1102 deletions
|
|
@ -127,6 +127,7 @@ libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES = \
|
|||
error.c \
|
||||
eval.c \
|
||||
evalext.c \
|
||||
expand.c \
|
||||
extensions.c \
|
||||
feature.c \
|
||||
fluids.c \
|
||||
|
|
@ -229,6 +230,7 @@ DOT_X_FILES = \
|
|||
error.x \
|
||||
eval.x \
|
||||
evalext.x \
|
||||
expand.x \
|
||||
extensions.x \
|
||||
feature.x \
|
||||
fluids.x \
|
||||
|
|
@ -328,6 +330,7 @@ DOT_DOC_FILES = \
|
|||
error.doc \
|
||||
eval.doc \
|
||||
evalext.doc \
|
||||
expand.doc \
|
||||
extensions.doc \
|
||||
feature.doc \
|
||||
fluids.doc \
|
||||
|
|
@ -487,6 +490,7 @@ modinclude_HEADERS = \
|
|||
error.h \
|
||||
eval.h \
|
||||
evalext.h \
|
||||
expand.h \
|
||||
extensions.h \
|
||||
feature.h \
|
||||
filesys.h \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue