NEWS for Ruby 3.1.0

本文档列出了自 3.0.0 版本以来用户可见的功能变更,不包括错误修复。

请注意,每个条目都保持在最低限度,详细信息请参阅链接。

语言变更

命令行选项

核心类更新

注意:我们只列出突出的类更新。

Stdlib 更新

兼容性问题

注意:不包括功能错误修复。

Stdlib 兼容性问题

C API 更新

实现改进

JIT

MJIT

YJIT:新的实验性进程内 JIT 编译器

新的 JIT 编译器作为实验性功能提供。 [功能 #18229]

请参阅 这篇博文,其中介绍了该项目。

静态分析

RBS

有关更多信息,请参阅 CHANGELOG.md

TypeProf

调试器

error_highlight

引入了一个名为 error_highlight 的内置 gem。 它会在回溯中显示精细的错误位置。

示例:title = json[:article][:title]

如果 json 为 nil,则会显示

$ ruby test.rb
test.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)

title = json[:article][:title]
            ^^^^^^^^^^

如果 json[:article] 返回 nil,则会显示

$ ruby test.rb
test.rb:2:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)

title = json[:article][:title]
                      ^^^^^^^^

此功能默认启用。 您可以使用命令行选项 --disable-error_highlight 禁用它。 请参阅 存储库 了解详细信息。

IRB 自动完成和文档显示

IRB 现在具有自动完成功能,您只需键入代码,就会出现完成候选项对话框。 您可以使用 Tab 和 Shift+Tab 上下移动。

如果在您选择完成候选项时安装了文档,则文档对话框将出现在完成候选项对话框旁边,显示部分内容。 您可以通过按 Alt+d 阅读完整文档。

其他更改