Leslie P. Polzer wrote: > On Aug 29, 4:02 am, John Fremlin <[email protected]> wrote: > >> The problem I think is that cl-cont doesn't understand ccl's >> compiler-let. > > You're probably right, but CCL's compiler wants to handle that > more gracefully I bet.
compiler-let is a special form that doesn't exist in the ANSI standard and so it is a bit dodgy to have things expand to it (clearly a violation of ANSI). However, Lispworks uses it too for things like defmethod, so teaching cl-cont about it seems like a good idea (if it's >> Another example where macroexpand-dammit should step in >> :-) > > Since you mention it, where have we left off discussing this? I thought the problem was not so much the absence of discussion but the absence of a finished and tested version of macroexpand-dammit ;-) I fixed a few bugs (http://john.freml.in/macroexpand-dammit) but haven't got the testsuite together. One issue that is wrong is the handling of type declarations for symbol-macrolets, but I'm not sure whether it is possible to handle that correctly at all as one isn't allowed to affect the macroexpansion. (Declarations are generally a nuisance -- http://john.freml.in/declare-and-parsing-common-lisp.) >> Perhaps the most practical solution is to make assert not be call/cc >> transformed. > > Got patch? :) In teepeedee2 there are a bunch of macros IIRC for easily explicitly declaring forms not to be transformed by cl-cont. . . Or at least I think so :-) PS. To complicate matters further, it turns out that cl-cont implements delimited continuations, but the call/cc is actually more like Scheme's return/cc -- it has quite different semantics. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "weblocks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/weblocks?hl=en -~----------~----~----~----~------~----~------~--~---
