Hi all, I'm glad to announce that the arm64 port of pil64 is done! :)
To my feeling, the ARMv8 (arm64) architecture is the best match so far for the PicoLisp VM. It has some terrible quirks though, the worst being the fact that the hardware stack pointer is crippled, and nearly unusable on a stack-based machine like the PicoLisp VM. But I could use another register for that, and the rest of the instruction set is quite all right. I have tested only on a Nexus 9 tablet. All unit tests - and many other tests - passed. It is in the current version (3.1.11.14): http://software-lab.de/picoLisp.tgz Like for the other architectures, pre-generated assembly files are available: http://software-lab.de/arm64.linux.tgz containing arm64.linux.base.s arm64.linux.ext.s arm64.linux.ht.s Assembling and linking them for the Nexus is a bit tricky, I use the NDK toolchain from Android Studio, basically doing (your setup will differ): (setq *NDK "/home/abu/Android/Sdk/ndk-bundle/" *Toolchain "toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/" *ASM "aarch64-linux-android-as" *GCC "aarch64-linux-android-gcc" *Sysroot (pack "--sysroot=" *NDK "platforms/android-21/arch-arm64") *STRIP "aarch64-linux-android-strip" ) (and (call (pack *NDK *Toolchain *ASM) "-o" "base.o" "arm64.linux.base.s") (call (pack *NDK *Toolchain *ASM) "-o" "ext.o" "arm64.linux.ext.s") (call (pack *NDK *Toolchain *ASM) "-o" "ht.o" "arm64.linux.ht.s") (call (pack *NDK *Toolchain *GCC) *Sysroot "-pie" "-o" "picolisp" "-rdynamic" "base.o" "-lc" "-lm" "-ldl") (call (pack *NDK *Toolchain *GCC) *Sysroot "-pie" "-o" "ext" "-shared" "-export-dynamic" "ext.o") (call (pack *NDK *Toolchain *GCC) *Sysroot "-pie" "-o" "ht" "-shared" "-export-dynamic" "ht.o") (call (pack *NDK *Toolchain *STRIP) "picolisp" "ext" "ht") (call 'rm "base.o" "ext.o" "ht.o") ) Then I use 'adb push' to copy the binary and Lisp files to the device. ♪♫ Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe