On Thu, Mar 18, 2010 at 1:36 AM, Robert Goldman <rpgold...@sift.info> wrote:

> Is it possible that somehow the compilation of asdf-ecl is recording
> some information about the package that is somehow damaged by the
> package surgery?
>

I will dig into that later during the weekend. I think the point is
something we discussed long at the ECL mailing list, namely that symbols are
NOT created as a compiled file is run. Symbols are constants and as such a
compiler is allowed to coalesce all references to symbols in the same
compiled file.

The problem would thus be the following. The compiler loads the file, it
resolves all references to symbols, storing them in the array of constants,
including PERFORM. The code is executed. PERFORM is uninterned and a new
symbol is created. We reach the DEFMETHOD forms, which now are executed but
since they reference the *old* version of the symbol, the method is
installed with the wrong name in the wrong generic function.

In other words, one can not expect the side effects that operations have in
packages work the same for a compiled and a source file. It is just as if
you expect that the side effects that aare caused by changing the readtable
would also affect the way a cmpiled file behave.

Juanjo

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://tream.dreamhosters.com
_______________________________________________
asdf-devel mailing list
asdf-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel

Reply via email to