Racket v9.3
Racket v9.3

原始链接: https://blog.racket-lang.org/2026/08/racket-v9-3.html

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 社区。

关于 Racket v9.3 发布的 Hacker News 讨论凸显了该语言的优势,特别是其强大的标准库、稳健的外部函数接口(FFI)以及由 Chez Scheme 提供支持的高效运行时。诸如 Herbie 数值编译器维护者等资深用户对其功能丰富的环境给予了高度评价,包括内置绘图、HTTP 服务器以及先进的宏系统,这些特性使其在复杂项目中表现出色。 讨论还涉及了语法偏好,具体是关于 `#:foo` 关键字的使用。资深用户解释说,这一惯例是为了兼容 Racket 的 Scheme 渊源,在 Scheme 中,普通的冒号被视为合法的标识符。尽管部分参与者对其他 Lisp 语言中更简洁的关键字语法表现出兴趣,但另一些人指出,Racket 的灵活性允许开发者在需要时自定义语法。 最后,该帖文还回应了社区对 Racket 核心团队所谓“有毒”文化的担忧。常驻用户大多否认了这些说法,称他们并未经历过此类行为;而其他人则认为,偶尔的人际冲突是该项目学术背景的副产品,而非对整体社区文化的真实反映。
相关文章

原文

posted by Stephen De Gabrielle and John Clements


We are pleased to announce Racket v9.3 is now available from https://download.racket-lang.org/.

As of this release:

  • The raco setup command can generate markdown documentation, using the --doc-markdown option.
  • The "#lang" teaching languages (BSL, …, ISL+; plus DeinProgram) have reached parity with the ones chosen using the Language dialog, and are the recommended choice.
  • DrRacket’s background expansion disables errortrace annotations, for faster syntax checking.
  • The raco pkg install command includes new options that provide more install-time configuration flexibility: --adjacent-deps, --destdir, and --attach, and a refined --skip-installed.
  • The ffi/unsafe/runtime-lib library provides a define-runtime-lib mechanism similar to define-runtime-path, allowing location of libraries located relative to a source file.
  • The prompt-tag/c contract generator no longer performs checking on call/cc when the #:call/cc option is not present.
  • The impersonate-prompt-tag function takes an additional argument that allows checking and update of results for composable continuations.
  • The error-syntax->srcloc-handler parameter provides control over the mapping from syntactic forms to source locations for error handling.
  • Uses of (tcp-listen 0) will retry when it fails with “address in use”.
  • The racket/base module requires fewer internal modules and instantiations.
  • The file/zip package provides a new mechanism for greatly increased control over zip file generation, allowing in-memory file sources and per-file compression control.

Thank you

The following people contributed to this release:

Alex Knauth, Alexander Shopov, Aris Spathis, Bert De Ketelaere, Bob Burger, Caleb Mazalevskis, Cameron Moy, Geoffrey J. Teale, Gustavo Massaccesi, Hannes Braun, Jade Sailor, Jason Hemann, Jens Axel Søgaard, John Clements, Jordan Johnson, Matthew Flatt, Matthias Felleisen, Mike Sperber, Nathan Dykman, Noah Ma, Philip McGrath, Robby Findler, Romeo Ahmed, Sam Tobin-Hochstadt, Shu-Hung You, Stefan Schwarzer, Stephen De Gabrielle, and Wing Hei Chan.

Racket is a community developed open source project and we welcome new contributors. See racket/README.md to learn how you can be a part of this amazing project.

Feedback Welcome

Questions and discussion welcome at the Racket community on Discourse or Discord.

Please share

If you can - please help get the word out to users and platform specific repo packagers

Racket - the Language-Oriented Programming Language - version 9.3 is now available from https://download.racket-lang.org

See https://blog.racket-lang.org/2026/08/racket-v9-3.html for the release announcement and highlights.
联系我们 contact @ memedata.com