* DECLAIM is implemented specially in the compiler instead of expanding into a PROCLAIM.<br><br>* 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.<br>
<br>* 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.<br>
<br>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 :-)<br>
<br>Juanjo<br clear="all"><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://tream.dreamhosters.com">http://tream.dreamhosters.com</a><br>