At Tue, 4 Sep 2012 06:51:49 -0600, Matthew Flatt wrote: > Yes, that's true. I don't think there will be a difference for typical > uses of `call/cc' and typical abort handlers, though. And as I > understand it, we're not at this point trying to make `call/cc' work > seamlessly, but instead support it reasonably well for backward > compatibility.
It turns out that non-default abort handlers are more common than I thought: every module-level form is wrapped with a prompt whose handler re-aborts to an enclosing prompt. So, relying on default-like behavior of a prompt handler doesn't work in that case, and it seems like a prominent case. (The `module' form was misdocumented on this point. I've fixed the documentation. Not realted to that change, but related to the rest of this thread: I changed the initial prompt for each thread to use the default handler, instead of ignore all abort arguments.) I think it would make sense to add a new argument to `call-with-continuation-prompt' that handles continuation applications. That addition would allow a use of `call-with-continuation-prompt' to enforce invariants on its result --- although it seems awkward to add support for a feature that we'd prefer to get rid of. _________________________ Racket Developers list: http://lists.racket-lang.org/dev