···201201 /* this removes the name "unquote" */
202202#endif
203203204204-#ifndef WITH_C_LOADER
205205- #if WITH_GCC && (!__MINGW32__) && (!__CYGWIN__)
206206- #define WITH_C_LOADER 1
207207- /* (load file.so [e]) looks for (e 'init_func) and if found, calls it as the shared object init function.
208208- * If WITH_SYSTEM_EXTRAS is 0, the caller needs to supply system and delete-file so that cload.scm works.
209209- */
210210- #else
211211- #define WITH_C_LOADER 0
212212- /* I think dlopen et al are available in MS C, but I have no way to test them; see load_shared_object below */
213213- #endif
214214-#endif
204204+/* #ifndef WITH_C_LOADER */
205205+/* #if WITH_GCC && (!__MINGW32__) && (!__CYGWIN__) */
206206+/* #define WITH_C_LOADER 1 */
207207+/* /\* (load file.so [e]) looks for (e 'init_func) and if found, calls it as the shared object init function. */
208208+/* * If WITH_SYSTEM_EXTRAS is 0, the caller needs to supply system and delete-file so that cload.scm works. */
209209+/* *\/ */
210210+/* #else */
211211+/* #define WITH_C_LOADER 0 */
212212+/* /\* I think dlopen et al are available in MS C, but I have no way to test them; see load_shared_object below *\/ */
213213+/* #endif */
214214+/* #endif */
215215+#define WITH_C_LOADER 0
215216216217#ifndef WITH_HISTORY
217218 #define WITH_HISTORY 0
···333334#endif
334335335336#ifdef _MSC_VER
336336- #define noreturn _Noreturn /* deprecated in C23 */
337337+ #define noreturn [[noreturn]] /* deprecated in C23 */
337338#else
338339 #define noreturn __attribute__((noreturn))
339340 /* this is ok in gcc/g++/clang and tcc; pure attribute is rarely applicable here, and does not seem to be helpful (maybe safe_strlen) */
···363364 #define MS_WINDOWS 0
364365#endif
365366366366-#if defined(_MSC_VER) || defined(__MINGW32__)
367367- #define Jmp_Buf jmp_buf
368368- #define SetJmp(A, B) setjmp(A)
369369- #define LongJmp(A, B) longjmp(A, B)
370370-#else
367367+#if defined(__GNUC__)
371368 #define Jmp_Buf sigjmp_buf
372369 #define SetJmp(A, B) sigsetjmp(A, B)
373370 #define LongJmp(A, B) siglongjmp(A, B)
···376373 * In one case, the sigsetjmp version runs in 24 seconds, but the setjmp version takes 10 seconds, and
377374 * yet callgrind says there is almost no difference? I removed setjmp from s7_optimize.
378375 */
376376+#elif defined(_MSC_VER) || defined(__MINGW32__)
377377+ #define Jmp_Buf jmp_buf
378378+ #define SetJmp(A, B) setjmp(A)
379379+ #define LongJmp(A, B) longjmp(A, B)
379380#endif
380381381382#if (!MS_WINDOWS)
···1298712988 static s7_complex catanh(s7_complex z) {return(clog((1.0 + z) / (1.0 - z)) / 2.0);}
1298812989#else
12989129901299012990-#if (!defined(__FreeBSD__)) || (__FreeBSD__ < 12)
1299112991+#if (!defined(__FreeBSD__)) || (__FreeBSD__ < 12) || defined(__ANDROID__)
1299112992static s7_complex clog(s7_complex z) {return(log(fabs(cabs(z))) + carg(z) * _Complex_I);}
1299212993static s7_complex cpow(s7_complex x, s7_complex y)
1299312994{