[Ecls-list] Some more "risky" changes

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Fri May 7 22:41:21 UTC 2010


* DECLAIM is implemented specially in the compiler instead of expanding into
a PROCLAIM.

* DEFMACRO no longer expands into an (EVAL-WHEN (:COMPILE-TOPLEVEL ...) ...)
Instead the compiler stores the macro expansion code in a global hash which
is discarded right after exiting the current compilation unit.

* During compilation each form now remembers not only the compilation
environment but also the optimization settings and other global
proclamations. This fixes a problem caused by the fact that ECL is a
two-pass compiler: while in the first pass some flags might be active, the
execution of a PROCLAIM / DECLAIM form could actually influence the C code
generated, lowering or increasing the safety, debug or speed settings.

One "risk" is of course that existing code expects the side effects of
DECLAIM and DEFMACRO to propagate beyond the compilation unit. The other
risk is that I did not get it write when performing the previous changes, of
course :-)

Juanjo

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://tream.dreamhosters.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20100508/29ba06c0/attachment.html>


More information about the ecl-devel mailing list