I had a go at building ecl with C compiler using c23 mode (i.e. -std=c23
argument in CFLAGS)
and apart from an easy to fix "typedef bool" issue, there is more, and
quite hard to understand:

CFLAGS="-std=c23" ./configure && make

[...]
dpp: /home/dima/software/ecl/src/c/read.d ->
read.o.c[...]/home/dima/software/ecl/src/c/read.d: In function
‘init_read’:/home/dima/software/ecl/src/c/read.d:2023:39: error:
passing argument 1 of ‘ecl_make_cfun’ from incompatible pointer type
[-Wincompatible-pointer-types] 2023 | #define make_cf3(f)
ecl_make_cfun((f), ECL_NIL, NULL, 3)      |
           ^~~      |                                       |      |
                                    union cl_lispunion * (*)(union
cl_lispunion *, union cl_lispunion
*)/home/dima/software/ecl/src/c/read.d:2047:29: note: in expansion of
macro ‘make_cf2’ 2047 |       |                             ^       In
file included from /home/dima/software/ecl/build/ecl/ecl.h:82,
        from 
/home/dima/software/ecl/src/c/read.d:16:/home/dima/software/ecl/build/ecl/external.h:427:58:
note: expected ‘cl_objectfn_fixed’ {aka ‘union cl_lispunion *
(*)(void)’} but argument is of type ‘union cl_lispunion * (*)(union
cl_lispunion *, union cl_lispunion *)’  427 | extern ECL_API cl_object
ecl_make_cfun(cl_objectfn_fixed c_function, cl_object name, cl_object
block, int narg);      |
~~~~~~~~~~~~~~~~~~^~~~~~~~~~


see
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/775

Any ideas how to fix this?

Dima

Reply via email to