You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fun 9.4.0
Performance and hot-path release.
Highlights since v9.3.4:
- Scalar values stay out of the Variant RTL: comparison and logical
operators write varBoolean directly, scalar assignment fast-paths
Boolean/Double as well as Integer, and CCtwo no longer builds a temporary
CValue while keeping recursive re-entry safe.
- Integer div/mod gain guarded fast paths. Zero divisors and
Low(Integer) div/mod -1 still fall through to the Variant RTL, preserving
the existing exception behavior. On the shipped benchmark, 1>2 drops from
about 193 to 130 ns/iteration, if 1>2 from about 166 to 130 ns, not 1>2
from about 343 to 196 ns, and 7 div 3 roughly halves.
- Arithmetic fast paths are enabled on Linux x86_64; x/0 still raises on
AArch64, and the CalcOpt fallback checks the divisor.
- More hot-path trimming for compare, assignment, and string concat.
- AArch64 assembler coverage: cmn, sp-relative access, imm12 boundary, and
the bl label call.
- The HTTP server/client stack and the variadic getapi mark are included;
funcmd reports the missing script by name.
- linux-arm64 snapshot and lib-asm-a64 test enabled; CI keeps the full diff
in failure annotations.
- New calc-fastpath regression covers Boolean results, scalar copies, and
integer div/mod edge cases.
Verified by the five-platform regression workflow:
https://github.com/funlang/fun/actions/runs/39031232338
Full list: CHANGELOG.md / CHANGELOG.zh.md.