1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-24 12:20:20 +02:00

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.
This commit is contained in:
Andy Wingo 2014-12-06 19:43:24 +01:00
parent cfdc8416a2
commit 99fb07e19b
4 changed files with 40 additions and 1 deletions

View file

@ -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)),