[Gbbopen-list] Any way to have GBB Open leave *PACKAGE* alone?
Robert Goldman
rpgoldman at sift.info
Mon Mar 19 12:38:17 EDT 2012
We are using GBB Open pretty happily, but one irritation a
number of us has is the way it messes with the package.
Right now, when I load my system (which uses GBBOpen),
it loads all the files through ASDF and then....
I have to change my package.
I looked into disabling SET-REPL-PACKAGE, but then I find in initiate.lisp
that it is called in set-module like this:
(defun startup-module (module-name options &optional package
;; not documented
dont-remember)
(handler-bind ((error #'(lambda (e)
(declare (ignore e))
(let ((restart (find-restart
(intern
(symbol-name '#:create-all)
:module-manager))))
(when restart
(invoke-restart restart))))))
(startup-gbbopen)
(funcall-in-package '#:do-module-manager-repl-command ':module-manager
':cm
(list* module-name ':propagate options)
dont-remember))
(when package
(set-repl-package package)
(import '(common-lisp-user::gbbopen-tools
common-lisp-user::gbbopen
common-lisp-user::gbbopen-user
common-lisp-user::gbbopen-test)
*package*))
(values))
I.e., the code relies on a side-effect of SET-REPL-PACKAGE to establish
the value of *PACKAGE*. At least, I /think/ that is what it's doing.
At any rate, the effect of that IMPORT call seems very difficult to
predict, since it relies on an uncontrolled dynamic variable,
and possibly undesirable.
Any chance of changing this behavior? I can see it might be desirable for
interactive development in the context of GBB, but if you are using GBB as a
library inside a larger system, it's a bit bothersome.
Cheers,
r
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the Gbbopen-list
mailing list