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
-~----------~----~----~----~------~----~------~--~---

Reply via email to