On Sun, Jan 27, 2013 at 12:13 PM, Robert Goldman rpgoldman@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