[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: require and provide



> p. 277 in CLtL says that *modules*, require and provide have left the
> language.  Will they stay in MCL?  I'd appreciate comments and suggestions
> as to what to use.  

There are numerous public domain defsystem packages floating around, but we
at my project always preferred a distributed method of specifying
dependencies, a la CLtL's modules.  If you do, too, read the rest of this
message.

CLtL's original module system was so simplistic as to be useless for large
systems.  So my project wrote its own module system, which I hereby offer
to anyone who wants it.  It supports such typically useful features as
search paths and automatic recompiling, as necessary, of dependent modules
when the modules they depend on are changed.  It is portable, with the
exception of half a dozen machine-dependent functions.  We have only
defined these functions for lisps we've used, namely Lucid on Unix boxes
and MCL, but it's a matter of minutes to define them for a new
configuration.

Unfortunately, because of the way the package system is defined (or not
defined) in CLtL2, it is impossible to reliably define packages in a
distributed manner, such that they can also be modified on the fly
(something which every developer always needs to do).  We've also written a
smidgen of code to make it easier to define mutually dependent packages in
a manner that follows spec.

If anyone wants our module system, send me mail.  If I get enough replies,
I'll post the code somewhere.  Paper (Scribe) documentation is available.


Sue Felshin
Lab for Advanced Technology in the Humanities
MIT