[slime-devel] Installing swank
Bill St. Clair
billstclair at gmail.com
Fri Jun 5 13:21:02 UTC 2009
On Fri, Jun 5, 2009 at 8:44 AM, Patrick May<pjm at spe.com> wrote:
> I'm having trouble installing swank locally. I had it working by
> adding a symbolic link from /usr/local/src/slime/swank.asd to /usr/
> local/asdf-install/site-systems/swank.asd, but that required write
> access to /usr/local/src/slime for temporary files. Is there a way to
> specify a different directory for those?
>
> I then tried this:
>
> (make-package :swank-loader)
> (defparameter swank-loader::*source-directory* "/home/pjm/slime/")
> (defparameter swank-loader::*fasl-directory* "/home/pjm/slime/")
> (load "/home/pjm/slime/swank-loader.lisp")
> (setq swank:*use-dedicated-output-stream* nil)
> (swank:create-server :port 4005 :dont-close t)
>
> But it resulted in:
>
> > Error: Reader error on #<BASIC-FILE-CHARACTER-INPUT-STREAM ("/home/
> pjm/ccl-init.lisp"/4 ISO-8859-1) #x300040F05A0D>, near position 714,
> within "etq swank:*use-dedic":
> > Reference to unknown package "SWANK".
> > While executing: CCL::SIGNAL-READER-ERROR, in process listener(1).
Two things:
1) Probably best not to define the SWANK-LOADER package yourself,
differently from how it's defined in "swank-loader.lisp". But I don't
think this is the source of your problem.
2) Loading "swank-loader.lisp" doesn't load Swank. It does define
SWANK-LOADER:INIT, which you can call to do the load. So this will
likely work in a repl (untested):
(load "/home/pjm/slime/swank-loader.lisp")
(setq swank-loader:*source-directory* "/home/pjm/slime/"
swank-loader:*fasl-directory* "/home/pjm/slime/")
(swank-loader:init)
(setq swank:*use-dedicated-output-stream* nil)
(swank:create-server :port 4005 :dont-close t)
If you package that up in a function, you'll have to add some ugliness
because the SWANK-LOADER package isn't defined until you load
"swank-loader.lisp", and the SWANK package isn't defined until you
execute (swank-loader:init). Something like (again, untested):
(defun load-swank ()
(load "/home/pjm/slime/swank-loader.lisp")
(set (find-symbol "*SOURCE-DIRECTORY*" :swank-loader) "/home/pjm/slime/"
(find-symbol "*FASL-DIRECTORY*" :swank-loader) "/home/pjm/slime/")
(funcall (find-symbol "INIT" :swank-loader))
(set (find-symbol "*USE-DEDICATED-OUTPUT-STREAM*" :swank) nil)
(funcall (find-symbol "CREATE-SERVER" :swank) :port 4005 :dont-close t))
> Is there a way to install via asdf locally?
>
> (Clozure CL 64-bit on CentOS, if that matters.)
(pushnew "/usr/local/src/slime" asdf:*central-registry* :test #'equal)
(asdf:oos 'asdf:load-op :swank)
More information about the slime-devel
mailing list