[Ecls-list] cannot redefine functions in compiled program?

Tobias C. Rittweiler tcr at freebits.de
Tue Dec 16 18:42:05 UTC 2008

Anton Vodonosov writes:

> As far as I understand, PROCLAIM (and thus DECLAIM) has global effect,
> not limited to one file. 

Strictly speaking, yes. In practise, that's most probably not what you
want, so I think most implementation make it file-local, only. [*]

> If you call (PROCLAIM (OPTIMIZE (DEBUG 2))) before compilation of the
> system, it will be in effect for all the files compiled after that (if
> not overridden in some of these files).

This is true. You can for example place the PROCLAIM (or DECLAIM) in
load.lisp (or similiar) which is responsible for compiling and loading
the system.


[*] E.g. SBCL saves the current compilation policy (containing the
    optimize qualities) akin to how the current readtable and package is
    saved in COMPILE-FILE.

More information about the ecl-devel mailing list