summaryrefslogtreecommitdiff
path: root/libguile/modules.c
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2004-04-26 19:59:03 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2004-04-26 19:59:03 +0000
commit36245b66c222110c84b04e14733614055dc36575 (patch)
tree883014b85dc7f93d5221c9a90bbd261f32a2303e /libguile/modules.c
parentda8bcb2f709cecc6fea17c2396541b1ab601755d (diff)
downloadguile-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.c2
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);