[slime-devel] (asdf:oos 'asdf:load-op :swank)(create-server) doesn't load contribs.

Numeromancer tschaeffer at dramail.com
Thu Mar 6 21:09:46 UTC 2008


Hi,

Just a note, and an implied question, I guess.

I start a web server using sbcl, and start a swank server in it.
I just started using a later version of slime from cvs 
(SLIME 2008-02-28).  Slime no longer loads the contribs, as you
know, which caused the server to generate an error when connecting
to it remotely from an emacs which is using the contribs.

.sbclrc used to say:

(asdf:oos 'asdf:load-op :swank)
(swank:create-server :port 4006 :dont-close t)

And it worked. I now must say:

(asdf:oos 'asdf:load-op :swank)
(swank-loader:init :load-contribs t)
(swank:create-server :port 4006 :dont-close t)

I thought I would mention this here, as I could find nothing 
in the docs, or anything in the changelog, news, or readme 
files which mentioned this.

If anyone can say "You should be doing it this way instead...",
that'd be good.

Could swank.asd have something like this? (just off the top 
of my head, untested):

(defclass swank-with-contribs-loader-file (swank-loader-file) ())

(defmethod asdf:operation-done-p
   ((o asdf:compile-op) (f swank-loader-file))
  t)

(defmethod asdf:perform ((o asdf:load-op) 
                         (f swank-with-contribs-loader-file))
  (load (asdf::component-pathname f))
  (funcall (read-from-string "swank-loader::init")
           :reload (asdf::operation-forced o)
           :delete (asdf::operation-forced o)
           :load-contribs t
           :setup nil))

(asdf:defsystem :swank-with-contribs
  :default-component-class swank-with-contribs-loader-file
  :components ((:file "swank-loader")))


I know there is a better way to do this.

Tim S




More information about the slime-devel mailing list