Re: [spr30371] setting startup package
David Margolies <[email protected]> Wed, 29 Jun 2005 14:02:15 -0700
| Newsgroups | gmane.lisp.allegro |
|---|---|
| Message-ID | <[email protected]> |
how can I set the package at startup? I tried things like
alisp -e "(in-package :common-lisp)"
which do not work.
The '-e' processing is too early. See
doc/delivery.htm#initial-package-2 `Specifying the initial value of
*package*'. It says to have the function that is the value of
*restart-init-function* include
(tpl:setq-default *package* (find-package :my-package))
(rplacd (assoc 'tpl::*saved-package*
tpl:*default-lisp-listener-bindings*)
'common-lisp:*package*)
You can do that by putting the following in your .clinit.cl file
(replacing :my-package with whatever package you want):
;;---------
(defun set-init-pack-from-clinit-file ()
(let ((initial-restart-init-function *restart-init-function*))
(cond (initial-restart-init-function
(setf *restart-init-function*
#'(lambda ()
(tpl:setq-default *package* (find-package :my-package))
(rplacd (assoc 'tpl::*saved-package*
tpl:*default-lisp-listener-bindings*)
'common-lisp:*package*)
(setf *restart-init-function*
initial-restart-init-function)
(funcall initial-restart-init-function))))
(t
(setf *restart-init-function*
(tpl:setq-default *package* (find-package :my-package))
(rplacd (assoc 'tpl::*saved-package*
tpl:*default-lisp-listener-bindings*)
'common-lisp:*package*)
(setf *restart-init-function* nil)))))))
(set-init-pack-from-clinit-file)
;;----------
David Margolies
Franz Inc.