When trying to build CafeOBJ in Homebrew for macOS Tahoe, the build failed with latest SBCL 2.5.8 (log below and at https://github.com/Homebrew/homebrew-core/actions/runs/17885505178/job/50858701160#step:3:10587)
Locally, I see that SBCL 2.4.11 still builds CafeOBJ but SBCL 2.5.0 fails.
Error message when run with --disable-debugger (as interactive debugger is problematic for CI):
Unhandled TYPE-ERROR in thread #<SB-THREAD:THREAD tid=259 "main thread" RUNNING
{7006320283}>:
The value
(#<SB-C::REF
:%SOURCE-NAME TERM
:LEAF #<SB-C::LAMBDA-VAR
:%SOURCE-NAME TERM
:TYPE #<SB-KERNEL:HAIRY-TYPE (SATISFIES IS-TERM)>
:WHERE-FROM :DECLARED {70052864E3}> {70052C4443}>
#<SB-C::REF
:%SOURCE-NAME NORMAL-FORM
:LEAF #<SB-C::LAMBDA-VAR
:%SOURCE-NAME NORMAL-FORM {70052AC433}> {70052AD543}>)
is not of type
SB-C::VALUED-NODE
Backtrace for: #<SB-THREAD:THREAD tid=259 "main thread" RUNNING {7006320283}>
0: (SB-C::NODE-CONSERVATIVE-TYPE (#<SB-C::REF :%SOURCE-NAME TERM :LEAF #<SB-C::LAMBDA-VAR :%SOURCE-NAME TERM :TYPE #<SB-KERNEL:HAIRY-TYPE (SATISFIES IS-TERM)> :WHERE-FROM :DECLARED {70052864E3}> {70052C4443}> #<SB-C::REF :%SOURCE-NAME NORMAL-FORM :LEAF #<SB-C::LAMBDA-VAR :%SOURCE-NAME NORMAL-FORM {70052AC433}> {70052AD543}>))
1: (SB-C::LVAR-CONSERVATIVE-TYPE #<SB-C::LVAR 1 {70052FBA33}>)
2: (SB-C::CAR-DERIVE-TYPE-OPTIMIZER #<SB-C::COMBINATION :FUN #<SB-C::REF :LEAF #<SB-C::GLOBAL-VAR :%SOURCE-NAME CAR :TYPE #1=#<SB-KERNEL:FUN-TYPE (FUNCTION (LIST) (VALUES T &OPTIONAL))> :DEFINED-TYPE #1# :WHERE-FROM :DECLARED :KIND :GLOBAL-FUNCTION {700528AD13}> {70052AABF3}> :ARGS (#<SB-ALIEN:CAST :%TYPE-CHECK NIL :VALUE #<SB-C::LVAR 2 {70052AAD63}> :ASSERTED-TYPE #<SB-KERNEL:UNION-TYPE LIST> :TYPE-TO-CHECK #<SB-KERNEL:NAMED-TYPE *> {70052FBA93}>) {70052AAC63}>)
3: ((FLET SB-C::PROCESS-INFO :IN SB-C::IR1-OPTIMIZE-COMBINATION))
4: (SB-C::IR1-OPTIMIZE-COMBINATION #<SB-C::COMBINATION :FUN #<SB-C::REF :LEAF #<SB-C::GLOBAL-VAR :%SOURCE-NAME CAR :TYPE #1=#<SB-KERNEL:FUN-TYPE (FUNCTION (LIST) (VALUES T &OPTIONAL))> :DEFINED-TYPE #1# :WHERE-FROM :DECLARED :KIND :GLOBAL-FUNCTION {700528AD13}> {70052AABF3}> :ARGS (#<SB-ALIEN:CAST :%TYPE-CHECK NIL :VALUE #<SB-C::LVAR 2 {70052AAD63}> :ASSERTED-TYPE #<SB-KERNEL:UNION-TYPE LIST> :TYPE-TO-CHECK #<SB-KERNEL:NAMED-TYPE *> {70052FBA93}>) {70052AAC63}>)
5: (SB-C::IR1-OPTIMIZE #<SB-C:COMPONENT :NAME "DEFUN NORMALIZE-TERM" :REANALYZE T {7005312FD3}> NIL)
6: (SB-C::IR1-OPTIMIZE-UNTIL-DONE #<SB-C:COMPONENT :NAME "DEFUN NORMALIZE-TERM" :REANALYZE T {7005312FD3}>)
7: (SB-C::IR1-OPTIMIZE-PHASE-1 #<SB-C:COMPONENT :NAME "DEFUN NORMALIZE-TERM" :REANALYZE T {7005312FD3}>)
8: (SB-C::IR1-PHASES #<SB-C:COMPONENT :NAME "DEFUN NORMALIZE-TERM" :REANALYZE T {7005312FD3}>)
9: (SB-C::COMPILE-COMPONENT #<SB-C:COMPONENT :NAME "DEFUN NORMALIZE-TERM" :REANALYZE T {7005312FD3}>)
10: (SB-C::COMPILE-TOPLEVEL (#<SB-C::CLAMBDA :%SOURCE-NAME SB-C::.ANONYMOUS. :%DEBUG-NAME "top level form" :KIND (TOPLEVEL) :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS NIL {70052858A3}>) NIL)
11: (SB-C::CONVERT-AND-MAYBE-COMPILE (SB-IMPL::%DEFUN (QUOTE NORMALIZE-TERM) (SB-INT:NAMED-LAMBDA NORMALIZE-TERM (TERM) (DECLARE (SB-C::TOP-LEVEL-FORM)) (DECLARE (TYPE TERM TERM) (OPTIMIZE (SPEED 3) (SAFETY 0)) (VALUES (OR NULL T))) (BLOCK NORMALIZE-TERM (WHEN *REWRITE-DEBUG* (WITH-OUTPUT-SIMPLE-MSG NIL # #)) (LET (#) (WHEN # # #) (WHEN # #) (COND # # #))))) (#1=(SB-IMPL::%DEFUN (QUOTE NORMALIZE-TERM) (SB-INT:NAMED-LAMBDA NORMALIZE-TERM (TERM) (DECLARE (SB-C::TOP-LEVEL-FORM)) (DECLARE (TYPE TERM TERM) (OPTIMIZE # #) (VALUES #)) (BLOCK NORMALIZE-TERM (WHEN *REWRITE-DEBUG* #) (LET # # # #)))) (PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN (QUOTE NORMALIZE-TERM) T NIL NIL)) #1#) SB-C::ORIGINAL-SOURCE-START 0 61))
12: (SB-C::PROCESS-TOPLEVEL-FORM (SB-IMPL::%DEFUN (QUOTE NORMALIZE-TERM) (SB-INT:NAMED-LAMBDA NORMALIZE-TERM (TERM) (DECLARE (SB-C::TOP-LEVEL-FORM)) (DECLARE (TYPE TERM TERM) (OPTIMIZE (SPEED 3) (SAFETY 0)) (VALUES (OR NULL T))) (BLOCK NORMALIZE-TERM (WHEN *REWRITE-DEBUG* (WITH-OUTPUT-SIMPLE-MSG NIL # #)) (LET (#) (WHEN # # #) (WHEN # #) (COND # # #))))) ((PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN (QUOTE NORMALIZE-TERM) T NIL NIL)) (SB-IMPL::%DEFUN (QUOTE NORMALIZE-TERM) (SB-INT:NAMED-LAMBDA NORMALIZE-TERM (TERM) (DECLARE #) (DECLARE # # #) (BLOCK NORMALIZE-TERM # #)))) SB-C::ORIGINAL-SOURCE-START 0 61) NIL)
13: (SB-C::PROCESS-TOPLEVEL-PROGN ((EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN (QUOTE NORMALIZE-TERM) T NIL NIL)) (SB-IMPL::%DEFUN (QUOTE NORMALIZE-TERM) (SB-INT:NAMED-LAMBDA NORMALIZE-TERM (TERM) (DECLARE (SB-C::TOP-LEVEL-FORM)) (DECLARE (TYPE TERM TERM) (OPTIMIZE # #) (VALUES #)) (BLOCK NORMALIZE-TERM (WHEN *REWRITE-DEBUG* #) (LET # # # #))))) ((PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN (QUOTE NORMALIZE-TERM) T NIL NIL)) (SB-IMPL::%DEFUN (QUOTE NORMALIZE-TERM) (SB-INT:NAMED-LAMBDA NORMALIZE-TERM (TERM) (DECLARE #) (DECLARE # # #) (BLOCK NORMALIZE-TERM # #)))) SB-C::ORIGINAL-SOURCE-START 0 61) NIL)
14: (SB-C::PROCESS-TOPLEVEL-FORM (PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN (QUOTE NORMALIZE-TERM) T NIL NIL)) (SB-IMPL::%DEFUN (QUOTE NORMALIZE-TERM) (SB-INT:NAMED-LAMBDA NORMALIZE-TERM (TERM) (DECLARE (SB-C::TOP-LEVEL-FORM)) (DECLARE (TYPE TERM TERM) (OPTIMIZE # #) (VALUES #)) (BLOCK NORMALIZE-TERM (WHEN *REWRITE-DEBUG* #) (LET # # # #))))) (SB-C::ORIGINAL-SOURCE-START 0 61) NIL)
15: (SB-C::PROCESS-TOPLEVEL-FORM (DEFUN NORMALIZE-TERM (TERM) (DECLARE (TYPE TERM TERM) (OPTIMIZE (SPEED 3) (SAFETY 0)) (VALUES (OR NULL T))) (WHEN *REWRITE-DEBUG* (WITH-OUTPUT-SIMPLE-MSG NIL (FORMAT T "[normalize-term]:(NF=~A,LP=~A,OD=~A) " (TERM-IS-REDUCED? TERM) (TERM-IS-LOWEST-PARSED? TERM) (TERM-IS-ON-DEMAND? TERM)) (TERM-PRINT-WITH-SORT TERM))) (LET ((STRATEGY NIL)) (WHEN (TERM-IS-REDUCED? TERM) (WHEN (TERM-IS-BUILTIN-CONSTANT? TERM) (UPDATE-LOWEST-PARSE TERM)) (RETURN-FROM NORMALIZE-TERM T)) (WHEN (TERM-IS-APPLICATION-FORM? TERM) (SETQ STRATEGY (METHOD-REWRITE-STRATEGY #))) (COND ((NULL STRATEGY) (MARK-TERM-AS-REDUCED TERM) T) ((AND *MEMO-REWRITE* #) (TERM-REPLACE TERM #) NIL) (T (REDUCE-TERM TERM STRATEGY) NIL)))) (SB-C::ORIGINAL-SOURCE-START 0 61) NIL)
16: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-C::SUB-COMPILE-FILE) (DEFUN NORMALIZE-TERM (TERM) (DECLARE (TYPE TERM TERM) (OPTIMIZE (SPEED 3) (SAFETY 0)) (VALUES (OR NULL T))) (WHEN *REWRITE-DEBUG* (WITH-OUTPUT-SIMPLE-MSG NIL (FORMAT T "[normalize-term]:(NF=~A,LP=~A,OD=~A) " (TERM-IS-REDUCED? TERM) (TERM-IS-LOWEST-PARSED? TERM) (TERM-IS-ON-DEMAND? TERM)) (TERM-PRINT-WITH-SORT TERM))) (LET ((STRATEGY NIL)) (WHEN (TERM-IS-REDUCED? TERM) (WHEN (TERM-IS-BUILTIN-CONSTANT? TERM) (UPDATE-LOWEST-PARSE TERM)) (RETURN-FROM NORMALIZE-TERM T)) (WHEN (TERM-IS-APPLICATION-FORM? TERM) (SETQ STRATEGY (METHOD-REWRITE-STRATEGY #))) (COND ((NULL STRATEGY) (MARK-TERM-AS-REDUCED TERM) T) ((AND *MEMO-REWRITE* #) (TERM-REPLACE TERM #) NIL) (T (REDUCE-TERM TERM STRATEGY) NIL)))) :CURRENT-INDEX 61)
17: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-C::SUB-COMPILE-FILE) {700412A23B}> #<SB-C::SOURCE-INFO {7014670113}> SB-C::INPUT-ERROR-IN-COMPILE-FILE)
18: ((LAMBDA NIL :IN SB-C::SUB-COMPILE-FILE))
19: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
20: (SB-C::SUB-COMPILE-FILE #<SB-C::SOURCE-INFO {7014670113}> NIL)
21: (COMPILE-FILE #P"/private/tmp/cafeobj-20250920-5366-m40q34/cafeobj-1.6.2/chaos/cafein/rengine.lisp" :OUTPUT-FILE #P#<(SIMPLE-ARRAY CHARACTER (202)) /private/tmp/cafeobj-20250920-5366-m40q34/cafeobj-1.6.2/.brew_home/.cache/common-lisp/sbcl-2.5.8-macosx-arm64/private/tmp/cafeobj-20250920-5366-m40q34/cafeobj-1.6.2/chaos/cafein/rengine-tmpN1ZVB1HZ.fa... {700546514F}> :VERBOSE NIL :PRINT NIL :EXTERNAL-FORMAT :UTF-8 :PROGRESS NIL :TRACE-FILE NIL :BLOCK-COMPILE NIL :ENTRY-POINTS NIL :EMIT-CFASL NIL)
22: (UIOP/UTILITY:CALL-WITH-MUFFLED-CONDITIONS #<FUNCTION (LAMBDA NIL :IN UIOP/LISP-BUILD:COMPILE-FILE*) {70146700DB}> NIL)
23: (UIOP/PATHNAME:CALL-WITH-ENOUGH-PATHNAME #P"/private/tmp/cafeobj-20250920-5366-m40q34/cafeobj-1.6.2/chaos/cafein/rengine.lisp" NIL #<FUNCTION (LAMBDA (UIOP/LISP-BUILD::INPUT-FILE) :IN UIOP/LISP-BUILD:COMPILE-FILE*) {701467009B}>)
24: (UIOP/LISP-BUILD:COMPILE-FILE* #P"/private/tmp/cafeobj-20250920-5366-m40q34/cafeobj-1.6.2/chaos/cafein/rengine.lisp" :OUTPUT-FILE #P"/private/tmp/cafeobj-20250920-5366-m40q34/cafeobj-1.6.2/.brew_home/.cache/common-lisp/sbcl-2.5.8-macosx-arm64/private/tmp/cafeobj-20250920-5366-m40q34/cafeobj-1.6.2/chaos/cafein/rengine.fasl" :EXTERNAL-FORMAT :UTF-8 :WARNINGS-FILE NIL)
25: (ASDF/LISP-ACTION:PERFORM-LISP-COMPILATION #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "chaosx" "chaos" "cafein" "rengine">)
26: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "chaosx" "chaos" "cafein" "rengine">)
27: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
28: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "chaosx" "chaos" "cafein" "rengine">) [fast-method]
29: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {70050F0423}>) [fast-method]
30: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
31: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {70050F0423}>) [fast-method]
32: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "chaosx"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
33: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "chaosx">)
34: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
35: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "chaosx">) [fast-method]
36: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP COMMON-LISP-USER::CHAOSX)
37: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
38: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP COMMON-LISP-USER::CHAOSX) [fast-method]
39: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {70050F027B}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)
40: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
41: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {70050F018B}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
42: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP COMMON-LISP-USER::CHAOSX) [fast-method]
43: (COMMON-LISP-USER::MAKE-CAFEOBJ ".")
44: (SB-INT:SIMPLE-EVAL-IN-LEXENV (COMMON-LISP-USER::MAKE-CAFEOBJ COMMON-LISP-USER::*CHAOS-ROOT*) #<NULL-LEXENV>)
45: (SB-INT:SIMPLE-EVAL-IN-LEXENV (EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) (COMMON-LISP-USER::MAKE-CAFEOBJ COMMON-LISP-USER::*CHAOS-ROOT*)) #<NULL-LEXENV>)
46: (EVAL (EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) (COMMON-LISP-USER::MAKE-CAFEOBJ COMMON-LISP-USER::*CHAOS-ROOT*)))
47: (SB-EXT:INTERACTIVE-EVAL (EVAL-WHEN (:EXECUTE :LOAD-TOPLEVEL) (COMMON-LISP-USER::MAKE-CAFEOBJ COMMON-LISP-USER::*CHAOS-ROOT*)) :EVAL NIL)
48: (SB-IMPL::REPL-FUN NIL)
49: ((LAMBDA NIL :IN SB-IMPL::TOPLEVEL-REPL))
50: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<FUNCTION (LAMBDA NIL :IN SB-IMPL::TOPLEVEL-REPL) {104D9048B}>)
51: (SB-IMPL::TOPLEVEL-REPL NIL)
52: (SB-IMPL::TOPLEVEL-INIT)
53: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
54: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
55: (SB-IMPL::%START-LISP)
unhandled condition in --disable-debugger mode, quitting
; compilation aborted after 0:00:00.105
;
; compilation unit aborted
; caught 2 fatal ERROR conditions
; caught 3 STYLE-WARNING conditions
; printed 408 notes
make: *** [dumps/sbcl/cafeobj.sbcl] Error 1
When trying to build CafeOBJ in Homebrew for macOS Tahoe, the build failed with latest SBCL 2.5.8 (log below and at https://github.com/Homebrew/homebrew-core/actions/runs/17885505178/job/50858701160#step:3:10587)
Locally, I see that SBCL 2.4.11 still builds CafeOBJ but SBCL 2.5.0 fails.
Error message when run with
--disable-debugger(as interactive debugger is problematic for CI):