* eval.c (unmemoize_quote): New static function.
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Sun, 16 May 2004 06:38:51 +0000 (06:38 +0000)
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Sun, 16 May 2004 06:38:51 +0000 (06:38 +0000)
commite7313a9d7e0490c39802c773e3eec3c1ca651a25
tree52d415e10a92bcb5da495d3859215499eaa86fba
parente51565673ca6715e9e5e51d8ed5f054efb3b339f
* eval.c (unmemoize_quote): New static function.

(scm_m_quote, scm_m_atslot_ref, SCM_CEVAL): Changed the byte code
representation of 'quote' and '@slot-ref' to an improper list.
This reduces execution time, the number of cells used to hold the
memoized code, and thus also reduces garbage collection time.

(scm_unmemocopy): Use unmemoize_quote for quote expressions.

(SCM_CEVAL): Changed macro handling to also work with macros that
return improper lists.  Added an assertion, that the code returned
by a macro transformer will not lead to cycles in the memoized
code.
libguile/ChangeLog
libguile/eval.c