[slime-devel] Re: make swank safe if loaded into an image with an older version of swank in the image

Madhu enometh at meer.net
Mon Feb 4 13:26:29 UTC 2008


* Marco Baringer <87r6ftszlo.fsf at arsenic.bese.it> :
Wrote on Mon, 04 Feb 2008 12:57:55 +0100:

| Madhu <enometh at meer.net> writes:
|
|> This is a bad idea. In general, packages should not be automatically
|> deleted[1], and I would prefer if package deletion was provided in a
|> function called reload-swank-loader or something that the user can
|> call when he knows what is happening
|>
|> Secondly, this breaks a common[2] strategy to put swank fasl files in a
|> different location: For example in my lisp's init file I may have have
|>
|> (eval-when (:load-toplevel :execute :compile-toplevel)
|> (unless (find-package :swank-loader)
|>   (make-package :swank-loader)))
|>
|> (defparameter swank-loader::*fasl-directory* "/user11/madhu/build/swank/")
|>
|> (load "/path/toswank-loader.lisp")
|>
|> - To override the defvar in swank-loader.lisp
|
| ok, since we even suggest doing this is the documentation i will stop
| deleting the swank-loader package (but i'll keep deleting the other
| packages unless you can convince me otherwise).

It is still a bad idea for the same reason.  Variables set earlier in
the session in the other packages will be wiped out of you delete the
package.  Definitely not what I want when I want DEFVAR to behave as
specified on reloading.

|> The logic propsed in the patch would break this usage completely by
|> deleting the package the variable belongs to

|>
|> [1] I hear some implementations may leak objects in deleted packages
|
| which implementations? they should be fixed.

Easily said!  I think i am remembering CLL message
<slrnf3hva0.gou.jsnell at sbz-30.cs.Helsinki.FI> and possibly some PCL
related messages (which do not apply since swank doesnt do defclass.)
--
Madhu




More information about the slime-devel mailing list