random-state.net

Nikodemus Siivola

<< next | top | previous >>

August 21st 2004 #
random, August 21st 2004

Terminology itches, and scratching doesn't seem to be helping. Maybe a mild rant does the trick. If not, it's time for stronger sedatives...

Package has a well defined meaning in Common Lisp, but is colloquially overloaded with "package as a software bundle".

Module is referred to in the ANSI standard, but not really defined. It's just a hazy concept that *MODULES*, PROVIDE, and REQUIRE relate to, but mostly seems to correspond to a software bundle. Then again, in the DEFSYSTEM sense module is generally used to refer to a relatively independent grouping of files, a subsystem, etc.

System is used to refer to the lisp system as a whole, and in DEFSYSTEM context to a single, ah, system, corresponding often but not always to a software bundle. (Some bundles may be composed of several DEFSYSTEM systems.)

Now add in the fact that often software bundle FOO has a system definition called FOO, and is contained within the package FOO. Good so far. Problems start when the webpage tells you how to download, install, and load the package... Repeat the same for module and system. It's a bloody mess.

In terms of clarity the package/bundle confusion is probably the worst, but happily easy to sort out: call bundles bundles. It's a cute word and even Apple seems to like it.

Module and system are less problematic as overloaded terms, and don't seem to cause so much confusion; though if someone has a brilliant idea, I'm happy to be infected with new memes.