[Ecls-list] Proclaims and compiler

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Sun Mar 28 18:23:52 UTC 2010


On Sun, Mar 21, 2010 at 4:03 PM, Waldek Hebisch <hebisch at math.uni.wroc.pl>wrote:

> Apparently optimize proclaims made before loading compiler
> are ignored:
>
> (proclaim '(optimize (speed 3) (safety 0)))
> (compile-file "call-spd.lisp")
>
> compiles "call-spd.lisp" at default safety.  This is old
> problem, still present in fresh git checkout.


I do not think this is a "problem" by itself. It depends on your
expectations.

The default image of ECL only contains a function, PROCLAIM, that does
nothing. This is compatible with the specification and works just fine with
the interpreted code, source files, etc. It is there because it may appear,
but does not force the user to load the compiler.

When the compiler is loaded, it installs a new version of PROCLAIM that
actually uses the information that this function provides. This function is
more complete, but it can not exist without the compiler because there is no
notion of compiler environment before the compiler itself is loaded.

Note that we can not force the compiler to be loaded by a mere use of
PROCLAIM. That would prevent the Lisp interpreter from loading perfectly
valid sources that use PROCLAIM but do not compile anything.

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/20100328/82514422/attachment.html>


More information about the ecl-devel mailing list