[slime-devel] strange thow starting slime...

Peter Stirling peter at pjstirling.plus.com
Wed Jun 9 00:22:06 UTC 2010


sbcl doesn't attempt to make its fasls safe between versions.

stick the following into ~/.sbclrc 

(require :asdf)

;;; If a fasl was stale, try to recompile and load (once).
(defmethod asdf:perform :around ((o asdf:load-op)
				 (c asdf:cl-source-file))
  (handler-case (call-next-method o c)
    ;; If a fasl was stale, try to recompile and load (once).
    (sb-ext:invalid-fasl ()
      (asdf:perform (make-instance 'asdf:compile-op) c)
      (call-next-method))))

and edit "/path/to/clbuild/clbuild.conf" so that the line 
"unset USER_INIT" isn't commented out.

You also need to pre-pend "/path/to/clbuild/target/bin/" to $PATH.
clbuild should really document it.

On Tue, 2010-06-08 at 18:33 -0400, Brian O'Reilly wrote:
> I'm running slime /w sbcl on an ubuntu 10.04 amd64 machine. I use 
> clbuild to generate lisp environments for each project I work on. Slime 
> starts normally when I have a fresh checkout of slime and a fresh build 
> of sbcl in a clbuild instance, compiled from the sbcl in the ubuntu 
> lucid package pool, but only on the first invocation when there aren't 
> any fasls. Upon subsequent invocations, when the environment tries to 
> start up from the fasls generated previously, I get swank throwing to 
> sldb with only an abort restart, which kills the slime startup entirely 
> when selected. Previously slime was throwing the same warning, but it 
> offered other restarts that allowed swank to start, and slime to 
> connect. The sldb and inferior lisp buffers follow:
> 
> =================
> 
> ;; inferior lisp:
> 
> (progn (load 
> "/home/fade/SourceCode/lisp/clbuild/source/slime/swank-loader.lisp" 
> :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall 
> (read-from-string "swank:start-server") "/tmp/slime.2349" :coding-system 
> "utf-8-unix"))
> 
> This is SBCL 1.0.39.2, an implementation of ANSI Common Lisp.
> More information about SBCL is available at <http://www.sbcl.org/>.
> 
> SBCL is free software, provided as is, with absolutely no warranty.
> It is mostly in the public domain; some portions are provided under
> BSD-style licenses.  See the CREDITS and COPYING files in the
> distribution for more information.
> *
> ; loading 
> #P"/home/fade/SourceCode/lisp/clbuild/source/slime/swank-loader.lisp"
> ; loading 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/swank-backend.fasl"
> ; loading 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/swank-source-path-parser.fasl"
> ; loading 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/swank-source-file-cache.fasl"
> ; loading 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/swank-sbcl.fasl"
> STYLE-WARNING: redefining SOCKET-FD in DEFUN
> STYLE-WARNING: redefining EMACS-INSPECT (#<BUILT-IN-CLASS T>) in DEFMETHOD
> ; loading 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/swank-gray.fasl"
> STYLE-WARNING:
>     Implicitly creating new generic function STREAM-READ-CHAR-WILL-HANG-P.
> ; loading 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/swank-match.fasl"
> ; loading 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/swank-rpc.fasl"
> ; loading 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/swank.fasl"
> WARNING: These Swank interfaces are unimplemented:
>   (DISASSEMBLE-FRAME DUP EXEC-IMAGE MAKE-FD-STREAM SLDB-BREAK-AT-START
>    SLDB-BREAK-ON-RETURN SOCKET-FD)
> ;; Swank started at port: 57233.
> 57233
> *
> ; in: LAMBDA NIL
> ;     (SWANK::RUN-REPL-EVAL-HOOKS SWANK::FORM)
> ;
> ; caught STYLE-WARNING:
> ;   undefined function: RUN-REPL-EVAL-HOOKS
> ;
> ; compilation unit finished
> ;   Undefined function:
> ;     RUN-REPL-EVAL-HOOKS
> ;   caught 1 STYLE-WARNING condition
> WARNING: change in instance length of class PRETTY-STREAM:
>    current length: 25
>    new length: 27
> STYLE-WARNING: redefining MAKE-PRETTY-STREAM in DEFUN
> STYLE-WARNING: redefining MAYBE-OUTPUT in DEFUN
> STYLE-WARNING: redefining OUTPUT-LINE in DEFUN
> STYLE-WARNING: redefining OUTPUT-PARTIAL-LINE in DEFUN
> STYLE-WARNING: redefining FORCE-PRETTY-OUTPUT in DEFUN
> WARNING: change in instance length of class SB-PRETTY:PRETTY-STREAM:
>    current length: 27
>    compile time length: 25
> 
> 
> ;; sldb sbcl/1
> 
> The loaded code expects an incompatible layout for class 
> SB-PRETTY:PRETTY-STREAM.
>     [Condition of type SIMPLE-ERROR]
> 
> Restarts:
>   0: [ABORT] Return to SLIME's top level.
>   1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "worker" RUNNING 
> {1003168481}>)
> 
> Backtrace:
>    0: (SB-KERNEL::CHECK-LAYOUT ..)
>        Locals:
>          SB-DEBUG::ARG-0 = #<SB-KERNEL:LAYOUT for 
> SB-PRETTY:PRETTY-STREAM {100081ACA1}>
>          SB-DEBUG::ARG-1 = #<SB-KERNEL:STRUCTURE-CLASSOID 
> SB-PRETTY:PRETTY-STREAM>
>          SB-DEBUG::ARG-2 = 25
>          SB-DEBUG::ARG-3 = #(#<SB-KERNEL:LAYOUT for T {1000087761}> ..)
>          SB-DEBUG::ARG-4 = 4
>          SB-DEBUG::ARG-5 = 0
>    1: (SB-KERNEL::%INIT-OR-CHECK-LAYOUT ..)
>        Locals:
>          SB-DEBUG::ARG-0 = #<SB-KERNEL:LAYOUT for 
> SB-PRETTY:PRETTY-STREAM {100081ACA1}>
>          SB-DEBUG::ARG-1 = #<SB-KERNEL:STRUCTURE-CLASSOID 
> SB-PRETTY:PRETTY-STREAM>
>          SB-DEBUG::ARG-2 = 25
>          SB-DEBUG::ARG-3 = #(#<SB-KERNEL:LAYOUT for T {1000087761}> ..)
>          SB-DEBUG::ARG-4 = 4
>          SB-DEBUG::ARG-5 = 0
>    2: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]324))
>        [No Locals]
>    3: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..)
>        Locals:
>          SB-DEBUG::ARG-0 = #<CLOSURE (FLET 
> SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {7FFFF4AD99A9}>
>          SB-DEBUG::ARG-1 = #S(SB-THREAD:MUTEX ..)
>    4: (SB-KERNEL:FIND-AND-INIT-OR-CHECK-LAYOUT ..)
>        Locals:
>          SB-DEBUG::ARG-0 = SB-PRETTY:PRETTY-STREAM
>          SB-DEBUG::ARG-1 = 25
>          SB-DEBUG::ARG-2 = #(#<SB-KERNEL:LAYOUT for T {1000087761}> ..)
>          SB-DEBUG::ARG-3 = 4
>          SB-DEBUG::ARG-4 = 0
>    5: (SB-FASL::FOP-LAYOUT)
>        [No Locals]
>    6: (SB-FASL::LOAD-FASL-GROUP #<SB-SYS:FD-STREAM for "file 
> /home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/contrib/swank-arglists.fasl" 
> {1002F12A81}>)
>        Locals:
>          SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "file 
> /home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39...
>        Catch-tags:
>          SB-FASL::FASL-GROUP-END
>    7: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
>        [No Locals]
>    8: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]324))
>        [No Locals]
>    9: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..)
>        Locals:
>          SB-DEBUG::ARG-0 = #<CLOSURE (FLET 
> SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {7FFFF4AD9CF9}>
>          SB-DEBUG::ARG-1 = #S(SB-THREAD:MUTEX ..)
>   10: (SB-FASL::LOAD-AS-FASL #<SB-SYS:FD-STREAM for "file 
> /home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/contrib/swank-arglists.fasl" 
> {1002F12A81}> NIL #<unavailable argument>)
>        Locals:
>          SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "file 
> /home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39...
>          SB-DEBUG::ARG-1 = NIL
>          SB-DEBUG::ARG-2 = :<NOT-AVAILABLE>
>   11: ((FLET SB-FASL::LOAD-STREAM) #<SB-SYS:FD-STREAM for "file 
> /home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/contrib/swank-arglists.fasl" 
> {1002F12A81}> T)
>        Locals:
>          SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "file 
> /home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39...
>          SB-DEBUG::ARG-1 = T
>   12: (LOAD 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/contrib/swank-arglists.fasl")[:EXTERNAL]
>        Locals:
>          SB-DEBUG::ARG-0 = 1
>          SB-DEBUG::ARG-1 = 
> #P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/contrib/swa..
>   13: (REQUIRE SWANK-IO-PACKAGE::SWANK-ARGLISTS 
> (#P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/contrib/swank-arglists.fasl"))
>        Locals:
>          SB-IMPL::MODULE-NAME = SWANK-IO-PACKAGE::SWANK-ARGLISTS
>          SB-IMPL::PATHNAMES = 
> (#P"/home/fade/.slime/fasl/2010-05-28/sbcl-1.0.39.2-linux-x86-64/contrib/sw..
>   14: (SWANK:SWANK-REQUIRE ..)
>        Locals:
>          SWANK::FILENAME = NIL
>          SWANK::MODULES = (:SWANK-LISTENER-HOOKS 
> SWANK-IO-PACKAGE::SWANK-PRESENTATION-STREAMS ..)
>   15: (SB-INT:SIMPLE-EVAL-IN-LEXENV ..)
>        Locals:
>          SB-DEBUG::ARG-0 = (SWANK:SWANK-REQUIRE ..)
>          SB-DEBUG::ARG-1 = #<NULL-LEXENV>
>   16: (SWANK::EVAL-FOR-EMACS ..)
>        Locals:
>          SB-DEBUG::ARG-0 = (SWANK:SWANK-REQUIRE ..)
>          SB-DEBUG::ARG-1 = "COMMON-LISP-USER"
>          SB-DEBUG::ARG-2 = 2
>   17: ((LAMBDA ()))
>        [No Locals]
>   18: (SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION 
> SWANK:SWANK-DEBUGGER-HOOK> #<FUNCTION (LAMBDA #) {1004498319}>)
>        Locals:
>          *INVOKE-DEBUGGER-HOOK* = :<NOT-AVAILABLE>
>          SWANK-BACKEND::CONTINUATION = #<FUNCTION (LAMBDA ()) {1004498319}>
>          SWANK-BACKEND::HOOK = #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
>   19: ((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK) #<FUNCTION 
> SWANK:SWANK-DEBUGGER-HOOK> #<FUNCTION (LAMBDA #) {1004498319}>)
>        Locals:
>          *DEBUGGER-HOOK* = :<NOT-AVAILABLE>
>          SB-KERNEL:*HANDLER-CLUSTERS* = :<NOT-AVAILABLE>
>          SWANK-BACKEND::FUN = #<FUNCTION (LAMBDA ()) {1004498319}>
>          SWANK-BACKEND::HOOK = #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
>   20: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA #) {10031690F9}>)
>        Locals:
>          SB-DEBUG::ARG-0 = NIL
>          SB-DEBUG::ARG-1 = #<CLOSURE (LAMBDA ()) {10031690F9}>
>   21: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {1003119F11}> 
> #<FUNCTION (LAMBDA #) {1004498319}>)
>        Locals:
>          SB-DEBUG::ARG-0 = #<SWANK::CONNECTION {1003119F11}>
>          SB-DEBUG::ARG-1 = #<FUNCTION (LAMBDA ()) {1004498319}>
>   22: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA #) {10031690B9}>)
>   23: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK369]374))
>   24: ((FLET SB-THREAD::WITH-MUTEX-THUNK))
>   25: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300))
>   26: (SB-THREAD::CALL-WITH-MUTEX ..)
>   27: (SB-THREAD::INITIAL-THREAD-FUNCTION)
>   28: ("foreign function: #x422C00")
>   29: ("foreign function: #x419857")
> 
> ;; /paste
> 
> ... if I remove all relevant fasls and force the environment to 
> recompile everything, I can start slime again, once. It would be great 
> if somebody could point me toward a permanent fix for this. I should 
> also note that I do not see this problem at all running Clozure Common 
> Lisp against the same clbuild instance, so this looks like it may be a 
> problem in SBCL, but after pfaffing about in the inspector for quite 
> awhile, I still haven't narrowed down the problem -- debugging PEBCAK to 
> be sure, but any help would be greatly appreciated!
> 
> Kind Regards.,
> 
> Brian
> 
> _______________________________________________
> slime-devel site list
> slime-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/slime-devel






More information about the slime-devel mailing list