From: Tobias C. R. <tc...@fr...> - 2008-01-03 15:37:54
|
Sam Steingold <sd...@gn...> writes: > > Would you mind introducing a special variable to parametrize this > > expansion? (Or, alternatively, provide an EXT:MACROEXPAND-ALL function?) > > http://www.cygwin.com/acronyms/#PTC Right, I'll hopefully provide one in the comming spring. > see also CLOCC/CLLIB/closio.lisp:macroexpand-r and many better portable > codewalkers. Writing a 100% portable code-walker semms not to be really possible in Common Lisp (without resorting to kludges.) And while there are several semi-portable code walkers around, it seems none has established itself as a standard one (in the sense of being usually recommended)---which might be due to their (code) quality. I haven't thoroughly looked at them, so I'd like to abstain from any final judge. (That is, if you have experience with any of them, and are satisfied with it, I'd like to hear your opinion.) I intend to write a TRIVIAL-MACROEXPAND-ALL package, exactly not to be forced to go down the code-walker route. For many purposes a simple MACROEXPAND-ALL will solve your code-walking problems. Even though, I admit, it's in some points not a perfect solution, but at least it works with minimal added dependency. > > P.S.: Is it already known that CLISP seems not to take top-levelness > > into account in EVAL-WHEN expressions with the deprecated situations > > symbols COMPILE &c? I.e. > > http://clisp.podval.org/impnotes/eval-comp.html#eval-when > ...The situations EVAL, LOAD and COMPILE are deprecated by the [ANSI CL > standard], and they are not equivalent to the new standard situations > :EXECUTE, :LOAD-TOPLEVEL and :COMPILE-TOPLEVEL in that they ignore the > top-level form versus non-top-level form distinction... Ok. I just wondered because this non-conforming behaviour is retained even when -ansi is passed. Thanks for your reply, -T. |