sbcl 1.4.0 room.pure.lisp fails on Mac OS X 10.13

Bug #1720763 reported by Bob Felts on 2017-10-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Medium
Unassigned

Bug Description

Built 1.4.0 from 1.3.21. Tests fail:

// Running /Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp in COMPILE evaluator mode
::: Running (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)
While evaluating the form starting at line 16, column 0
  of #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp":
Unhandled TYPE-ERROR: The value #<invalid object #x19FE43F> is not of type NUMBER when binding SB-KERNEL::X
Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {100192F603}>
0: (SB-KERNEL:TWO-ARG-< #<invalid object #x19FE43F> 0) [external]
1: (SB-VM::GENERIC-<)
Unhandled SIMPLE-ERROR: Array element type of :DISPLACED-TO array does not match specified element type

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {100192F603}>
0: (SB-KERNEL:TWO-ARG-< #<invalid object #x19FE43F> 0) [external]
1: (SB-VM::GENERIC-<)
#<SIMPLE-ERROR while printing frame 2. The partial output is: "2: ">
3: ((LABELS SB-IMPL::HANDLE-IT :IN SB-KERNEL:OUTPUT-OBJECT) #<SB-PRETTY:PRETTY-STREAM {102B199973}>)
#<SIMPLE-ERROR while printing frame 4. The partial output is: "4: ">
5: (SB-FORMAT::S-FORMAT-DIRECTIVE-INTERPRETER #<SB-PRETTY:PRETTY-STREAM {102B199973}> #<~S> (" " #<> #<~@:_> "is " #<> "not " #<> "of " #<> "type " #<> #<~@:_> ...) #<unused argument> (VECTOR NIL))
6: (SB-FORMAT::INTERPRET-DIRECTIVE-LIST #<SB-PRETTY:PRETTY-STREAM {102B199973}> (#<~S> " " #<> #<~@:_> "is " #<> "not " #<> "of " #<> "type " #<> ...) (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL) (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL))
7: ((FLET "PPRINT-BLOCK" :IN SB-FORMAT::INTERPRET-FORMAT-LOGICAL-BLOCK) (VECTOR NIL) (1 . #<SB-PRETTY:PRETTY-STREAM {102B199973}>) #<SB-PRETTY:PRETTY-STREAM {102B199973}>)
8: ((LABELS #:BODY-NAME-2 :IN SB-PRETTY::CALL-LOGICAL-BLOCK-PRINTER))
9: ((FLET "WITH-PRETTY-STREAM0" :IN SB-PRETTY::CALL-LOGICAL-BLOCK-PRINTER) #<SB-PRETTY:PRETTY-STREAM {102B199973}>)
10: (SB-PRETTY::CALL-LOGICAL-BLOCK-PRINTER #<CLOSURE (FLET "PPRINT-BLOCK" :IN SB-FORMAT::INTERPRET-FORMAT-LOGICAL-BLOCK) {19FD55B}> #<SB-PRETTY:PRETTY-STREAM {102B199973}> "" NIL "" (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL))
11: (SB-FORMAT::INTERPRET-FORMAT-LOGICAL-BLOCK #<SB-PRETTY:PRETTY-STREAM {102B199973}> (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL) (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL) "" NIL ("The " #<> "value " #<> #<~@:_> #<~2@T> #<~S> " " #<> #<~@:_> "is " #<> ...) "" T)
12: (SB-FORMAT::<-FORMAT-DIRECTIVE-INTERPRETER #<SB-PRETTY:PRETTY-STREAM {102B199973}> #<~@<> ("The value " #<~@:_> #<~2@T> #<~S> " " #<~@:_> "is not of type " #<~@:_> #<~2@T> #<~/sb-impl:print-type-specifier/> #<~@[> " " ...) (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL) #<unavailable argument>)
13: (SB-FORMAT::INTERPRET-DIRECTIVE-LIST #<SB-PRETTY:PRETTY-STREAM {102B199973}> (#<~@<> "The value " #<~@:_> #<~2@T> #<~S> " " #<~@:_> "is not of type " #<~@:_> #<~2@T> #<~/sb-impl:print-type-specifier/> #<~@[> ...) (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL) (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL))
14: (SB-FORMAT::%FORMAT #<SB-PRETTY:PRETTY-STREAM {102B199973}> "~@<The value ~@:_~2@T~S ~@:_is not of type ~@:_~2@T~/sb-impl:print-type-specifier/~@[ ~@:_~a~]~:@>" (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL) (#<error printing a (SIMPLE-ARRAY NIL (#<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)): #<TYPE-ERROR expected-type: NUMBER datum: #<invalid object #x19FE43F>>> VECTOR NIL))
#<SIMPLE-ERROR while printing frame 15. The partial output is: "15: (FORMAT #<SB-PRETTY:PRETTY-STREAM {102B199973}> \"~@<The value ~@:_~2@T~S ~@:_is not of type ~@:_~2@T~/sb-impl:print-type-specifi">
#<SIMPLE-ERROR while printing frame 16. The partial output is: "16: (FORMAT #<SB-PRETTY:PRETTY-STREAM {102B199973}> \"~@<The value ~@:_~2@T~S ~@:_is not of type ~@:_~2@T~/sb-impl:print-type-specifi">
17: ((LABELS SB-IMPL::HANDLE-IT :IN SB-KERNEL:OUTPUT-OBJECT) #<SB-PRETTY:PRETTY-STREAM {102B199973}>)
18: (PRINC #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>> #<SB-PRETTY:PRETTY-STREAM {102B199973}>)
19: (SB-FORMAT::A-FORMAT-DIRECTIVE-INTERPRETER #<SB-PRETTY:PRETTY-STREAM {102B199973}> #<~A> ("\"") #<unused argument> NIL)
20: (SB-FORMAT::INTERPRET-DIRECTIVE-LIST #<SB-PRETTY:PRETTY-STREAM {102B199973}> (#<~A> "\"") ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) (#<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>))
21: ((FLET "PPRINT-BLOCK" :IN SB-FORMAT::INTERPRET-FORMAT-LOGICAL-BLOCK) NIL (4 . #<SB-PRETTY:PRETTY-STREAM {102B199973}>) #<SB-PRETTY:PRETTY-STREAM {102B199973}>)
22: ((LABELS #:BODY-NAME-2 :IN SB-PRETTY::CALL-LOGICAL-BLOCK-PRINTER))
23: ((FLET "WITH-PRETTY-STREAM0" :IN SB-PRETTY::CALL-LOGICAL-BLOCK-PRINTER) #<SB-PRETTY:PRETTY-STREAM {102B199973}>)
24: (SB-PRETTY::CALL-LOGICAL-BLOCK-PRINTER #<CLOSURE (FLET "PPRINT-BLOCK" :IN SB-FORMAT::INTERPRET-FORMAT-LOGICAL-BLOCK) {19FDCAB}> #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> "" NIL "" (:UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>))
25: (SB-FORMAT::INTERPRET-FORMAT-LOGICAL-BLOCK #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) (:UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) "" NIL (#<~A> " " #<~S> " " #<~:_> "due to " #<~S> ": " #<~4I> #<~:_> "\"" #<~A> ...) "" T)
26: (SB-FORMAT::<-FORMAT-DIRECTIVE-INTERPRETER #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> #<~@<> (#<~A> " " #<~S> " " #<~:_> "due to " #<~S> ": " #<~4I> #<~:_> "\"" #<~A> ...) ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) #<unavailable argument>)
27: (SB-FORMAT::INTERPRET-DIRECTIVE-LIST #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> (#<~@<> #<~A> " " #<~S> " " #<~:_> "due to " #<~S> ": " #<~4I> #<~:_> "\"" ...) ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) (:UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>))
28: (SB-FORMAT::%FORMAT #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> "~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) (:UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>))
29: (SB-FORMAT::?-FORMAT-DIRECTIVE-INTERPRETER #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> #<~@?> (#<~%>) ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) #<unavailable argument>)
30: (SB-FORMAT::INTERPRET-DIRECTIVE-LIST #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> (#<~@?> #<~%>) ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>))
31: (SB-FORMAT::%FORMAT #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> "~&::: ~@?~%" ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) ("~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>))
32: (FORMAT #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> "~&::: ~@?~%" "~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>)
33: (FORMAT #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {1000007233}> "~&::: ~@?~%" "~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>) [more]
34: (TEST-UTIL::LOG-MSG "~@<~A ~S ~:_due to ~S: ~4I~:_\"~A\"~:>" :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) TYPE-ERROR #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>)
35: (TEST-UTIL::FAIL-TEST :UNEXPECTED-FAILURE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE) #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>)
36: ((FLET "H0" :IN #:G2475) #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>)
37: (SB-KERNEL::%SIGNAL #<TYPE-ERROR expected-type: VECTOR datum: #<error printing a (SIMPLE-ARRAY NIL ..): #<TYPE-ERROR expected-type: NUMBER ..>>>)
#<SIMPLE-ERROR while printing frame 38. The partial output is: "38: ">
#<SIMPLE-ERROR while printing frame 39. The partial output is: "39: ">
40: ((:METHOD PRINT-OBJECT (VECTOR T)) #(#<error printing a (VECTOR NIL 20): #<TYPE-ERROR expected-type: VECTOR datum: (error printing condition)>> #<SB-IMPL::STRING-OUTPUT-STREAM {102B198CA3}>) [fast-method]
41: ((LABELS SB-IMPL::HANDLE-IT :IN SB-KERNEL:OUTPUT-OBJECT) #<SB-IMPL::STRING-OUTPUT-STREAM {102B198CA3}>)
42: (SB-INT:STRINGIFY-OBJECT #(#<error printing a (VECTOR NIL 20): #<TYPE-ERROR expected-type: VECTOR datum: (error printing condition)>>)
43: ((LAMBDA (SB-VM::OBJ SB-VM::OBJ-TYPE SB-VM::SIZE) :IN SB-VM:PRINT-ALLOCATED-OBJECTS) #(#<error printing a (VECTOR NIL 20): #<TYPE-ERROR expected-type: VECTOR datum: (error printing condition)>> 249 80)
44: (SB-VM::MAP-OBJECTS-IN-RANGE #<CLOSURE (LAMBDA (SB-VM::OBJ SB-VM::OBJ-TYPE SB-VM::SIZE) :IN SB-VM:PRINT-ALLOCATED-OBJECTS) {102AC72FBB}> 34429876880 34429894616)
45: ((FLET SB-VM::DO-1-SPACE :IN SB-VM::MAP-ALLOCATED-OBJECTS) :DYNAMIC)
46: (SB-VM::MAP-ALLOCATED-OBJECTS #<CLOSURE (LAMBDA (SB-VM::OBJ SB-VM::OBJ-TYPE SB-VM::SIZE) :IN SB-VM:PRINT-ALLOCATED-OBJECTS) {102AC72FBB}> :DYNAMIC)
47: (SB-VM:PRINT-ALLOCATED-OBJECTS :DYNAMIC :PERCENT 10 :PAGES 5 :TYPE NIL :LARGER NIL :SMALLER NIL :COUNT NIL :STREAM #<SB-IMPL::STRING-OUTPUT-STREAM {102AC72B43}>)
48: ((LAMBDA NIL :IN "/Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp"))
49: (SB-INT:SIMPLE-EVAL-IN-LEXENV (THE T (LET ((TEST-UTIL::*THREADS-TO-JOIN* NIL) (TEST-UTIL::*THREADS-TO-KILL* NIL)) (BLOCK #:G2475 (HANDLER-BIND (#) (PROGN # # #))))) #<NULL-LEXENV>)
50: (SB-INT:SIMPLE-EVAL-IN-LEXENV (IF (TEST-UTIL::SKIPPED-P NIL) (TEST-UTIL::FAIL-TEST :SKIPPED-DISABLED (QUOTE (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)) "Test disabled for this combination of platform and features") (THE T (LET ((TEST-UTIL::*THREADS-TO-JOIN* NIL) (TEST-UTIL::*THREADS-TO-KILL* NIL)) (BLOCK #:G2475 (HANDLER-BIND # #))))) #<NULL-LEXENV>)
51: (SB-INT:SIMPLE-EVAL-IN-LEXENV (COND ((TEST-UTIL::BROKEN-P NIL) (TEST-UTIL::FAIL-TEST :SKIPPED-BROKEN (QUOTE #1=(SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)) "Test broken on this platform")) ((TEST-UTIL::SKIPPED-P NIL) (TEST-UTIL::FAIL-TEST :SKIPPED-DISABLED (QUOTE #1#) "Test disabled for this combination of platform and features")) (T (LET ((TEST-UTIL::*THREADS-TO-JOIN* NIL) (TEST-UTIL::*THREADS-TO-KILL* NIL)) (BLOCK #:G2475 (HANDLER-BIND # #))))) #<NULL-LEXENV>)
52: (SB-INT:SIMPLE-EVAL-IN-LEXENV (WITH-TEST (:NAME (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)) (DOLIST (SPACE (QUOTE (:READ-ONLY :DYNAMIC :IMMOBILE :STATIC))) (WITH-OUTPUT-TO-STRING (STREAM) (SB-VM:PRINT-ALLOCATED-OBJECTS SPACE :PERCENT 10 :STREAM STREAM)))) #<NULL-LEXENV>)
53: (EVAL-TLF (WITH-TEST (:NAME (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)) (DOLIST (SPACE (QUOTE (:READ-ONLY :DYNAMIC :IMMOBILE :STATIC))) (WITH-OUTPUT-TO-STRING (STREAM) (SB-VM:PRINT-ALLOCATED-OBJECTS SPACE :PERCENT 10 :STREAM STREAM)))) 1 NIL)
54: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (WITH-TEST (:NAME (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)) (DOLIST (SPACE (QUOTE (:READ-ONLY :DYNAMIC :IMMOBILE :STATIC))) (WITH-OUTPUT-TO-STRING (STREAM) (SB-VM:PRINT-ALLOCATED-OBJECTS SPACE :PERCENT 10 :STREAM STREAM)))) 1)
55: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (WITH-TEST (:NAME (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)) (DOLIST (SPACE (QUOTE (:READ-ONLY :DYNAMIC :IMMOBILE :STATIC))) (WITH-OUTPUT-TO-STRING (STREAM) (SB-VM:PRINT-ALLOCATED-OBJECTS SPACE :PERCENT 10 :STREAM STREAM)))) :CURRENT-INDEX 1)
56: (SB-C::%DO-FORMS-FROM-INFO #<CLOSURE (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {102AB846CB}> #<SB-C::SOURCE-INFO {102AB84683}> SB-C::INPUT-ERROR-IN-LOAD)
57: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file /Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp" {102AB82533}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
58: ((FLET SB-FASL::THUNK :IN LOAD))
59: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<CLOSURE (FLET SB-FASL::THUNK :IN LOAD) {19FF47B}> #<SB-INT:FORM-TRACKING-STREAM for "file /Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp" {102AB82533}>)
60: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM for "file /Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp" {102AB82533}> NIL)
61: (LOAD #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :UTF-8)
62: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LOAD #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp" :EXTERNAL-FORMAT :UTF-8) #<NULL-LEXENV>)
63: (EVAL (LOAD #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp" :EXTERNAL-FORMAT :UTF-8))
64: (RUN-TESTS::PURE-RUNNER (#P"/Users/wrf3/downloads/sbcl-1.4.0/tests/arith.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/array.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/assembler.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/case.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/character.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/clos.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/coerce.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/compiler-2.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/compiler.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/condition.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/constantp.pure.lisp" #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/filesys.pure.lisp" ...) #<FUNCTION RUN-TESTS::LOAD-TEST>)
65: (RUN-TESTS::RUN-ALL)
66: (SB-INT:SIMPLE-EVAL-IN-LEXENV (RUN-TESTS::RUN-ALL) #<NULL-LEXENV>)
67: (EVAL (RUN-TESTS::RUN-ALL))
68: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(setf sb-ext:*evaluator-mode* :compile)") (:EVAL . "(with-compilation-unit () (load \"run-tests.lisp\"))") (:EVAL . "(run-tests::run-all)")))
69: (SB-IMPL::TOPLEVEL-INIT)
70: ((FLET "WITHOUT-INTERRUPTS-BODY-26" :IN SAVE-LISP-AND-DIE))
71: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE))

unhandled condition in --disable-debugger mode, quitting
2: ::: test failed, expected 104 return code, got 1

Build & test:
sh make.sh --dynamic-space-size=32Gb
cd tests && sh ./run-tests.sh

uname -a
Darwin wrf3s-MacBook-Pro.local 17.0.0 Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64 x86_64

Bob Felts (wrf3) wrote :

Compiling 1.3.21 with 1.3.21 on Mac OS X 10.13:

// Running /Users/wrf3/downloads/sbcl-1.3.21/tests/room.pure.lisp in COMPILE evaluator mode
::: Running (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)
::: Success (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)
// Running /Users/wrf3/downloads/sbcl-1.3.21/tests/seq.pure.lisp in COMPILE evaluator mode

So this appears to be a regression error.

Stas Boukarev (stassats) wrote :

Can't reproduce.

Bob Felts (wrf3) wrote :

Did you compile with --dynamic-space-size=32Gb ? Absent that, the build and test suite work. With that, the test fails. So this is a regression error introduced in 1.4.0. Compiling 1.3.21 with --dynamic-space-size=32Gb using 1.3.21 works.

Stas Boukarev (stassats) wrote :

Yes.

Bob Felts (wrf3) wrote :

I tried it again, building 1.4.0 with --dynamic-space-size=32Gb using 1.3.21 and this time the tests completed successfully. This is one of _those_ kinds of bugs.

Bob Felts (wrf3) wrote :

And I tried it yet again and it failed:

// Running /Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp in COMPILE evaluator mode
::: Running (SB-VM:PRINT-ALLOCATED-OBJECTS :SMOKE)
While evaluating the form starting at line 16, column 0
  of #P"/Users/wrf3/downloads/sbcl-1.4.0/tests/room.pure.lisp":
Unhandled TYPE-ERROR: The value #<invalid object #x19FE43F> is not of type NUMBER when binding SB-KERNEL::X
Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {100192F603}>
0: (SB-KERNEL:TWO-ARG-< #<invalid object #x19FE43F> 0) [external]
1: (SB-VM::GENERIC-<)
Unhandled SIMPLE-ERROR: Array element type of :DISPLACED-TO array does not match specified element type

I'm executing this shell script:

TARGET=sbcl-1.4.0
cd ~/Downloads
curl -L "http://prdownloads.sourceforge.net/sbcl/$TARGET-source.tar.bz2?download" > $TARGET.tar.bz2
tar -xf $TARGET.tar.bz2
rm $TARGET.tar.bz2
cd $TARGET
sh make.sh --dynamic-space-size=32Gb
cd tests && sh ./run-tests.sh
cd ..
sudo INSTALL_ROOT=/usr/local sh install.sh

In this case, the build was done with 1.4.0, since I went ahead and installed it after a manual build and test worked...

Bob Felts (wrf3) wrote :

So I built sbcl 1.4.0 using 1.4.0.
sbcl --version
SBCL 1.4.0

cd test
sh ./run-tests.sh
# passed
sh ./run-tests.sh
# failed
sh ./run-tests.sh
# passed
sh ./run-tests.sh
# failed
sh ./run-tests.sh
# failed
sh ./run-tests.sh
# failed
sh ./run-tests.sh
# passed

It's obviously intermittent. But now it isn't clear if it depends on --dynamic-space-size=32Gb or not or if it's a regression.

Stas Boukarev (stassats) wrote :

I was able to reproduce it only after adding
(defvar *x* (make-array 20 :element-type NIL))
into room.pure.lisp
and increasing the number of pages for print-allocated-objects.

Stas Boukarev (stassats) wrote :

Reduced to

(block nil
  (sb-vm::map-allocated-objects
   (lambda (obj obj-type size)
     (declare (ignore size))
     (when (eql obj-type sb-vm:complex-vector-widetag)
       (handler-case
           (with-output-to-string (stream)
             (when (plusp (length obj))
               (aref obj 0)))
         (error (c)
           (setf *print-array* nil)
           (let ((sb-ext:*suppress-print-errors* t))
             (princ c))))))
   :dynamic))

Changed in sbcl:
status: New → Triaged
importance: Undecided → Medium
Bob Felts (wrf3) wrote :

Spasibo, Stas.

Stas Boukarev (stassats) wrote :

Basically the whole test is broken, it finds a complex vector whose storage was stack allocated at some point. Or the whole print-allocated-objects thing is broken, can't really print random stuff and expect it to work.

Stas Boukarev (stassats) wrote :

Just removed the test, in 9d76f07430555ad21d728e6aee6419750fac1565.

Changed in sbcl:
status: Triaged → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers