[asdf-devel] Package manipulation [ was ASDF traverse changed behavior? ]
Faré
fahree at gmail.com
Thu Mar 18 15:23:14 UTC 2010
On 18 March 2010 11:09, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> Why not using the scheme
>
> (defpackage :asdf-boot
> ...)
> ; all new code using asdf-boot package
> ; rename package "asdf" -> "asdf-old"
> ; rename package "asdf-boot" -> "asdf"
>
> instead of manually moving the symbols around? The difference here is that
> the symbols that the compiler reads in "all new code" are well defined and
> are the same ones that will end up being installed in the final "ASDF"
> package.
>
IIRC, I rejected this plan to allow for update of a running ASDF
in a Lisp image where plenty of other packages use ASDF or import its symbols.
This packages have to continue working if not recompiled, and they have
to work also if recompiled, in which case package renaming could cause
some "interesting" warnings.
I don't have the final answer on hot upgrade of Lisp software.
CL was never intended to solve all the issues of hot code upgrade:
there are no code upgrade transactions (and no explicit support
for concurrency), no clear internal/external naming strategy
(as in Erlang's module-qualified vs unqualified calls), etc.
But I think ASDF ought to make a best effort, so that you can at the very
least upgrade ASDF when installed as part of Common-Lisp-Controller and
similar management layers (that do use package ASDF).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
Life is like an onion: you peel off layer after layer,
then you find there is nothing in it.
More information about the asdf-devel
mailing list