Racket v9.3 现已发布,可前往 [racket-lang.org](https://download.racket-lang.org/) 下载。本次更新带来了多项显著改进与功能: * **文档与教学:** `raco setup` 现已支持生成 Markdown 文档,且 `#lang` 教学语言与语言对话框中的设置已保持一致。 * **性能与效率:** DrRacket 的后台扩展速度更快,`racket/base` 也经过优化,所需的内部模块更少。 * **包管理:** `raco pkg install` 命令新增了配置选项,包括 `--adjacent-deps` 和 `--destdir`。 * **系统与库增强:** 新增了用于库定位的 `define-runtime-lib` 机制,改进了 ZIP 文件生成控制,并增强了 `tcp-listen` 重试逻辑的稳健性。 * **开发者体验:** 更新包括 `impersonate-prompt-tag` 的新选项、合同(contract)检查的优化以及可自定义的错误位置映射。 本次发布得益于 28 位社区成员的贡献。如需查看完整的变更列表、详细文档及进一步讨论,请访问[官方发布公告](https://blog.racket-lang.org/2026/08/racket-v9-3.html),或在 Discourse 和 Discord 上加入 Racket 社区。
这段文字对 RISC-V 指令集架构(ISA)进行了批判性评估,认为其流行源于“廉价”而非“优秀”。作者强调了几个根本性的设计缺陷:
* **过度可选性**:该指令集极端的模块化导致了生态系统的碎片化。由于将核心功能(如 CSR、中断和特权模式)设为可选,规范制造出了互不兼容的硬件版本,使得“标准合规”实际上毫无意义。
* **编码糟糕且效率低下**:作者批评立即数被随意分散,这增加了解码和仿真的复杂度。此外,缺失了“显而易见”的功能(如寄存器加寄存器寻址和简单的位测试指令),迫使开发者使用次优的多指令序列来完成任务。
* **标准化失败**:试图通过“配置集”(如 RVA23)来解决碎片化问题的尝试,反而创造了二级标准,进一步排挤了无法满足这些新要求的硬件。
* **结论**:作者预测 RISC-V 将凭借“价格足够好”的优势,取代 8051 等架构,从而统治低成本微控制器和嵌入式“保姆级”芯片市场;但作者认为,它在根本上不适合高性能桌面或服务器计算,因为在这些领域,AArch64 等设计更出色且成熟的架构能提供更优越的性能和软件稳定性。
Nix 的语言定义基于“惰性求值”(laziness),这意味着它仅计算被访问的特定属性。因此,开发者可以创建无限或递归的数据结构,只有在被遍历时这些结构才会“存在”。
这一特性带来了传统软件包管理之外的独特可能性。例如,在 `nes-nix` 项目中,一个属性路径(如 `.right.jump.right` 这样的序列)被视为《超级马力欧兄弟 3》的一系列输入。在这个“属性树”中,每个节点代表游戏的一帧,而每个子节点都是由按键操作产生的新状态。
由于 Nix 的派生(derivations)是可复现的并存储在 Nix 存储中,每一帧游戏画面都成为一个可缓存、可重用的派生。存储本质上充当了持久化的存档历史;从游戏序列的分支开始几乎不需要任何成本,因为之前的帧只是被引用,而无需重新模拟。
归根结底,这表明 Nix 的属性路径不仅仅是目录中的静态名称,而是函数式程序。利用该语言的惰性求值特性以及存储持久化状态的能力,人们可以将软件包管理器重新用于系统地模拟和记录复杂的、可复现的状态机。