NEWS for Ruby 3.1.0

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

请注意,每个条目都保持得尽可能简洁,详情请参阅链接。

语言更改

命令行选项

核心类更新

注意:此处仅列出重要的类更新。

标准库更新

兼容性问题

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

标准库兼容性问题

C API 更新

实现改进

JIT

MJIT

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

新的 JIT 编译器作为实验性功能可用。 [Feature #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 来阅读完整文档。

杂项更改