Search code examples
common-lispquicklisp

Quicklisp: Manually add library to dist?


Some days ago I updated SBCL to 1.2.1 and I thought it couldn't hurt to update the quick lisp dist/client as well.

WRONG!

After firing up slime in Emacs, I got this error:

; caught ERROR:
;   READ error during COMPILE-FILE:
;   
;     Symbol "CODE-TRACE-TABLE-OFFSET-SLOT" not found in the SB-VM package.
;   
;       Line: 1507, Column: 70, File-Position: 60197
;   
;       Stream: #<SB-SYS:FD-STREAM
;                 for "file /Users/fyi/quicklisp/dists/quicklisp/software/slime-2.7/swank-sbcl.lisp"
;                 {1008B07E43}>
; 
; compilation unit aborted
;   caught 1 fatal ERROR condition
;   caught 1 ERROR condition
;   printed 1 note
;; 
;; Error while compiling /Users/fyi/quicklisp/dists/quicklisp/software/slime-2.7/swank-sbcl.lisp:
;;   COMPILE-FILE returned NIL.
;; Aborting.

If you're using the quicklisp-slime-helper, so as I, the path to slime comes form the ~/quicklisp/dists/quicklisp/installed/systems/swank.txt file. Slime 2.8 should fix that error, but there is no quicklisp distribution that contains slime 2.8.

Coming down to my actual question. Is there a way to specify a library location outside of a quicklisp distribution? Or will I have to wait unit the next distribution has been made available and is there a guaranty a library will be updated in the next distribution?

I am sure I'm missing something, but the whole distribution stuff seems to me more of a hindrance than a help.


Solution

  • The next Quicklisp dist update is coming July 12 or 13. It will include a new SLIME that is compatible with SBCL 1.2.1. In the meantime, the easiest fix is to install SBCL 1.2.0.

    Another option is to comment out the quicklisp-slime-helper lines in ~/.emacs and install slime according to its own procedure.