This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Re: Delay is broken?
- To: Lauri Alanko <la at iki dot fi>
- Subject: Re: Delay is broken?
- From: Mikael Djurfeldt <mdj at thalamus dot nada dot kth dot se>
- Date: 11 Oct 1999 19:38:13 +0200
- Cc: guile at sourceware dot cygnus dot com
- Cc: djurfeldt at nada dot kth dot se
- References: <19991011131047.A12396@iki.fi>
- Reply-to: Mikael Djurfeldt <djurfeldt at nada dot kth dot se>
Lauri Alanko <la@iki.fi> writes:
> I'm not sure if I'm doing _something_ wrong, but it would seem that
> there's something badly broken with delay. This is from the cvs version:
>
> la:~/src/guile/guile-core/libguile$ ./guile
> guile> (delay 1)
> #<promise #<procedure ()>>
> guile> (let () (delay 1))
> standard input:2:9: In procedure delay in expression (delay 1):
> standard input:2:9: missing or extra expression
> ABORT: (misc-error)
Thank you for your bug report.
(Bug reports normally go to bug-guile@gnu.org.)
1999-10-11 Mikael Djurfeldt <mdj@thalamus.nada.kth.se>
These changes turns `delay' into a memoizing macro. This is
because it may be expanded before evaluation if it occurs at the
beginning of a body. (Thanks to Lauri Alanko.)
* eval.c, eval.h (scm_sym_delay): New global symbol.
* tags.h (SCM_IM_DELAY): New immediate symbol.
* print.c (scm_isymnames): Printed representation.
* eval.c (unmemocopy, SCM_CEVAL): Handle SCM_IM_DELAY.
(scm_m_delay): Turned into a memoizing macro.
* Makefile.am (libguile_la_LDFLAGS): Bumped libguile version.