bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: shift and reset in ice-9 control


From: Andy Wingo
Subject: Re: shift and reset in ice-9 control
Date: Tue, 12 Apr 2011 11:51:04 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Hi Wolfgang,

Thanks for your note.

On Sat 02 Apr 2011 16:40, Wolfgang J Moeller <address@hidden> writes:

> Using the "direct" implementaion of reset/shift (mine seems to agree
> with Flatt et.al.), it goes into a loop since (dc "ignored.2")
> makes (f1) restore the full continuation that makes (dc "ignored.1")
> return one more time - "dc" isn't so "delimited" after all.

Have you tried this on Racket?  I would expect that it would do the
right thing.  The difference, AFAIK, is that a prompt delimits full
continuations there as well.  That's why they call them "composable"
continuations instead of "delimited" continuations: because either kind
can be delimited; the real question is what properties do they have.

I think we're going to switch to do that in Guile 2.2 as well.

>   (begin
>     (define dummy1
>       (eval
>        ;;
>        '(defmacro macro-case clauses
[...]
>        (interaction-environment)))
>     )
>   ;;
>   (macro-case
>    (#f
>     (define something #t)))

> Depending upon what I do with this snippet (auto-compile, load vs. include),
> it sometimes gets accepted by GUILE V2.0.0:
>
>               auto,include    auto,load       noauto,include  noauto,load
> ---------------------------------------------------------------------------
> @toplevel     Error           Error           Error           OK
> surroundes by
> BEGIN         Error           Error           Error           Error
> EVAL-WHEN     OK              OK              OK              Error

Indeed.  If you need to evaluate previous expressions in order to expand
later ones, you need eval-when.  That goes for forms within your
prelude, and for the "users" of your prelude; Guile doesn't know that
when it sees a `(load "prelude.scm")' that prelude.scm will define
syntax definitions, so it won't pull in those definitions at
compile-time, without an eval-when wrapping the load...

I don't understand the noauto,load case there though.  Were some of your
files compiled and some not?  Hmm...

Regards,

Andy
-- 
http://wingolog.org/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]