From: Choi jong won (DM-4338-96.8.1) <gsen.goldstar.co.kr at jwchoi>
(let ((pack "MY-PACK"))
(in-package pack))
Seems to fail on my Allegro(SUN and Solaris). On GCL it works. Anyone has soution for this?
In ANSI CL defines IN-PACKAGE to be a macro that does not evaluate its
argument. This is an incompatible change from the original CLtL1
specification which definied it as a function. You can learn the
motivation for this change on CLtL2 pp265-6. See also the ACL User
Guide, Appendix A, item 95. I suspect GCL still uses the CLtL1-era
definition.
Your form above is trying to set the package to eh "PACK" package, and
would succeed if that package happened to exist.
In ANSI CL you would write what you are apparently trying to do this way
(setq *package* (find-package "MY-PACK"))
which should also work in the CLtL1 language. You might want to
bulletproof the code against errors if the package does not exist;
setting *PACKAGE* to NIL is illegal and may break the printer and
reader.