Books of Note

Practical Common
LispThe best intro to start your journey. Excellent coverage of CLOS.

ANSI Common
LispAnother great starting point with a different focus.

Paradigms of Artificial Intelligence
ProgrammingA superb set of Lisp examples. Not just for the AI crowd.

Friday, June 24, 2005

Upgrades resolved 

I finally got my Slime/CLISP thing worked out. For whatever reason, it turns out that Slime 1.0 and 1.2.1 are not compatible with CLISP 2.33.2. When I did my upgrade, I took the opportunity to move from Slime 1.0 to Slime 1.2.1 and from CLISP 2.33.1 to CLISP 2.33.2. Previously, Slime 1.0 and CLISP 2.33.1 had been playing nicely. Last night, I had tried reverting back to Slime 1.0, thinking that this was basically a Slime issue. I figured that CLISP hadn't changed that much between 2.33.1 and 2.33.2 and so that couldn't have been the problem. But neither Slime 1.0 or 1.2.1 worked with CLISP 2.33.2. Of course, the problem is always the last thing you check. Tonight, I tried it with the older CLISP and things fired right up.

I haven't fully tracked down the problem, but it's somewhere in the Swank bootstrapping, probably something in the CLISP backend, somewhere. Basically, Swank gets loaded, but never creates the server socket. Slime is left polling for the temp file in which Swank should write the socket number used by the server so Slime can connect. Only that file is never written and Slime is left jilted at the altar. I have no idea if this is XP-specific or simply CLISP 2.33.2-specific.

Further debugging will have to wait. After a couple of days of ILC, I want to hack some Lisp!


Comments:


Linux + GNU Emacs 21.3.2 + CLISP 2.33.2 + Slime 1.2.1 (2005-04-27) = Bliss. Hope this helps.
 


This is a bug with clisp.

The function COPY-PPRINT-DISPATCH called in the swank.lisp file of slime should take nil as its argument and return the value of *print-pprint-dispatch* but it returns an error instead.

Earlier versions of SLIME don't call this function so they work.

You can place a dirty hack in the latest version of SLIME to fix it,

in the file swank.lisp change the line

(*print-pprint-dispatch* . ,(copy-pprint-dispatch nil))
to
(*print-pprint-dispatch* . ,*print-pprint-dispatch*)

the function just returns the initial value of *print-pprint-dispatch* anyway so this shouldn't cause any trouble, I hope : )

BTW I'm using OSX so this is just clisp not the OS.
 


forgot to say I'm using

GNU CLISP 2.32 (2003-12-29)

I don't know if this bug is in newer versions...
 


Actually a better idea is to change the line to

(*print-pprint-dispatch* . ,(copy-pprint-dispatch))

as the program calls the function to get a copy of *print-pprint-dispatch* using the original might break something.

There is still a bug in clisp though as it should do this anyway when given nil as an argument.
 


I've spent most part of yesterday in trying to get latest versions of SLIME, CLISP and XEmacs work together. After a lot of googling I've found a hack that gets the Swank to actually create the socket. Tried, and it worked for me. Maybe it will work for you too.
 


clisp cvs + slime cvs + windows XP works fine iff the following change
is done
(defun regex-compile (..)
...
(t
;;
;; This is a subgroup repeated so I must build
;; the loop using several values.
;;
;;; clisp barfs without the t
t
))
 

Post a Comment


Links to this post:

Create a Link

This page is powered by Blogger. Isn't yours?