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
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@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
Peter Stirling peter@pjstirling.plus.com writes:
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.
First, slime doesn't use ASDF for loading its file. And the problem is not with different fasl versions, but that side effects of compilation of slime-presentation-streams contrib aren't present when only loading it.
Brian O'Reilly fade@deepsky.com writes:
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}>)
... 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!
Don't load slime-presentation-streams contrib, because it's broken.
And as for run-repl-eval-hooks warnings, you appear to be using swank-listener-hooks contrib but not loading it, so either add (slime-require 'swank-listener-hooks) to your config, or stop using it.
On 10-06-09 01:25 AM, Stas Boukarev wrote:
(slime-require 'swank-listener-hooks)
Well, I looked at that before I posted to the list, but I'm definitely loading the swank-listener-hooks. This is the slime setup portion of my .emacs:
========================
(set-language-environment "UTF-8") (setq slime-net-coding-system 'utf-8-unix) (setq inferior-lisp-program "/home/fade/SourceCode/lisp/clbuild/clbuild --implementation sbcl lisp") ;; load slime:
(setq load-path (cons "/home/fade/SourceCode/lisp/clbuild/source/slime" load-path)) (setq load-path (cons "/home/fade/SourceCode/lisp/clbuild/source/slime/contrib" load-path)) (setq slime-backend "/home/fade/SourceCode/lisp/clbuild/source/slime/swank-loader.lisp")
(setq common-lisp-hyperspec-root "file:///home/fade/SourceCode/lisp/HyperSpec/")
(load "/home/fade/SourceCode/lisp/clbuild/source/slime/slime")
(setq slime-use-autodoc-mode t)
(slime-setup '(slime-fancy slime-tramp slime-asdf slime-banner slime-presentation-streams slime-presentations slime-references))
(slime-require :swank-listener-hooks)
;; paredit mode:: (autoload 'paredit-mode "paredit" "Minor mode for pseudo-structurally editing Lisp code." t)
(dolist (hook '(emacs-lisp-mode-hook lisp-mode-hook slime-repl-mode-hook)) (add-hook hook #'(lambda nil (paredit-mode 1))))
==========================
... ideas?
Brian
Brian O'Reilly fade@deepsky.com writes:
On 10-06-09 01:25 AM, Stas Boukarev wrote:
(slime-require 'swank-listener-hooks)
Well, I looked at that before I posted to the list, but I'm definitely loading the swank-listener-hooks. This is the slime setup portion of my .emacs:
========================
(set-language-environment "UTF-8") (setq slime-net-coding-system 'utf-8-unix) (setq inferior-lisp-program "/home/fade/SourceCode/lisp/clbuild/clbuild --implementation sbcl lisp") ;; load slime:
(setq load-path (cons "/home/fade/SourceCode/lisp/clbuild/source/slime" load-path)) (setq load-path (cons "/home/fade/SourceCode/lisp/clbuild/source/slime/contrib" load-path)) (setq slime-backend "/home/fade/SourceCode/lisp/clbuild/source/slime/swank-loader.lisp")
(setq common-lisp-hyperspec-root "file:///home/fade/SourceCode/lisp/HyperSpec/")
(load "/home/fade/SourceCode/lisp/clbuild/source/slime/slime")
(setq slime-use-autodoc-mode t)
(slime-setup '(slime-fancy slime-tramp slime-asdf slime-banner slime-presentation-streams slime-presentations slime-references))
(slime-require :swank-listener-hooks)
;; paredit mode:: (autoload 'paredit-mode "paredit" "Minor mode for pseudo-structurally editing Lisp code." t)
(dolist (hook '(emacs-lisp-mode-hook lisp-mode-hook slime-repl-mode-hook)) (add-hook hook #'(lambda nil (paredit-mode 1))))
==========================
... ideas?
Alright, it gives warnings for another reason. But that wasn't the main issue anyway.