Error when compiling an `flet` function with `&rest` with >= 64 arguments
Describe the problem here.
(defun the-problem ()
(flet ((arr (&rest data)
(make-array (length data) :initial-contents data)))
(arr 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)))
This fails to compile, with error:
;;;
;;; Compiling sampletest.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Internal error:
;;; in file sampletest.lisp, position 0
;;; at (DEFUN THE-PROBLEM ...)
;;; ** In function STRUCTURE-REF, the value of the first argument is
;;; NIL
;;; which is not of the expected type C1FORM
The error goes away when the number of parameters is less than 64.
VERSION "24.5.10"
VCS-ID "7e3dc96fa526154fe6a01ded76ab574e946ddec3"
OS "Linux"
OS-VERSION "6.8.0-55-generic"
MACHINE-TYPE "x86_64"
FEATURES (:QUICKLISP :ASDF-PACKAGE-SYSTEM :ASDF3.1 :ASDF3 :ASDF2 :ASDF
:OS-UNIX :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :WALKER :CDR-6
:GRAY-STREAMS-MODULE :CDR-1 :CDR-5 :LINUX :FORMATTER :CDR-7
:ECL-WEAK-HASH :LITTLE-ENDIAN :ECL-READ-WRITE-LOCK :LONG-LONG
:UINT64-T :UINT32-T :UINT16-T :COMPLEX-FLOAT :LONG-FLOAT :UNICODE
:DFFI :CLOS-STREAMS :CMU-FORMAT :UNIX :ECL-PDE :DLOPEN :CLOS
:THREADS :BOEHM-GC :ANSI-CL :COMMON-LISP
:FLOATING-POINT-EXCEPTIONS :IEEE-FLOATING-POINT
:PACKAGE-LOCAL-NICKNAMES :CDR-14 :PREFIXED-API :FFI :X86_64
:COMMON :ECL)
Edited by Nick Faro