Common Lisp the Language, 2nd Edition
Next: Package Names
Up: Packages
Previous: Packages
Package-related bugs can be very subtle and confusing: things are not what they appear to be. The Common Lisp package system is designed with a number of safety features to prevent most of the common bugs that would otherwise occur in normal use. This may seem over-protective, but experience with earlier package systems has shown that such safety features are needed.
In dealing with the package system, it is useful to keep in mind the
following consistency rules, which remain in force as long as the value
of *package*
is not changed by the user:
eq
) symbol.eq
) symbol.eq
, then their printed representations will be different
sequences of characters.These consistency rules remain true in spite of any amount of
implicit interning caused by typing in Lisp forms, loading files, etc.
This has the important implication that, as long as the current package
is not changed, results are reproducible regardless of the order of
loading files or the exact history of what symbols were typed in when.
The rules can only be violated by explicit action: changing the value of
*package*
, forcing some action by continuing from an error,
or calling one of the ``dangerous’’ functions unintern
,
unexport
, shadow
,
shadowing-import
, or unuse-package
.
Next: Package Names
Up: Packages
Previous: Packages
AI.Repository@cs.cmu.edu