primitive-eval passes first N args on stack directly, not via apply
authorAndy Wingo <wingo@pobox.com>
Sun, 13 Dec 2009 16:05:10 +0000 (17:05 +0100)
committerAndy Wingo <wingo@pobox.com>
Sun, 13 Dec 2009 16:19:59 +0000 (17:19 +0100)
commit9331f91cc411fc2a09a59308bb889f3f5f735e49
treefe3bf6d8a0590c7118aaaa99de51eb7c61d014b8
parent4abb824cdbd5f16a836da8ab75cc24a6a53f3b35
primitive-eval passes first N args on stack directly, not via apply

* libguile/memoize.c (MAKMEMO_CALL): Memoize in the number of arguments
  at the call site.
  (memoize, scm_m_cond, memoize_named_let, unmemoize):
* libguile/eval.c (eval): Adapt to changes in call memoization.

* module/ice-9/eval.scm (primitive-eval): For calls, pass the first N
  arguments directly on the stack, and only the rest as a consed
  argument list to apply. Currently N is 4.
libguile/eval.c
libguile/memoize.c
module/ice-9/eval.scm