[asdf-devel] pathname case issue ...

Faré fahree at gmail.com
Wed Jun 15 18:00:52 UTC 2011


>> Quicklisp systems are located via a function appended to the end of
>> ASDF:*SYSTEM-DEFINITION-SEARCH-FUNCTIONS*. It looks like ASDF defines
>> this variable with DEFPARAMETER, so every time asdf.lisp is loaded, the
>> value is set to ASDF's initial value. It seems to me that ASDF should
>> use DEFVAR instead.
>
> After a moment's reflection, I don't think DEFVAR is suitable for this
> situation, since it would make upgrading from an old ASDF1 to a new
> ASDF2 fail to pick up the new ASDF system definition search functions.
>
Upgrading from ASDF1 is one thing.
Another thing is that on some implementations (notably SBCL),
you can't undo a defgeneric and if the signature changed,
you have to use a new symbol, which invalidates ASDF extensions,
that have to be reloaded.

That is why I recommend that any upgrading of ASDF should happen first.
Maybe Quicklisp should upgrade ASDF with (asdf:upgrade-asdf)
first thing after loading its own?
(and issue an cerror if the new one was actually a downgrade?)

If you have great ideas on how to avoid these issues,
we could rename the variable to something different,
and then use DEFVAR on the new variable.
This would allow both upgrading from previous versions
and smoothly upgrading to new ones.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Insanity is hereditary — you get it from your kids.




More information about the asdf-devel mailing list