diff options
author | Andy Wingo <wingo@pobox.com> | 2014-12-06 19:43:24 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2014-12-06 19:43:24 +0100 |
commit | 99fb07e19bf47b929fbd7e4574f96ea0bff4e641 (patch) | |
tree | 7fd89cc614e28d25913cf89b34eae7996317d2c4 /libguile/memoize.c | |
parent | cfdc8416a2540e43504a021d4f7c44c7d21a668d (diff) | |
download | guile-99fb07e19bf47b929fbd7e4574f96ea0bff4e641.tar.gz |
Add capture-env to evaluator
* libguile/eval.c (eval):
* libguile/memoize.c (memoized_tags, unmemoize):
* libguile/memoize.h (SCM_M_CAPTURE_ENV):
* module/ice-9/eval.scm (primitive-eval): Add capture-env memoized
expression type.
Diffstat (limited to 'libguile/memoize.c')
-rw-r--r-- | libguile/memoize.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libguile/memoize.c b/libguile/memoize.c index 9651cadc6..3923ee334 100644 --- a/libguile/memoize.c +++ b/libguile/memoize.c @@ -165,6 +165,7 @@ static const char *const memoized_tags[] = "seq", "if", "lambda", + "capture-env", "let", "quote", "define", @@ -625,6 +626,10 @@ unmemoize (const SCM expr) tail)); } } + case SCM_M_CAPTURE_ENV: + return scm_list_3 (scm_from_latin1_symbol ("capture-env"), + CAR (args), + unmemoize (CDR (args))); case SCM_M_LET: return scm_list_3 (scm_sym_let, unmemoize_bindings (CAR (args)), |