Skip to content

v9.3.2 released

Choose a tag to compare

@funlang funlang released this 13 Oct 12:57
· 147 commits to main since this release
Fun 9.3.2

macOS reaches the standard library, and Linux arm64 gets a build.

Highlights since v9.3.1:

- lib: macOS port. getapi works through the libffi backend (-dLinuxFFI
  generalises to UnixFFI, -dDarwinFFI selects Darwin), and the library layer
  that differed only by library name moves to lib-*-unx.fun (os, cmdline,
  unicode, ado, ado-schema, xml, crypt, ajax, winsock, jsonrpc, orm-rpc), with
  lib-*-lnx.fun kept as thin wrappers. lib-host.fun gains IsMac()/IsUnix();
  Darwin gets .dylib names, proc_pidpath, the Darwin sockaddr_in layout,
  __error and Homebrew/MacPorts libcrypto probing.

- build: fun/funcmd-linux-aarch64 is cross-compiled on x86_64 from a
  bootstrapped aarch64 RTL through Zig clang/lld shims, with no aarch64
  binutils or glibc. The artifact is static, stripped and reproducible; it is
  the core interpreter for now (no PCRE or getapi).

- darwin/ld forwards -dead_strip and the strip request to lld, shrinking the
  Mach-O binaries from 2.6/2.7 MB to 0.86/0.94 MB with LC_MAIN, the dylib
  loads and the arm64 ad-hoc signature intact.

- funcmd usability: no script argument prints the usage and exits 0 instead of
  trying to run its own executable, a named-but-missing script stays an error,
  and the usage line says fun rather than fun.exe on non-Windows hosts.

- test: fractal-asm-x64 exercises the x86_64 SysV lib-asm path against the
  fractal benchmark output.