Hi!
Here are my results on Termux (the Android app). I stumbled upon a build issue but I don't think it's release-candidate material. But in case it is useful, I thought I'd include it here:
ld.lld: error: undefined reference due to --no-allow-shlib-undefined: __android_log_vprint
The build system correctly detects __ANDROID__, but incorrectly assumes __android_log_vprint is available. `-llog` is needed and not on by default on Termux it seems. However, while it's useful to replace stdout/stderr on Android NDK-builds where stdio goes to nowhere, it is available on Termux which should not require special care.
This error is prabably not new to 5.4.0rc2.
=== My Termux workaround
Patch for testing, not for submission:
diff -U3 runtime.c\~ runtime.c --- runtime.c~ 2024-06-25
+++ runtime.c 2024-06-27
@@ -591,7 +591,7 @@ va_list va;
va_start(va, fstr);
-#ifdef __ANDROID__
+#ifdef __ANDROID_IGNOREME137__
__android_log_vprint(ANDROID_LOG_DEBUG, prefix, fstr, va);
#else
C_fflush(C_stdout);
===
Perhaps there is a preprocessor define, something like __NDK__, that will both replace stdio with Android logging for standalone apps and build normallc on Termux. With that simple patch in place however, everything worked as expected.
W: Termux (arm64)
OS: Android
CC: clang 18.1.6
Installation works?: yes
Tests work?: yes
Installation and tests of "pastiche" egg works?: yes
I built with:
make PLATFORM=linux install check
===
I also have a question about this line in the changelog: "Added support for embedded strings and characters in SRFI-4 vector". this seems very neat! But why doesn't it also work in the runtime u8vector constructor? Srfi-4 vector literals are limited in that they can contain only other literals, not arbitrary expressions so I tend to not use them.
#;2> #u8(1 "hello")
#u8(1 104 101 108 108 111)
#;3> (u8vector 1 "hello")
Error: (u8vector-set!) bad argument type: "hello"
Thanks,
K.