On Sat Nov 15, 2025 at 11:32 PM CET, afiw via Chicken-users wrote: > > I'm trying to get the sandbox egg to build under CHICKEN 6. Replacing the > scheme import with (scheme base) (scheme cxr) (scheme write) makes it compile > to C with no errors, but it fails during C compilation: > $ /opt/chicken-6.0.0pre2/bin/chicken-install -n > building sandbox > /opt/chicken-6.0.0pre2/bin/csc -host -D compiling-extension -J -s > -regenerate-import-libraries -setup-mode -I > /home/caelorum/.cache/chicken-install/sandbox -C > -I/home/caelorum/.cache/chicken-install/sandbox -O3 -d1 sandbox.scm -o > /home/caelorum/.cache/chicken-install/sandbox/sandbox.so > /home/caelorum/.cache/chicken-install/sandbox/sandbox.c:14375:49: error: > call to undeclared function 'C_substring_compare'; ISO C99 and later do > not support implicit function declarations > [-Wimplicit-function-declaration] > 14375 | > av2[1]=(C_truep(C_byteblockp(((C_word*)t0)[3]))?C_substring_compare(((C... > | ^ > 1 error generated.
Hi! Since C6 now uses UTF-8 strings, all the internal string-comparison machinery is obsolete, so the comparison needs to be done either as a raw bytevector comparison, or using the UTF support functions in utf.c. So in this case, you should probably use "C_bv_compare" (I assume this is the use of C_substring_compare in the equality check that triggers the error). cheers, felix
