[asdf-devel] ASDF-USER ?

Faré fahree at gmail.com
Sun Jan 27 17:33:54 UTC 2013


On Sun, Jan 27, 2013 at 12:13 PM, Robert Goldman <rpgoldman at sift.info> wrote:
> On 1/26/13 Jan 26 -6:12 PM, Faré wrote:
>> I think the whole "temporary package" thing is a failure, and we
>> should just have
>> an ASDF-USER package that uses ASDF.
>>
>> Does anyone have any objection to having .asd files be loaded in
>> a shared ASDF-USER rather than a temporary ASDF~D package?
>>
>> If you want to define your own private functions in their private namespace,
>> there's defpackage for you.
>
> I am sympathetic to your concerns here, but I am worried that it will
> cause lots of breakage.
>
> I have always done the old-school thing and defined a new package for my
> system definition.  This makes for a pleasing symmetry between behavior
> where I incrementally evaluate forms, and when I load the system into an
> image.
>
> *HOWEVER*, some CL pundits seem to think that making extra packages is
> bad, and in a spirit of (to me, misguided) parsimony, strongly
> encouraged people to rely on the creation of the temporary packages.
>
> I fear that this means that loading all the package definitions into a
> single ASDF-USER package is likely to cause breakage from namespace
> collisions.
>
> Also, I fear that this will be a nuisance to catch in testing, because
> it is likely to require testing large numbers of *combinations* of
> loaded systems to simulate behavior downstream programmers might see.
>
> In my customary role as backward compatibility buzz-kill, I suggest that
> we keep the old behavior.
>
I know that quicklisp is not *everything*, but I did a quick survey
and found nothing clashy:

A=( $(grep -L in-package ~/quicklisp/dists/quicklisp/software/**/*.asd) )
fgrep '(def' $A | grep -v 'defsystem\|defpackage\|defmethod
\(asdf:\)\?\(perform\|operation-done-p\)' | less

The most clashy thing I found was hemlock defining variables
the name of which start with *hemlock-
which actually seem perfectly fine to me.
There are plenty of scary-looking definitions in optima.asd,
but that's actually documentation in #| |#.

I say anyone who does something clashy deserves the lossage he gets,
and so do people who use his software.
There is already plenty of namespace management around,
ASDF cannot substitute to using proper namespace management techniques.
And if Common Lisp is lacking in this regard, let's fix Common Lisp,
not add a crock to ASDF.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Soccer riots kill at most tens. Intellectuals' ideological riots sometimes
kill millions.— John McCarthy




More information about the asdf-devel mailing list