On 9/21/19, Marius Gerbershagen marius.gerbershagen@gmail.com wrote:
Can you please confirm that USE_C_COMPATIBLE_VARIADIC_DISPATCH is defined while compiling src/c/cfun.d, e.g. by inserting
#ifndef USE_C_COMPATIBLE_VARIADIC_DISPATCH #error "undefined" #endif
Many thanks Marius, your insight helped a lot! The variadic dispatch you mentioned is indeed not defined, which is strange, because I checked if __arm64__ is defined, and it is! (BTW, __arm__ is not defined). So, USE_C_COMPATIBLE_VARIADIC_DISPATCH should be defined too, according to these lines in 'src/c/internal.h':
#if defined (__arm__) || defined (__arm64__) #define USE_UNIFIED_ARGS_PASSING_APPLY #define USE_C_COMPATIBLE_VARIADIC_DISPATCH #endif
Now, what I did to force variadic dispatching is just commenting out all occurencies of
#if defined (USE_C_COMPATIBLE_VARIADIC_DISPATCH)
in the 3 files where I found them, and it worked! 'cl_boot' now finishes without errors, and a simple 'cl_print' after 'cl_boot' worked too. (I also uncommented the 3 lines in 'main.d' which caused the initial crash, and those also work fine now.)
What remains is to find the reason why USE_C_COMPATIBLE_VARIADIC_DISPATCH is not defined as it should be.
Thanks again for your help!
Paul