This release brings significant bugfixes and performance improvements.
- Allow SIGSYS handlers in Fil-C. I previously disallowed them thinking that they are risky; they aren't.
- Make
dladdrwork. - Don't crash with an assert if unsafe-to-handle sighandlers were previously
SIG_IGN. - Make Fil-C stack dumps show the shared object that each function comes from.
- Fix musl support for open and close actions in
posix_spawn. - Make all obstack-using programs in
/opt/filand pizlix use one capability per allocation. - Significantly improve the compiler's handling of unions: (a) fix multiple cases where unions such as those used in std::optional<> previously resulted in capabilities being dropped and (b) improve performance of union codegen (~4% net speed-up on PizBench).
- Make pthread API for requesting stack bounds work. Also add
zstack_pointerintrinsic that can be used by code wanting to do its own stack checks. - Add environment variables to dump heap graphs and stack traces in response to signals.
- Make
truncatework. - Make
waitidwork. - Fix
ioctlin static binaries. - Teach libcurl how to find certs on all of the Linux distributions.
- Make it possible to run the
/opt/filsetup.shscript unattended.
Guide to the available files:
filc-0.678-linux-x86_64.tar.xzis the traditional, self-contained "pizfix" distribution. 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.optfil-0.678-linux-x86_64.tar.xzis the /opt/fil distribution. 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.