GCLisp (Golden Common Lisp, runs on Windows) is a CLtL1 Common-Lisp.
We were surprised to discover that it compiles files _not_ containing
an (IN-PACKAGE ...) call into the USER package, whatever the current
*PACKAGE* setting is. I wonder if this is a misinterpretation of the
CLtL reference, a bug or correct behavior.
CLtL1 said: (CLtL2 p.263)
The IN-PACKAGE function is intended to be placed at the start
of a file containing a subsystem that is to be loaded into
some package other than USER.
[No mention of compilation or load changing the current package.]
CLtL2 changed: (p.678)
X3J13 voted in October 1988 <21> to specify that COMPILE-FILE,
like LOAD, rebinds *PACKAGE* to its current value. If some
form in the file changes the value of *PACKAGE*, the old value
will be restored when compilation is finished.
and added: (p.690)
X3J13 voted in March 1989 <103> to specify that all actions
normally performed by the IN-PACKAGE macro at load-time must
also be performed at compile-time.
Should I write a bug-report or add a (IN-PACKAGE desired-package) at
the beginning of every file? I thought that the various defsystem
packages were to take care of the correct package by calling
IN-PACKAGE before COMPILE-FILE and that there was no requirement for
every file to contain an IN-PACKAGE call so that it can be compiled
into any package just current.
Thanks,
Joerg Hoehle.
Dipl.-Ing. J\"org H\"ohle Knowledge-Based Information Systems
······@inf-wiss.uni-konstanz.de University of Konstanz
Phone: +49 7531 88 2868 P.O. Box 5560-D73
Secretary & FAX: 88 3065 D-78434 Konstanz, Germany