|
From: John B. <mr...@gm...> - 2026-10-13 23:21:03
|
“You don’t want just to develop for ARM, you want to actually use ARM in your day-to-day work on the desktop.” - Linus Torvalds
I'm very pleased to announce the release of Factor 0.102! You can find download links on the Factor website:
https://factorcode.org
This release includes 1,068 commits from the following contributors:
Aleksander Sabak, Andrii Puhachenko, Chris Double, Dmitry Matveyev, Doug Coleman, Eric Willigers, Giftpflanze, John Benediktsson, Leo Mehraban, Rudi Grinberg, Sebastiaan Speck, Zoltán Kéri, @knottio, @ronnie-w
Highlights of this release include:
* A new GTK4 UI backend, now the default on 64-bit Linux; 32-bit Linux continues to use GTK3, which remains a build option on other supported Linux architectures.
* New 32-bit and 64-bit RISC-V Linux ports, with optimizing compiler backends, foreign calls and callbacks, and support in both the C++ and Zig VMs.
* DirectWrite text rendering on Windows, including color glyphs, typography controls, and better support for large output and complex scripts.
* More responsive rendering and selection of large text across platforms, with fixes for display scaling, listener scrolling, and adjacent text backgrounds.
* Expanded native ARM64 SIMD support, half-precision and bfloat16 operations, and improved foreign calls, variadic callbacks, and native va_list support.
* Experimental register allocators and optional compiler optimizations, alongside fixes to stack inference, generated code, and GC root tracking.
* Updated Unicode data to 18.0.0 and timezone data to 2026c, with bindings for SQLite 3.53.4, Raylib 6.0, and Lua 5.5.
* Faster process launching and native process-exit notifications on Linux, macOS, BSD, and Windows, with polling as a fallback.
* Extensive fixes to HTTP parsing, TLS identity checks, cooperative waits, resource cleanup, signal handling, and VM memory safety.
Compatibility notes
* 64-bit Linux builds now select GTK4 by default; use -ui-backend=gtk3 when bootstrapping if GTK3 is required. 32-bit Linux uses GTK3 and does not support GTK4.
* Windows UI text now uses DirectWrite by default, so text metrics and appearance may differ from the previous Uniscribe backend.
callable is now a mixin that includes words; code that assumes all callables support the sequence protocol should use quotation-like instead.
* Fixed-array struct fields now validate input buffer lengths, and stricter HTTP and multipart parsing rejects malformed or incomplete input previously accepted.
* PEG repetition and list parsers now omit ignore values. Minimum counts refer to successful matches, so repeat1 and list-of-many can return empty output when all matched items are hidden.
* The buffered HTTP client now decompresses gzip responses before character decoding and rejects unsupported content codings. with-http-request still provides bytes before content decompression.
* Ambiguous Objective-C selectors now require a class-qualified name such as Class.selector when imported signatures differ.
* Tuple literals reject duplicate slot names, and minimum and maximum now throw for empty iota and repetition instead of returning a value.
* Command-line option names and aliases must now be unique, including the default --help option. Exact names take precedence over no- negation.
* SQLite connections now use persistent WAL mode, which requires a local filesystem. with-transaction uses BEGIN IMMEDIATEand acquires the write lock at transaction start, including for read-only work. Write serialization is per process; wrap raw SQL and DDL writes in with-transaction or serialize-transaction to participate.
* Building the experimental Zig VM now requires Zig 0.17.0.
For more details, please see the full announcement at:
https://re.factorcode.org/2026/10/factor-0-102-now-available.html
|