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


Reply via email to