The manual contains the description of some symbols which are not
interned in a vanilla Maxima image. Instead, the corresponding
functions or variables are intended to be (auto-)loaded from files in
the share sub-directories.
Enter Case Sensitivity.
For example, the user might reasonably assume that setting some
variable should work even before loading the file where it is actually
defined. Chances are, however, that the file uses the upper case
version of the variable. So, e.g.,
(C1) nextlayerfactor:true;
(D1) TRUE
(C2) load("facexp.mac");
(D2) /usr/share/maxima/5.9.0pre-cvs/share/simplification/facexp.mac
(C3) nextlayerfactor;
(D3) TRUE
(C4) NEXTLAYERFACTOR;
(D4) FALSE
(C5)
Here is a concrete question: I would like to enable auto-loading for
some functions from facexp.mac and friends which are described in the
manual or the usg files. These functions won't give the kind of
case-sensitivity troubles I just described because by merely arranging
for them to be auto-loaded (in max_ext.lisp) we will automatically
intern the corresponding symbols. But what is the best place for
interning variables like $NEXTLAYERFACTOR? I'd tend to add them to
the (DECLAIM (SPECIAL ...)) form in SYS-DECLAIM.lisp, but perhaps
it's better to add just a simple (INTERN ...) in max_ext.lisp instead?
Wolfgang
--
wjenkner@inode.at