新闻 for Ruby 3.1.0

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

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

语言变更

命令行选项

核心类更新

注意:我们只列出未完成的类更新。

标准库更新

兼容性问题

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

标准库兼容性问题

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 阅读完整文档。

其他更改