1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 04:10:18 +02:00
guile/module
Andy Wingo cfc28c808e Evaluator uses two-dimensional environment
* libguile/memoize.c (MAKMEMO_LEX_REF, MAKMEMO_LEX_SET): Change to
  address lexicals by depth and width.
  (try_lookup_rib, lookup_rib, make_pos): New helpers.
  (lookup): Adapt to return a pair.
  (memoize, unmemoize_bindings, unmemoize_lexical): Adapt.

* libguile/eval.c (eval, prepare_boot_closure_env_for_eval):
  (prepare_boot_closure_env_for_apply):
* module/ice-9/eval.scm (make-fixed-closure, make-general-closure)
  (eval): Adapt to new environment.

This is currently a slight win for C, and a slight lose for Scheme --
because the lookup loop is so poorly compiled by the stack VM.  I expect
that the RTL-compiled eval will fix this.
2013-10-25 17:15:23 +02:00
..
ice-9 Evaluator uses two-dimensional environment 2013-10-25 17:15:23 +02:00
language Always resolve-primitives in the root module. 2013-10-23 19:28:26 +02:00
oop Merge remote-tracking branch 'origin/stable-2.0' 2013-01-31 11:52:42 +01:00
rnrs Merge remote-tracking branch 'origin/stable-2.0' 2013-08-11 22:46:22 -04:00
scripts ,xx for RTL images 2013-08-29 20:50:19 +02:00
srfi Merge remote-tracking branch 'origin/stable-2.0' 2013-09-13 00:24:04 -04:00
sxml Remove duplicate definitions of call/ec' and let/ec'. 2013-04-06 15:40:19 +02:00
system Fix assembler for keyword args 2013-10-22 22:31:26 +02:00
texinfo texinfo plain-text: Use match' for stexi->plain-text'. 2013-03-22 22:09:05 +01:00
web Merge remote-tracking branch 'origin/stable-2.0' 2013-09-13 00:24:04 -04:00
Makefile.am add DWARF parser 2013-09-28 14:41:08 +02:00
rnrs.scm Add missing R6RS `open-file-input/output-port' procedure 2012-11-12 20:47:57 +01:00
statprof.scm Fix statprof-proc-call-data for recent changes 2013-10-18 11:47:05 +02:00
texinfo.scm texinfo: Recognize `@:'. 2013-03-21 18:52:29 +01:00