Just pushed a patch out that does compilation to strings at macro expansion-time for the PS and PS-INLINE macros as opposed expanding to PS*. There are some changes to the compilation interface, but the important difference is that now the LISP special form behaves differently for PS (has access to the lexical environment) vs. PS* (dynamic environment only). So using LISP inside PS* is now exactly like using EVAL when it comes to which environment the escaped CL code has access to.
Vladimir
On Sun, Dec 7, 2008 at 10:47 PM, Vladimir Sedach vsedach@gmail.com wrote:
if we (cl-dwim guys) had infinite time we would do it ourselves, but i hope someone will pick up the idea and do it for ps... ;)
I agree this is the right way to go. Not only would it provide for more meaningful embedding of PS code in CL code (to answer Daniel's earlier query, the "lisp" macro evaluates its arguments at PS macro-expansion time (compile time, ie every time ps* gets called) via eval, hence it has no access to anything but the dynamic environment of the ps* call), but it would also obviate any need for PS output caching mechanisms (I know at least one instance of this has already been implemented in a PS application).
I might have a large chunk of time available over New Year's to work on this. I'd like to make a release before rewriting the compiler though. Please get your suggestions and bugfixes for the next release in soon!
Vladimir
-- attila _______________________________________________ parenscript-devel mailing list parenscript-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/parenscript-devel