[slime-devel] Re: swank loading broken?

Madhu enometh at meer.net
Thu Feb 21 02:27:19 UTC 2008


* Helmut Eller <m27ih0aa95.fsf at 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"))






More information about the slime-devel mailing list