On 1/27/13 Jan 27 -11:33 AM, Faré wrote: > On Sun, Jan 27, 2013 at 12:13 PM, Robert Goldman <[email protected]> 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.
Good point. I went back and checked some of the postings that said "you don't need a package in your system definition file," and any that I found pointed out that if you were defining new classes, etc., you *should* put a new package in. So I suspect we will be OK, after all, or at least we will find that code that breaks is pretty clearly deprecated. best, r _______________________________________________ asdf-devel mailing list [email protected] http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
