Unable to compile `slynk`
Related issue: #710 (closed)
Hi there, I'm attempting to debug why Slynk can't be compiled with ecl
. See also the corresponding issue on Github.
The issue should be simple to reproduce:
- Open
ecl
. (ql:quickload :slynk)
- Be dropped into the debugger and observe an error containing a message like:
ecl.fas: undefined symbol: AU36KEg2QdmVZ_QhShHg61
While the debugger is still open it's possible to investigate ecl.fas
and its companion ecl.o
. Note that the Slynk file being compiled here is ecl.lisp
, hence the naming. Inside both files we do indeed see a number of references to a symbol like AU36KEg2QdmVZ_QhShHg61
.
Although the error message here is very similar to the one seen in #710 (closed), no actual FFI calls are made here or in the parent file slynk-loader.lisp
, as far as I can see. In #710 (closed) it was mentioned:
You need to evaluate the ... form before you load the file in order for the system linker to find your functions
But it's not clear to me that that applies here. At this point I'm just trying to determine if Slynk is doing something naughty, or if ECL is. Do you have any idea why this might be happening?
Here's my system information:
VERSION "21.2.1"
VCS-ID "UNKNOWN"
OS "Linux"
OS-VERSION "6.4.10-arch1-1"
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-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)
Thank you!