internal error externalizing recursive array
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Committed
|
Undecided
|
Unassigned |
Bug Description
Was doing some fuzz testing and came up with this little monstrosity. If you stick it in a file and COMPILE-FILE it, it trips an internal type error during FASL dump.
(defparameter *death*
'#.(let ((a1 #1=#2a((#1# #1#) (#1# #1#))))
(make-array 2 :displaced-to a1)))
Expected behavior would of course be that it compiles fine, and the result loads as something similar.
This happens on SBCL 2.2.9.debian, as well as 2.3.9.33-1742bcc35 that I just built from git.
uname -a: Linux zeus 6.1.0-3-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.8-1 (2023-01-29) x86_64 GNU/Linux
*features*: (:ARENA-ALLOCATOR :X86-64 :GENCGC :64-BIT :ANSI-CL :COMMON-LISP :ELF :IEEE-FLOATING-
Session with backtrace:
This is SBCL 2.3.9.33-1742bcc35, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://
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.
* (compile-file "/tmp/death.lisp")
; compiling file "/tmp/death.lisp" (written 02 OCT 2023 03:56:41 PM):
debugger invoked on a TYPE-ERROR @52AB53F3 in thread
#<THREAD tid=2291692 "main thread" RUNNING {1004490113}>:
The value
NIL
is not of type
(UNSIGNED-BYTE 32)
when binding SB-C::VALUE
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-
0: [ABORT] Exit debugger, returning to top level.
(SB-C:WRITE-
0] backtrace
Backtrace for: #<SB-THREAD:THREAD tid=2291692 "main thread" RUNNING {1004490113}>
0: (SB-C:WRITE-
1: (SB-FASL:
2: (SB-FASL:
3: (SB-FASL:
4: (SB-FASL:
5: (SB-FASL:
6: (SB-C::
7: (SB-C::
8: (SB-C::
9: (SB-C::
10: ((LAMBDA NIL :IN SB-C::SUB-
11: ((FLET SB-C::WITH-IT :IN SB-C::%
12: (SB-C::
13: (COMPILE-FILE "/tmp/death.lisp" :OUTPUT-FILE "" :VERBOSE NIL :PRINT NIL :EXTERNAL-FORMAT :DEFAULT :PROGRESS NIL :TRACE-FILE NIL :BLOCK-COMPILE NIL :ENTRY-POINTS NIL :EMIT-CFASL NIL)
14: (SB-INT:
15: (EVAL (COMPILE-FILE "/tmp/death.lisp"))
16: (INTERACTIVE-EVAL (COMPILE-FILE "/tmp/death.lisp") :EVAL NIL)
17: (SB-IMPL::REPL-FUN NIL)
18: ((LAMBDA NIL :IN SB-IMPL:
19: (SB-IMPL:
20: (SB-IMPL:
21: (SB-IMPL:
22: ((FLET SB-UNIX::BODY :IN SB-IMPL:
23: ((FLET "WITHOUT-
24: (SB-IMPL:
0]
Changed in sbcl: | |
status: | New → Fix Committed |