sldb says "The loaded code expects an incompatible layout for class SB-PRETTY:PRETTY-STREAM." and hangs

Bug #1104408 reported by Samuel Bronson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Slime
New
Undecided
Unassigned

Bug Description

When I try to start slime, I usually get more-or-less this text in buffer *sldb sbcl/1*, but sldb doesn't work -- it just hangs:

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: [ABORT] Abort thread (#<THREAD "worker" RUNNING {ADC2789}>)

Backtrace:
  0: (SB-KERNEL::CHECK-LAYOUT ..)
  1: (SB-KERNEL::%INIT-OR-CHECK-LAYOUT ..)
  2: ((FLET #:WITHOUT-INTERRUPTS-BODY-89288 :IN SB-THREAD::CALL-WITH-RECURSIVE-LOCK))
  3: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..)
  4: (SB-KERNEL:FIND-AND-INIT-OR-CHECK-LAYOUT ..)
  5: (SB-FASL::FOP-LAYOUT)
  6: (SB-FASL::LOAD-FASL-GROUP #<SB-SYS:FD-STREAM for "file /home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl" {BCD1B39}>)
  7: (SB-FASL::LOAD-AS-FASL #<SB-SYS:FD-STREAM for "file /home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl" {BCD1B39}> NIL #<unavailable argument>)
  8: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file /home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl" {BCD1B39}> T)
  9: (LOAD #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
 10: (REQUIRE SWANK-IO-PACKAGE::SWANK-ARGLISTS (#P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl"))
 --more--

The relevant portion of my init file is:

(setq inferior-lisp-program "sbcl")
(require 'slime-autoloads)
(slime-setup '(slime-fancy slime-compiler-notes-tree slime-asdf slime-presentation-streams))

It seems that there are two problems here:

 1. The changes done in sbcl-pprint-patch.lisp, which is pulled in by contrib/swank-presentation-streams.lisp, which is in turn pulled in by contrib/slime-presentation-streams.el, are stepping on contrib/swank-arglist's toes for some reason

 2. SLDB is attempting to handle an error when it can't actually listen for further instructions, and should have deferred to SBCL's debugger.

In case it helps, some buffer contents follow. (Note: this was the second time starting slime in this Emacs, so I tried to include only the relevant parts, but might have overshot or undershot.)

Tail of *inferior-lisp*:

(progn (load "/home/naesten/system/emacs/dist/elisp/slime/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.30594"))

This is SBCL 1.0.57.0.debian, 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/naesten/system/emacs/dist/elisp/slime/swank-loader.lisp"
; loading #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/swank-backend.fasl"
; loading #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/swank-source-path-parser.fasl"
; loading #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/swank-source-file-cache.fasl"
; loading #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/swank-sbcl.fasl"
STYLE-WARNING: redefining EMACS-INSPECT (#<BUILT-IN-CLASS T>) in DEFMETHOD
; loading #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/swank-gray.fasl"
STYLE-WARNING:
   Implicitly creating new generic function STREAM-READ-CHAR-WILL-HANG-P.
; loading #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/swank-match.fasl"
; loading #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/swank-rpc.fasl"
; loading #P"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/swank.fasl"
WARNING: These Swank interfaces are unimplemented:
 (SLDB-BREAK-AT-START SLDB-BREAK-ON-RETURN)
;; Swank started at port: 47704.
47704
* STYLE-WARNING:
   redefining THREAD-FOR-EVALUATION (#<STRUCTURE-CLASS
                                       MULTITHREADED-CONNECTION>
                                     #<SB-MOP:EQL-SPECIALIZER
                                       {C8DBA41}>) in DEFMETHOD
WARNING: change in instance length of class PRETTY-STREAM:
  current length: 25
  new length: 27
STYLE-WARNING: redefining SB-PRETTY::MAKE-PRETTY-STREAM in DEFUN
STYLE-WARNING: redefining SB-PRETTY::ENQUEUE in DEFMACRO
STYLE-WARNING: redefining SB-PRETTY::MAYBE-OUTPUT in DEFUN
STYLE-WARNING: redefining SB-PRETTY::OUTPUT-LINE in DEFUN
STYLE-WARNING: redefining SB-PRETTY::OUTPUT-PARTIAL-LINE in DEFUN
STYLE-WARNING: redefining SB-PRETTY::FORCE-PRETTY-OUTPUT in DEFUN
WARNING: change in instance length of class SB-PRETTY:PRETTY-STREAM:
  current length: 27
  compile time length: 25

tail of *slime-events*:

(:emacs-rex
 (swank:connection-info)
 "COMMON-LISP-USER" t 1)
(:return
 (:ok
  (:pid 2990 :style :spawn :encoding
 (:coding-systems
  ("utf-8-unix" "iso-latin-1-unix"))
 :lisp-implementation
 (:type "SBCL" :name "sbcl" :version "1.0.57.0.debian" :program "/usr/bin/sbcl")
 :machine
 (:instance "hydrogen" :type "X86" :version "Pentium II (Deschutes)")
 :features
 (:swank :sb-bsd-sockets-addrinfo :asdf2 :asdf :asdf-unicode :ansi-cl :common-lisp :sbcl :sb-doc :sb-test :sb-ldb :sb-package-locks :sb-unicode :sb-eval :sb-source-locations :ieee-floating-point :os-provides-poll :os-provides-getprotoby-r :os-provides-suseconds-t :os-provides-blksize-t ...)
 :modules
 ("SB-CLTL2" "SB-POSIX" "SB-INTROSPECT" "SB-BSD-SOCKETS" "SB-GROVEL" "ASDF")
 :package
 (:name "COMMON-LISP-USER" :prompt "CL-USER")
 :version "2012-12-17"))
 1)
(:emacs-rex
 (swank:swank-require
  '(swank-presentation-streams swank-asdf swank-package-fu swank-presentations swank-fuzzy swank-fancy-inspector swank-c-p-c swank-arglists swank-repl))
 "COMMON-LISP-USER" t 2)
(:indentation-update
 (("with-unlocked-packages" 1
   ("SB-GROVEL" "SB-BSD-SOCKETS-INTERNAL" "COMMON-LISP-USER" "SB-EVAL" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" ...))
  ("with-locked-hash-table" 1
   ("SB-GROVEL" "SB-BSD-SOCKETS-INTERNAL" "COMMON-LISP-USER" "SB-EVAL" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" ...))
  ("with-timeout" 1
   ("SB-GROVEL" "SB-BSD-SOCKETS-INTERNAL" "COMMON-LISP-USER" "SB-EVAL" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" ...))
  ("define-cas-expander" 2
   ("SB-GROVEL" "SB-BSD-SOCKETS-INTERNAL" "COMMON-LISP-USER" "SB-EVAL" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" ...))
  ("define-source-context" 2
   ("SB-GROVEL" "SB-BSD-SOCKETS-INTERNAL" "COMMON-LISP-USER" "SB-EVAL" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" ...))
  ("without-package-locks" 0
   ("SB-GROVEL" "SB-BSD-SOCKETS-INTERNAL" "COMMON-LISP-USER" "SB-EVAL" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" ...))
  ("dx-let" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("collect" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("dovector" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("with-float-traps-masked" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("with-rebound-io-syntax" 0
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("with-progressive-timeout" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("awhen" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("with-locked-system-table" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("dohash" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("with-unique-names" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("with-fast-read-byte" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("define-deprecated-function" 5
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("defun-cached" 2
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ("prepare-for-fast-read-char" 1
   ("SB-CLTL2" "SB-WALKER" "SB-UNIX" "SB-PROFILE" "SB-PRETTY" "SB-THREAD" "SB-GRAY" "SB-FORMAT" "SB-FASL" "SB-DISASSEM" "SB-DEBUG" "SB-C" "SB-BIGNUM" "SB-ASSEM" "SB-ALIEN" "SB-PCL" "SB-DI" "SB-IMPL" "SB-SYS" "SB-KERNEL" ...))
  ...))
(:debug 1 1
 ("The loaded code expects an incompatible layout for class SB-PRETTY:PRETTY-STREAM." " [Condition of type SIMPLE-ERROR]" nil)
 (("*ABORT" "Return to SLIME's top level.")
  ("ABORT" "Abort thread (#<THREAD \"worker\" RUNNING {ADC2789}>)"))
 ((0 "(SB-KERNEL::CHECK-LAYOUT ..)")
  (1 "(SB-KERNEL::%INIT-OR-CHECK-LAYOUT ..)")
  (2 "((FLET #:WITHOUT-INTERRUPTS-BODY-89288 :IN SB-THREAD::CALL-WITH-RECURSIVE-LOCK))")
  (3 "(SB-THREAD::CALL-WITH-RECURSIVE-LOCK ..)")
  (4 "(SB-KERNEL:FIND-AND-INIT-OR-CHECK-LAYOUT ..)")
  (5 "(SB-FASL::FOP-LAYOUT)")
  (6 "(SB-FASL::LOAD-FASL-GROUP #<SB-SYS:FD-STREAM for \"file /home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl\" {BCD1B39}>)")
  (7 "(SB-FASL::LOAD-AS-FASL #<SB-SYS:FD-STREAM for \"file /home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl\" {BCD1B39}> NIL #<unavailable argument>)")
  (8 "((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for \"file /home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl\" {BCD1B39}> T)")
  (9 "(LOAD #P\"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl\" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)")
  (10 "(REQUIRE SWANK-IO-PACKAGE::SWANK-ARGLISTS (#P\"/home/naesten/.slime/fasl/2012-12-17/sbcl-1.0.57.0.debian-linux-x86/contrib/swank-arglists.fasl\"))")
  (11 "(SWANK:SWANK-REQUIRE ..)")
  (12 "(SB-INT:SIMPLE-EVAL-IN-LEXENV ..)")
  (13 "(EVAL ..)")
  (14 "(SWANK:EVAL-FOR-EMACS ..)")
  (15 "((LAMBDA () :IN SWANK::SPAWN-WORKER-THREAD))")
  (16 "(SWANK-BACKEND::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<FUNCTION (LAMBDA # :IN SWANK::SPAWN-WORKER-THREAD) {CA9ACBD}>)")
  (17 "((FLET SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK :IN \"/home/naesten/system/emacs/dist/elisp/slime/swank-sbcl.lisp\") ..)")
  (18 "((LAMBDA () :IN SWANK::SPAWN-WORKER-THREAD))")
  (19 "((FLET #:WITHOUT-INTERRUPTS-BODY-224707 :IN SB-THREAD:MAKE-THREAD))"))
 (2))
(:debug-activate 1 1 nil)
(:emacs-rex
 (swank:backtrace 11 51)
 "COMMON-LISP-USER" 1 3)
(:emacs-rex
 (swank:backtrace 11 51)
 "COMMON-LISP-USER" 1 4)
(:emacs-rex
 (swank:backtrace 11 51)
 "COMMON-LISP-USER" 1 5)
(:emacs-rex
 (swank:frame-locals-and-catch-tags 4)
 "COMMON-LISP-USER" 1 6)
(:emacs-rex
 (swank:autodoc
  '("eval-when"
    (":load-toplevel")
    ("handler-bind"
     (...)
     ("sb-ext:without-package-locks" ...)))
  :print-right-margin 80)
 ":swank" t 7)

Tags: sbcl sldb
Revision history for this message
Stas Boukarev (stassats) wrote :

slime-presentation-streams is causing this, don't load it.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.