[asdf-devel] Fwd: can't compile-file then load asdf.lisp

Nikodemus Siivola nikodemus at random-state.net
Thu Jul 9 08:22:50 UTC 2009


2009/7/9 Faré <fahree at gmail.com>:
> Apparently, it is incorrect to try to update ASDF from a system where
> an older version of ASDF has already been loaded  from which some
> DEFUNs (e.g. SYSTEM-SOURCE-FILE) have since converted to DEFGENERICs.
> This means that if you have an old clisp from debian and try to use
> the newer ASDF, you're out of luck.
>
> As a remedy, could we prepend the defpackage in asdf.lisp with the following?
>
> (eval-when (:compile-toplevel :load-toplevel)
>   (let ((package (find-package '#:asdf)))
>      (when package (delete-package package))))

I don't think this a good idea in general: when users are bit by this
they can deal with the error and delete the package by hand.

If we do this automatically, however, reloading the same version twice
will cause all methods that were added later to be forgotten, as well
as additions to *CENTRAL-REGISTRY*, etc.

If something along the lines is put it, I would suggest that TRT is to
signal an error and offer restarts to either delete the package or
continue blindly.

Cheers,

 -- Nikodemus




More information about the asdf-devel mailing list