[asdf-devel] Package manipulation [ was ASDF traverse changed behavior? ]

Faré fahree at gmail.com
Thu Mar 18 19:01:11 UTC 2010


>: Juanjo

> 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.
>
I've thought about it. Back before I started work on ASDF 2, but when
I needed a known version of ASDF for use with ASDF-DEPENDENCY-GROVEL,
I distributed a file no-asdf.lisp with XCVB that deleted the ASDF
package and any package that depended on it (recursively), made sure
any asdf-module-provider for require was de-registered, and improper
*features* removed. It was hard and heavy handed, but it worked.

Problem is, this approach works when the loading of files is driven
externally by XCVB when compiling from "scratch" (or minimally
modified image with, e.g. clc installed), but is wholly unsuitable for
ASDF-driven self-upgrade of ASDF. It notably loses the state of
currently loaded systems which can cause hours of fun, especially
since renaming or deleting packages leads to "interesting" errors when
the re-loaded systems will try to redefine their packages.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
My wife and I have clearly defined who's boss.  I always take all the
important decisions.  I decide what is the family's take on the
recognition of Communist China, how many B-52's are necessary to the
armed forces and what to do about the federal debt.  I leave her the
petty daily decisions, like determining where we'll live, which school
the kids will attend and who we'll have for dinner.
  — Unknown author, USA, 1950's




More information about the asdf-devel mailing list