Hi Slava, In teepeedee2 I noticed that make-funcallable/cc is quite high up the profile. You use that basically as a type tag to determine whether or not a function can handle a continuation, which could be statically determined in my cases.
I have quite a messy patch for it (also for not transforming code where unnecessary) which is rather broken. I am tidying it up now. Any advice or thoughts would be appreciated. PS. I notice that cl-cont doesn't correctly handle macrolets, especially if they have the same name as a previously defined flet/labels. CONT> (flet ((f () 'flet)) (macrolet ((f () ''macrolet))) (f)) FLET CONT> (with-call/cc (flet ((f () 'flet)) (macrolet ((f () ''macrolet))) (f))) Execution of a form compiled with errors. Form: #'F Compile-time error: found macro name F as the argument to FUNCTION [Condition of type SB-INT:COMPILED-PROGRAM-ERROR] Would you be adverse to including macroexpand-dammit as a preprocessing stage? -- It cleans out all the macrolets and symbol-macrolets, making the next stage much cleaner. http://paste.lisp.org/display/83349 I've tested it on most current lisps. For example, CL-USER> (macroexpand-dammit '(symbol-macrolet ((m (car x))) (macrolet ((m (m) `(* 2 ,m))) (m m)))) (* 2 (CAR X)) PPS. Small modifications to make cl-cont work better on SBCL -- http://groups.google.com/group/weblocks/browse_thread/thread/ad9d3b2ce45dab33# --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
