This release brings beta quality Linux/ARM64 support, currently restricted to systems with 4K pages.
Thanks to @pcc and @twilligon, who did most of the work to support ARM64! The ARM64 binaries have been tested on a MacBook M1 running Ubuntu 26 in a UTM VM. Programs compiled with the ARM64 build of Fil-C have also been tested on OpenWrt One hardware.
In addition to ARM64 support, this release includes:
zcallnow passes C++ exceptions (and unwinding generally) through.- added
FILC_DUMP_EXCEPTIONSenvironment variable to log exception throwing. - added
FILC_DUMP_DLOPENSenvironment variable to log dlopen calls. - fix a case where a compiler optimization for computing the difference between pointers was leading to dropped capabilities (spurious panics with null capability).
- fix a bug where dead stores to variable length arrays were being eliminated prematurely, leading to an incorrect program not panicking.
- make sure that libc++experimental.a is included in distributions.
- fix a GC bug involving ifuncs that return malloc'd memory.
- fix a GC bug involving combining closures, threads, and unwind handlers.
- fix a stack smash bug in
sendmmsg/recvmmsgwith largevlenargument.
Guide to the available files:
filc-0.682-linux-x86_64.tar.xzis the traditional, self-contained "pizfix" distribution for X86_64. It only includes the compiler, doesn't require root, and is based on the musl libc. This is recommended for quickly trying out Fil-C.filc-0.682-linux-aarch64.tar.xzis the traditional, self-contained "pizfix" distribution for ARM64. It only includes the compiler, doesn't require root, and is based on the musl libc. This is recommended for quickly trying out Fil-C. This is a beta release; it only supports 4KB page systems for now, and has not received much testing, yet.optfil-0.682-linux-x86_64.tar.xzis the /opt/fil distribution, only available for X86_64. It includes many useful programs like OpenSSH, sudo, tmux, and git. It's based on glibc 2.40, and requires root permissions. This is recommended for giving Fil-C deeper scrutiny.