summaryrefslogtreecommitdiff
path: root/libguile/memoize.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-11-30 22:21:31 +0100
committerAndy Wingo <wingo@pobox.com>2009-12-01 21:00:27 +0100
commit3149a5b60de3dc55c7349aba5bfb3ff28c594aef (patch)
tree8e3877d54f282ecf716843df479a70e4fb7b8ee1 /libguile/memoize.h
parentc7a2a803bd0c3ca8860929d4700a46e104cf2643 (diff)
downloadguile-3149a5b60de3dc55c7349aba5bfb3ff28c594aef.tar.gz
add memoized expression accessors to scheme
* libguile/eval.c: Fix a comment. (eval): Abstract out the variable memoization into a function, scm_memoize_variable_access_x. * libguile/memoize.c (memoized_tags): Fix a couple names. (scm_memoize_variable_access_x): New internal function. Actually it's public to Scheme, but we can't do much about that, because the new evaluator will need it. (scm_memoized_expression_typecode, scm_memoized_expression_data): New accessors for memoized code, for Scheme. (scm_memoized_typecode): Looks up the typecode for a symbol.
Diffstat (limited to 'libguile/memoize.h')
-rw-r--r--libguile/memoize.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/libguile/memoize.h b/libguile/memoize.h
index 5a96ef6bf..e033e67f3 100644
--- a/libguile/memoize.h
+++ b/libguile/memoize.h
@@ -92,6 +92,10 @@ enum
SCM_INTERNAL SCM scm_memoize_expression (SCM exp);
SCM_INTERNAL SCM scm_unmemoize_expression (SCM memoized);
+SCM_INTERNAL SCM scm_memoized_expression_typecode (SCM memoized);
+SCM_INTERNAL SCM scm_memoized_expression_data (SCM memoized);
+SCM_INTERNAL SCM scm_memoized_typecode (SCM sym);
+SCM_INTERNAL SCM scm_memoize_variable_access_x (SCM memoized, SCM module);
SCM_API SCM scm_memoized_p (SCM obj);
SCM_INTERNAL void scm_init_memoize (void);