On 18 March 2010 11:09, Juan Jose Garcia-Ripoll juanjose.garciaripoll@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.