summaryrefslogtreecommitdiff
path: root/libguile/expand.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-05-20 12:25:52 +0200
committerAndy Wingo <wingo@pobox.com>2010-05-20 12:25:52 +0200
commita310a1d12e9b44ba77bb28d5491f0bd378a90886 (patch)
tree37e0581a164c28bd7182ed3bfdff939f71127146 /libguile/expand.h
parent3e5ea35c2fa1bb3d21373723e9a51d213cf79187 (diff)
downloadguile-a310a1d12e9b44ba77bb28d5491f0bd378a90886.tar.gz
primitive-eval takes expanded, not memoized, source
* module/ice-9/eval.scm (primitive-eval): * libguile/eval.c (scm_c_primitive_eval): Don't expect a memoized expression -- expect either raw source or an *expanded* expression. We handle memoization ourselves. * libguile/expand.c (scm_macroexpand): Settle down into its proper name, "macroexpand", even as we comment that it is but a fleeting boot expander. (scm_macroexpanded_p): New predicate for expanded code. * libguile/expand.h: Add scm_macroexpanded_p. * libguile/memoize.c (scm_memoize_expression): Require that the expression be expanded. (scm_init_memoize): Don't alias memoize-expression to macroexpand. * module/ice-9/psyntax-pp.scm: * module/ice-9/psyntax.scm: Always produce macroexpanded expressions, and hand them to primitive-eval. No more calls to memoize-expression here. * test-suite/tests/optargs.test: Remove some tests, as unfortunately we have no way to invoke the boot expander after boot.
Diffstat (limited to 'libguile/expand.h')
-rw-r--r--libguile/expand.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libguile/expand.h b/libguile/expand.h
index 32b978bf8..d13702045 100644
--- a/libguile/expand.h
+++ b/libguile/expand.h
@@ -333,6 +333,7 @@ enum
SCM_INTERNAL SCM scm_macroexpand (SCM exp);
+SCM_INTERNAL SCM scm_macroexpanded_p (SCM exp);
SCM_INTERNAL void scm_init_expand (void);