Package-local nicknames always seem to me like a good idea, and I expect that if I ever built something really large in CL they would sooner or later become invaluable, but I have to confess that the number of times I can recall actually using them is on the order of once or twice.

I don't think I've ever used hierarchical packages, though I used to use Allegro all the time.  But I have no objection if other people want to use them (as long as I can define local nicknames for them).

Broadly, I agree that packages can be very large without causing difficulties, as long as a single organization is in control of the entire contents.

-- Scott

On Tue, Dec 29, 2015 at 3:52 PM, Alessio Stalla <alessiostalla@gmail.com> wrote:
Hi everyone,

I'd like to run a little poll among experienced Lisp developers. The topic is the usage in the wild of the extensions to the package system provided by various implementations. My apologies to people who are subscribed to the ABCL mailing list, where some time ago I submitted the same questions getting back several insightful answers but no actual data.

So, here is how it is. I'm working on a novel idea (I hope) regarding symbols and packages; I won't go into the details now. It suffices to say that there is some overlap with features offered by certain Lisp implementations, namely:

 * package-local nicknames: the ability to specify, for each package, a list of nicknames for other packages which are in effect only in that package; available on ABCL and SBCL (http://www.sbcl.org/manual/#Package_002dLocal-Nicknames) and possibly other implementations I'm not aware of.
 * "Hierarchical" packages: a naming convention for packages understood by the reader and a few support functions, which allow to have concise nicknames for a group of closely related packages, such as com.foo.mylib.api and com.foo.mylib.implementation. Found natively in Allegro CL (http://franz.com/support/documentation/current/doc/packages.htm) and in an open-source library by P. Bourguignon.

My questions:
1) First and foremost, is anybody actually using those features? What are you using them for?
2) If yes, how useful are they for you? What shortcomings do you find in them?