On May 20, 2012, at 20:58 , Didier Verna wrote:
Pascal Costanza wrote:
I checked the existing threads on this topic (not sure if I was exhaustive).
There are two elements being proposed: (a) having something like :cdr-nnn in *features*, and (b) having a standard package naming mechanism. One suggestion actually was to have :cdr-nnn also as a package name.
It seems to me that :cdr-nnn for *features* is straightforward and no objections were ever raised, as far as I can tell. :cdr-nnn as package name seems more dubious to me, but that's just my personal opinion.
About the package idea, see also this thread stated by Juanjo on the ECL mailing list: http://www.mail-archive.com/ecls-list@lists.sourceforge.net/msg01225.html
There are a couple of very good arguments from Pascal Bourguignon in favor of using packages for CDRs defining new symbols (although I find his criticisms a little exagerated; we don't have to deal with soooo many Lisp implementations after all). But in any case, I think he's right.
I am kind of vary about using packages (or package nicknames) mandated as part of CDR; not because I disagree with PB, but because once you start talking about packages, you need to talk about naming conventions and conflicts.
I am all for using the CDR-NNN in *features* of course.
I could write a CDR about "package naming", but that would mean that CDR should agree on *a* naming convention - a CDR in itself - and assume that the underlying implementation signals nicknames conflicts - yet another CDR.
The bare bone version of such thing is
(defpackage "IT.UNIMIB.DISCO.MA.MY-CDR-42-IMPLEMENTATION" (:use …) (:nicknames "THE-CDR-AGREED-UPON-MEANINGFUL-AND-MAYBE-HIERARCHICAL-NAME" "CDR-42" …) (:export …) …)
Cheers -- MA