[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