function-lambda-list fails for funcallables (other than GFs)
Using ext:function-lambda-list
on a funcallable-standard-object
that is not a generic function results in an incorrect type error: "[whatever] is not of type FUNCTION." This seems to be because f-l-l calls ext:compiled-function-name
, which trips that error on FSOs (as they are function
s but not compiled-function
s).
This problem makes using FSOs in SLIME frustrating, because SWANK uses f-l-l to get lambda lists.
Reproducer:
(defclass testf (clos:funcallable-standard-object)
()
(:metaclass clos:funcallable-standard-class))
(ext:function-lambda-list (make-instance 'testf)) ; => error
Version info (this is ECL from the Debian repos):
VERSION "21.2.1"
VCS-ID "UNKNOWN"
OS "Linux"
OS-VERSION "6.0.0-6-amd64"
MACHINE-TYPE "x86_64"
FEATURES (:WALKER :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)