diff options
author | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2004-04-26 19:59:03 +0000 |
---|---|---|
committer | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2004-04-26 19:59:03 +0000 |
commit | 36245b66c222110c84b04e14733614055dc36575 (patch) | |
tree | 883014b85dc7f93d5221c9a90bbd261f32a2303e /libguile/modules.c | |
parent | da8bcb2f709cecc6fea17c2396541b1ab601755d (diff) | |
download | guile-36245b66c222110c84b04e14733614055dc36575.tar.gz |
* libguile/eval.c (s_macro_keyword): New static identifier.
(scm_m_define): Change order to first create binding and
evaluating the expression afterwards.
(scm_m_set_x): Memoize complete set! expression. Only leave
symbols if no binding exists at memoization time. Throw error if
assigning to a syntactic keyword.
(lazy_memoize_variable): New function.
(CEVAL): When execution set!, perform lazy memoization if
unmemoized symbol is detected.
* libguile/modules.c (module_variable): Return variables with
unbound value.
* libguile/tags.h: Fix comment.
* test-suite/tests/syntax.test: Add test case to check the correct
handling of define expressions.
Diffstat (limited to 'libguile/modules.c')
-rw-r--r-- | libguile/modules.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/modules.c b/libguile/modules.c index 7d578dcd6..951ee413e 100644 --- a/libguile/modules.c +++ b/libguile/modules.c @@ -277,7 +277,7 @@ static SCM module_variable (SCM module, SCM sym) { #define SCM_BOUND_THING_P(b) \ - (SCM_VARIABLEP (b) && !SCM_UNBNDP (SCM_VARIABLE_REF (b))) + (!SCM_FALSEP (b)) /* 1. Check module obarray */ SCM b = scm_hashq_ref (SCM_MODULE_OBARRAY (module), sym, SCM_UNDEFINED); |