On Thu, Mar 18, 2010 at 6:29 PM, james anderson james.anderson@setf.dewrote:
On 2010-03-18, at 16:23 , Faré wrote:
[ ...]
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).
as a step in that direction, let us enumerate the actions which an upgrade could contemplate[...]
I have been reading the list of things that can, have and cannot be done and it is way more complex than I had expected. Wouldn't it make sense to split asdf.lisp into two files? asdf-boot.lisp to set up everything _only_ if we need to redefine ASDF functions, classes and other stuff, and asdf.lisp which works as it used to do. In asdf.lisp we may even add a finall call to an optional function (asdf-finish) that polishes the last corners _after_ everything new has been defined.
The advantage is that the logic of redefinition and of the ASDF system itself are well separated. It also helps that implementations for which redefinition is not happening (for instance ECL does not load ASDF in the core, it is an optional module), can forget about the complexity of the asdf-boot.lisp part.
Juanjo