Ruby 3.1.0 的 NEWS

本文档列出了自 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 阅读完整文档。

其他更改