[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
more to do with DEFPACKAGE than with REQUIRE-PATHNAME-DEFAULTS
- To: gls@Think.COM
- Subject: more to do with DEFPACKAGE than with REQUIRE-PATHNAME-DEFAULTS
- From: Jon L White <jonl@lucid.com>
- Date: Mon, 14 Nov 88 13:38:32 PST
- Cc: Gregor.pa@xerox.com, Scott.Fahlman@b.gp.cs.cmu.edu, cl-cleanup@sail.stanford.edu
- In-reply-to: gls@Think.COM's message of Mon, 14 Nov 88 11:49:27 EST <8811141649.AA10899@joplin.think.com>
re: I would be happy to see PROVIDE and REQUIRE flushed. The biggest
problem is coming up with a new mnemonic sentence. . . .
The main reason I like keeping, at least, the "safety net" version of
REQUIRE in the standard is so that one can "call a halt" if a file is
*** about to be loaded *** but the packages which it depends on are not
yet set up. Some problems with delayed package creation can be so
severe as to be almost intractable. See the DEFPACKAGE proposal for
deatils.
Good standard practice would be to have a file of package and interface
creations, which PROVIDEs the "setup" module; and then every other file
would have, say, a (REQUIRE "phlogistion-setup") near the beginning.
Admittedly there is much less need for a user to remember the mnemonic
if he sticks just to this discipline; but of course lots of wizards will
not only want to "roll their own", but will demand to know what is going
on. The Discussion section of the DEFPACKAGE proposal offers a new
mnemonic, based on the ordering constraints derived therein:
It has been suggested that the "Put IN Seven EXtremely Random USEr
Interface COmmands" mnemonic described in CLtL p.191 could be removed;
and with possibly a few exceptions, the special handling of them by
COMPILE-FILE could be removed. As this would be an incompatible change,
it is not part of this proposal. However, a new mnemonic can be offered,
to help remember the ordering constraints mentioned above:
I REmember Six USEr Interface Expressions
Each word in the sentence corresponds to one operation listed below:
I IN-PACKAGE ;"foot" to stand on
REmember REQUIRE ;ensure pre-requisite packages
Six SHADOW ;block multiple-inheritances
USEr USE-PACKAGE ;go for it!
Interface IMPORT ;bring in "foreign" symbols
EXpressions EXPORT ;a "face" to show to others.
-- JonL --