Hi Wolfgang, Thanks for your note.
On Sat 02 Apr 2011 16:40, Wolfgang J Moeller <[email protected]> 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/
