* Helmut Eller m27ih0aa95.fsf@common-lisp.net Wrote on Tue, 19 Feb 2008 22:48:06 +0100: | |> * (swank-loader:init) | | The latest version of swank-loader:init doesn't reload swank if the | package already exists. You can call it with | | (swank-loader:init :reload t) | | to override that. slime.el invokes swank-loader:init without | arguments.
[Have not tested it yet] but the new behaviour will not support the use case I mentioned in my messages to Marco Baringer, because aiui (swank-loader:init :reload t) will delete packages.
The wisdom from ages has been to separate loading from initialization and to provide the mechanism to do both.[1]
I have not had a problem with reloading swank into a lisp image which already have swank, and when I do reload swank into a lisp image which has swank, I want the behaviour of DEFVAR and DEFPARAMETERs as documented in the Common Lisp Specification to be observed.
Deleting package seems to solve some problem for some combination of lisp + swank hacking/dumping swank to image that Marco is using, (again I have not had these problems), but if it speaks of a problem, the problem is not with original swank-loader, and trying to fix swank-loader only introduces new problems.
Marco did not respond to my messages asking which variables were giving the problems. However I can imagine he could have been dumping state into the core which should not be dumped like live connections, which would cause problems. In these cases a simple DEFVAR -> DEFPARAMETER should be enough to fix the problem
Anyway, what is happening is instead of fixing any actual problems, new problems are being introduced and mechanism being removed.
-- Madhu
[1] swank-loader originally did both, but _could_ be invoked by the user to support all behaviours via:
(when (find-package "SWANK") ;; or not ... (do-things-with "swank-loader.lisp"))