Factor 0.102 现已发布
摘要
Factor 0.102 发布,新增 GTK4 UI 后端、RISC-V Linux 移植、Windows DirectWrite 文本渲染以及扩展的 ARM64 SIMD 支持,共包含 1,068 次提交。
<p><a href="https://lobste.rs/s/a4ljnh/factor_0_102_now_available">评论</a></p>
查看缓存全文
缓存时间:
2026/10/14 14:10
# Factor 0.102 现已发布 – Re: Factor
来源: https://re.factorcode.org/2026/10/factor-0-102-now-available.html
*"你不仅仅想为 ARM 开发,你希望在日常的桌面工作中真正用上 ARM。"* —— Linus Torvalds
我很高兴地宣布 [Factor](https://factorcode.org/) 0.102 正式发布!
| 操作系统/CPU | Windows | macOS | Linux |
|---|---|---|---|
| ARM64 | | 0.102 (https://downloads.factorcode.org/releases/0.102/factor-macos-arm-64-0.102.dmg) | |
| x86 | 0.102 (https://downloads.factorcode.org/releases/0.102/factor-windows-x86-32-0.102.zip) | | 0.102 (https://downloads.factorcode.org/releases/0.102/factor-linux-x86-32-0.102.tar.gz) |
| x86-64 | 0.102 (https://downloads.factorcode.org/releases/0.102/factor-windows-x86-64-0.102.zip) | 0.102 (https://downloads.factorcode.org/releases/0.102/factor-macos-x86-64-0.102.dmg) | 0.102 (https://downloads.factorcode.org/releases/0.102/factor-linux-x86-64-0.102.tar.gz) |
**源代码**: 0.102 (https://downloads.factorcode.org/releases/0.102/factor-src-0.102.zip)
本次版本包含来自以下贡献者的 1,068 次提交:
> 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](https://github.com/knottio), [@ronnie-w](https://github.com/ronnie-w)
本次版本的亮点包括:
- 全新的 GTK4 UI 后端,现已成为 64 位 Linux 的默认后端;32 位 Linux 继续使用 [GTK3](https://re.factorcode.org/2025/12/migrating-to-gtk3.html),在其他受支持的 Linux 架构上仍可作为构建选项。
- 新增 32 位和 64 位 RISC-V Linux 移植版本,配备优化编译器后端、外部调用和回调机制,并在 C++ 和 Zig 两种虚拟机中均提供支持。
- Windows 上新增 DirectWrite 文本渲染,包括彩色字形、排版控制,以及对大文本输出和复杂文种的更好支持。
- 各平台上大文本的渲染和选择更加流畅,修复了显示缩放、监听器滚动和相邻文本背景等问题。
- 扩展了[原生 ARM64](https://re.factorcode.org/2026/06/native-arm64.html) SIMD 支持,新增半精度和 bfloat16 运算,改进了外部调用、可变参数回调以及原生 `va_list` 支持。
- 新增实验性寄存器分配器和可选的编译器优化,同时修复了栈推断、生成代码和 GC 根追踪等问题。
- Unicode 数据更新至 18.0.0,时区数据更新至 2026c,并新增 SQLite 3.53.4、Raylib 6.0 和 Lua 5.5 的绑定。
- Linux、macOS、BSD 和 Windows 上进程启动更快,并新增原生进程退出通知机制,同时保留轮询作为后备方案。
- 大幅修复了 HTTP 解析、TLS 身份验证、协作等待、资源清理、信号处理和虚拟机内存安全等方面的问题。
### 兼容性说明
- 64 位 Linux 构建现在默认选择 GTK4;如果需要 GTK3,请在引导构建时使用 `-ui-gtk-backend=gtk3`。32 位 Linux 使用 GTK3,不支持 GTK4。
- Windows UI 文本现在默认使用 DirectWrite,因此文本度量和外观可能与之前的 Uniscribe 后端有所不同。
- `callable` 现在是一个包含 words 的 mixin;假设所有 callable 都支持序列协议的代码应改用 `quotation-like`。
- 定长数组结构体现在会验证输入缓冲区长度,更严格的 HTTP 和多部分解析会拒绝之前被接受的格式错误或不完整的输入。
- PEG 重复解析器和列表解析器现在会省略 `ignore` 值。最小计数指的是成功匹配的数量,因此如果所有匹配项都被隐藏,`repeat1` 和 `list-of-many` 可能返回空输出。
- 带缓冲的 HTTP 客户端现在在字符解码前先解压 gzip 响应,并拒绝不支持的内容编码。`with-http-request` 仍在内容解压前提供字节数据。
- 导入的签名不同时,有歧义的 Objective-C 选择器现在需要使用类限定名称,如 `Class.selector`。
- 元组字面量拒绝重复的槽位名称,`minimum` 和 `maximum` 现在对空的 `iota` 和 `repetition` 会抛出异常,而不是返回值。
- 命令行选项名称和别名现在必须唯一,包括默认的 `--help` 选项。精确名称优先于 `no-` 否定形式。
- SQLite 连接现在使用持久 WAL 模式,这要求本地文件系统。`with-transaction` 使用 `BEGIN IMMEDIATE`,并在事务开始时获取写锁,包括只读操作。写操作按进程进行序列化;将原始 SQL 和 DDL 写操作包裹在 `with-transaction` 或 `serialize-transaction` 中即可参与序列化。
### 什么是 Factor?
Factor 是一种[拼接式](https://www.concatenative.org/)、基于栈的编程语言,具有[丰富的高级特性](https://concatenative.org/wiki/view/Factor/Features/The%20language),包括动态类型、可扩展语法、宏和垃圾回收。Factor 拥有[完善的库](https://docs.factorcode.org/content/article-vocab-index.html),支持众多平台,并附有详尽的文档。其实现采用[完全编译](https://concatenative.org/wiki/view/Factor/Optimizing%20compiler)以保证性能,同时仍支持[交互式开发](https://concatenative.org/wiki/view/Factor/Interactive%20development)。Factor 应用可以在受支持的平台之间移植,并可以[部署为独立应用程序](https://concatenative.org/wiki/view/Factor/Deployment)。Factor 项目的完整源代码以 BSD 许可证发布。
### 新增库
- `alien.c-types.varargs` (https://docs.factorcode.org/content/vocab-alien.c-types.varargs.html):新增了 ABI 感知的参数提升和类型支持,用于 C 可变参数调用。
- `alien.varargs` (https://docs.factorcode.org/content/vocab-alien.varargs.html):新增了 ARM64 可变参数回调,以及通过 `va_arg`、`va_copy` 和 `va_list` 进行原生参数列表访问的支持。
- `benchmark.neon` (https://docs.factorcode.org/content/vocab-benchmark.neon.html):新增了 ARM64 SIMD 和可选 NEON 扩展的基准测试。
- `benchmark.spawn-cat` (https://docs.factorcode.org/content/vocab-benchmark.spawn-cat.html):新增了子进程启动基准测试,并与 Bun 进行对比。
- `bootstrap.compat` (https://docs.factorcode.org/content/vocab-bootstrap.compat.html):新增了刷新旧镜像的兼容性支持,包括升级到 ARM64 回调模板。
- `checksums.cityhash` (https://docs.factorcode.org/content/vocab-checksums.cityhash.html):新增了非加密哈希 CityHash32、CityHash64 和 CityHash128 的纯 Factor 实现,包含带种子的 64 位和 128 位变体。
- `checksums.farmhash` (https://docs.factorcode.org/content/vocab-checksums.farmhash.html):新增了可移植的 FarmHash 校验和,提供稳定的 32 位、64 位和 128 位指纹以及带种子的变体。
- `compiler.cfg.linear-scan.checker` (https://docs.factorcode.org/content/vocab-compiler.cfg.linear-scan.checker.html):新增了对线性扫描分配期间寄存器分配和活跃值保留的检查。
- `compiler.cfg.loop-optimization` (https://docs.factorcode.org/content/vocab-compiler.cfg.loop-optimization.html):新增了可选的循环前置块和保守的整数循环不变量代码外提。
- `compiler.cfg.memory-optimization` (https://docs.factorcode.org/content/vocab-compiler.cfg.memory-optimization.html):新增了可选的跨基本块托管对象槽位加载复用。
- `compiler.cfg.metrics` (https://docs.factorcode.org/content/vocab-compiler.cfg.metrics.html):新增了编译器各阶段耗时统计、分配统计数据和寄存器分配器对比工具。
- `compiler.cfg.multiply-negate` (https://docs.factorcode.org/content/vocab-compiler.cfg.multiply-negate.html):新增了一个编译器阶段,当乘法后跟取反且结果只被使用一次时将其合并。
- `compiler.cfg.register-allocation` (https://docs.factorcode.org/content/vocab-compiler.cfg.register-allocation.html):新增了用于选择寄存器分配器的通用接口,同时保留线性扫描作为默认分配器。
- `compiler.cfg.register-allocation.backtracking` (https://docs.factorcode.org/content/vocab-compiler.cfg.register-allocation.backtracking.html):新增了一个实验性分配器,使用束分裂、驱逐和基于亲和性的溢出决策。
- `compiler.cfg.register-allocation.chordal` (https://docs.factorcode.org/content/vocab-compiler.cfg.register-allocation.chordal.html):新增了一个实验性 SSA 图着色分配器,具有弦图性检查和溢出修复。
- `compiler.cfg.register-allocation.greedy` (https://docs.factorcode.org/content/vocab-compiler.cfg.register-allocation.greedy.html):新增了一个实验性分配器,使用驱逐、重新着色和感知循环的区域分裂。
- `compiler.cfg.register-allocation.rematerialization` (https://docs.factorcode.org/content/vocab-compiler.cfg.register-allocation.rematerialization.html):新增了可选的廉价整数常量重新生成机制,以替代从溢出槽加载。
- `compiler.cfg.register-allocation.verifier` (https://docs.factorcode.org/content/vocab-compiler.cfg.register-allocation.verifier.html):新增了可选的最终分配验证器,检查值流、操作数约束、溢出和 GC 根。
- `compiler.cfg.slp` (https://docs.factorcode.org/content/vocab-compiler.cfg.slp.html):新增了可选的将独立整数表达式树打包为 SIMD 操作的功能。
- `compiler.cfg.value-numbering.global` (https://docs.factorcode.org/content/vocab-compiler.cfg.value-numbering.global.html):新增了可选的全局公共子表达式消除,使用生产编译器的重写规则。
- `compression.deflate` (https://docs.factorcode.org/content/vocab-compression.deflate.html):新增了 Factor 实现的原始 DEFLATE 压缩和解压,包括存储块、固定 Huffman 块和动态 Huffman 块的解码以及格式错误输入检查。
- `cpu.arm.64.abi` (https://docs.factorcode.org/content/vocab-cpu.arm.64.abi.html):新增了共享的 ARM64 ABI 分类,涵盖聚合类型、回调和可变参数。
- `cpu.arm.64.features` (https://docs.factorcode.org/content/vocab-cpu.arm.64.features.html):新增了运行时 ARM64 特性检测,提供 Linux、macOS 和 Windows 实现。
- `cpu.riscv.32` (https://docs.factorcode.org/content/vocab-cpu.riscv.32.html):新增了 RV32GC 优化编译器后端、汇编器和 ILP32D 外部调用 ABI 支持。
- `cpu.riscv.64` (https://docs.factorcode.org/content/vocab-cpu.riscv.64.html):新增了 RV64GC 优化编译器后端、汇编器和 LP64D 外部调用 ABI 支持。
- `crypto.chacha20` (https://docs.factorcode.org/content/vocab-crypto.chacha20.html):新增了 IETF ChaCha20 流密码,以及字节数组和字符串加密辅助函数。
- `crypto.poly1305` (https://docs.factorcode.org/content/vocab-crypto.poly1305.html):新增了 RFC 8439 Poly1305 认证标签和验证,使用 32 字节一次性密钥和常数时间标签比较。
- `crypto.utils` (https://docs.factorcode.org/content/vocab-crypto.utils.html):新增了加密辅助函数,用于字节序列比较、零值检测和掩码整数选择。
- `demos.smoke-test` (https://docs.factorcode.org/content/vocab-demos.smoke-test.html):新增了可配置的冒烟测试,可以打开示例、检查渲染和错误,并在继续之前清理每个示例。
- `editors.athas` (https://docs.factorcode.org/content/vocab-editors.athas.html):新增了 Athas 编辑器集成,支持源代码行导航和可配置的可执行文件路径。
- `editors.codeedit` (https://docs.factorcode.org/content/vocab-editors.codeedit.html):新增了与 [CodeEdit](https://www.codeedit.app/) 编辑器的集成。
- `file-picker.linux.gtk4` (https://docs.factorcode.org/content/vocab-file-picker.linux.gtk4.html):新增了 GTK4 后端的原生文件对话框。
- `fonts.shaping` (https://docs.factorcode.org/content/vocab-fonts.shaping.html):为 Windows 文本后端新增了字体方向、制表符宽度、OpenType 特性、区域设置和彩色字形选项。
- `foogle` (https://docs.factorcode.org/content/vocab-foogle.html):新增了按栈效果和文档化类型搜索已加载 words 的功能,结果可点击。
- `game.input.gtk3` (https://docs.factorcode.org/content/vocab-game.input.gtk3.html):新增了 GTK3 特定的游戏输入支持,基于共享的 GTK 和 Linux 输入处理。
- `game.input.gtk4` (https://docs.factorcode.org/content/vocab-game.input.gtk4.html):新增了 GTK4 游戏输入支持,包括事件驱动的键盘和鼠标处理。
- `gdk3` (https://docs.factorcode.org/content/vocab-gdk3.html):新增了 GTK3 窗口管理、显示和输入处理的绑定。
- `gdk4` (https://docs.factorcode.org/content/vocab-gdk4.html):新增了 GTK4 显示、表面、输入事件和图形上下文的绑定。
- `graphene` (https://docs.factorcode.org/content/vocab-graphene.html):新增了 Graphene 几何类型以及向量、矩阵和变换操作的绑定。
- `gsk4` (https://docs.factorcode.org/content/vocab-gsk4.html):新增了 GTK4 场景图和渲染 API 的绑定。
- `gtk3` (https://docs.factorcode.org/content/vocab-gtk3.html):新增了 GTK3 小部件、应用窗口和 OpenGL 区域的绑定。
- `gtk4` (https://docs.factorcode.org/content/vocab-gtk4.html):新增了 GTK4 小部件、应用窗口和事件控制器的绑定。
- `gtk4-samples.opengl` (https://docs.factorcode.org/content/vocab-gtk4-samples.opengl.html):新增了在 GTK4 应用窗口中渲染 OpenGL 的示例。
- `math.floats.small` (https://docs.factorcode.org/content/vocab-math.floats.small.html):新增了 IEEE binary16 和 bfloat16 转换,以及相关的算术支持词汇表和 C 内存类型。
- `math.vectors.simd.extensions` (https://docs.factorcode.org/content/vocab-math.vectors.simd.extensions.html):新增了半精度和 bfloat16 向量运算、点积和小型矩阵内核,包含可移植的后备实现和可选的 ARM64 加速。
- `models.clock` (https://docs.factorcode.org/content/vocab-models.clock.html):新增了单例时钟跳动模型。
- `opengl.gl.epoxy` (https://docs.factorcode.org/content/vocab-opengl.gl.epoxy.html):新增了 GTK OpenGL 后端的共享 libepoxy 函数加载。
- `opengl.gl.gtk3` (https://docs.factorcode.org/content/vocab-opengl.gl.gtk3.html):通过共享的 libepoxy 解析器提供了 GTK3 的 OpenGL 函数加载兼容入口点。
- `pbrt` (https://docs.factorcode.org/content/vocab-pbrt.html):新增了对 [PBRT](https://re.factorcode.org/2026/02/pbrt.html) 文件格式的支持。
- `python.lifecycle` (https://docs.factorcode.org/content/vocab-python.lifecycle.html):新增了共享的惰性解释器初始化和关闭处理。
- `raylib.live-coding.contexts` (https://docs.factorcode.org/content/vocab-raylib.live-coding.contexts.html):新增了 macOS、Unix 和 Windows 上用于实时编码的原生 OpenGL 上下文保存/恢复辅助函数。
- `regexp.captures` (https://docs.factorcode.org/content/vocab-regexp.captures.html):新增了编号和命名捕获结果,包括匹配文本和捕获边界。
- `shell.unix` (https://docs.factorcode.org/content/vocab-shell.unix.html):新增了 Unix 前台进程处理,使终端中断能够传递到 shell 子进程。
- `shlex` (https://docs.factorcode.org/content/vocab-shlex.html):新增了仿 Python `shlex` 的类 shell 字符串分割,支持可配置的注释和 POSIX 解析,以及 POSIX 参数引用和连接。
- `sqids` (https://docs.factorcode.org/content/vocab-sqids.html):新增了将非负整数序列可逆编码为短 ID 的功能,使用 URL 安全的默认字母表,支持可配置的字母表、最小长度和黑名单。
- `syntax.inferred` (https://docs.factorcode.org/content/vocab-syntax.inferred.html):新增了可选的 `?:` 定义,可以从函数体推断栈效果。
- `terrain.smoke-test` (
相似文章
Lobsters Hottest
Bevy 0.20 发布,带来 227 位贡献者的 817 个 PR,主要亮点包括更快更准确的 Solari 光线追踪渲染器(支持 macOS/Metal 及 DLSS)、BSN 场景语法改进、更多 UI 组件、官方采用 WESL 着色器语言,以及 Sprite 自定义材质支持。
Reddit r/LocalLLaMA
作者发布 Slipstream——一款针对 Apple Silicon 的 C++ Metal 推理引擎,支持原生 SSD 专家流式加载与投机草稿解码,可在 64GB Mac 上以 41–52 tok/s 运行 95.5 GiB 的 Qwen3.8-Flash-Next 模型,比 llama.cpp 快 1.76 倍,且 130k 长上下文下速度不衰减。
Lobsters Hottest
Zig 0.17.0 发布,包含 5 个月开发成果、206 位贡献者的 925 次提交,重点包括构建系统重构(引入 Build Server Protocol)、ELF 链接器增强以及 x86_64-linux 上的增量编译支持。
Hacker News Top
Crystal 1.22.0 正式发布,包含 251 项变更和 33 位贡献者的参与,主要亮点包括标准流模拟 SIGPIPE 行为、全面重构的 DWARF 解析以提升性能、所有目标平台支持原生事件循环、支持 LLVM 23/24,以及 aarch64-linux 晋升为 Tier 1 平台。
X AI KOLs Following
StepFun 发布 Step 5 Preview 开放权重版本,采用稀疏 MoE 架构(600B 总参数、27B 激活参数),支持 100 万 token 上下文窗口及原生文本与视觉输入,面向长程智能体任务。