Ruby 2.4.0 发布

naruse 于 2016 年 12 月 25 日发布

我们很高兴地宣布 Ruby 2.4.0 的发布。

Ruby 2.4.0 是 Ruby 2.4 系列的第一个稳定版本。它引入了许多新特性,例如

改进哈希表(Vladimir Makarov 贡献)

通过引入开放寻址和包含顺序数组来改进哈希表 (st_table) 的内部结构。此改进已与多人讨论过,特别是与 Yura Sokolov。

Binding#irb:启动一个类似 binding.pry 的 REPL 会话

在调试时,你可能经常使用 p 来查看变量的值。使用 pry,你可以在应用程序中使用 binding.pry 来启动一个 REPL 并运行任何 Ruby 代码。 r56624 引入了 binding.irb,它的行为与 irb 类似。

合并 Fixnum 和 Bignum 为 Integer

尽管 ISO/IEC 30170:2012 没有详细规定 Integer 类,Ruby 曾有两个可见的 Integer 类:Fixnum 和 Bignum。Ruby 2.4 将它们合并为 Integer。所有涉及 Fixnum 或 Bignum 类的 C 扩展都需要修复。

另见 此 ticketakr 的幻灯片

String 支持 Unicode 大小写映射

String/Symbol#upcase/downcase/swapcase/capitalize(!) 现在处理 Unicode 大小写映射,而不是只处理 ASCII 大小写映射。

性能改进

Ruby 2.4 还包含以下性能改进,包括语言更改

Array#max, Array#min

在某些条件下,[x, y].max[x, y].min 得到了优化,不再创建临时数组。

Regexp#match?

添加了 Regexp#match?,它执行正则表达式匹配而不创建反向引用对象或更改 $~,以减少对象分配。

其他性能改进

调试

Thread#report_on_exception 和 Thread.report_on_exception

Ruby 会忽略线程中的异常,除非另一个线程显式地 join 它们。通过设置 report_on_exception = true,你可以注意到线程是否因未处理的异常而死亡。

请给我们反馈,关于 report_on_exception 的默认值以及 report-on-GC(在线程被垃圾回收但未 join 时显示报告)的看法。

线程死锁检测现在显示带有回溯和依赖关系的线程

Ruby 在等待的线程周围有死锁检测,但其报告信息不足以进行调试。Ruby 2.4 的死锁检测显示带有回溯和依赖线程的线程。

自 2.3 以来的其他值得注意的更改

  • 支持 OpenSSL 1.1.0(放弃支持 0.9.7 或更早版本)
  • ext/tk 已从标准库中移除 Feature #8539
  • XMLRPC 已从标准库中移除 Feature #12160

有关详细信息,请参阅 NEWS 或提交日志。

通过这些更改,自 Ruby 2.3.0 以来,已更改 2523 个文件,新增 289129 行(+),删除 84670 行(-)

圣诞快乐,节日快乐,并祝您编程愉快,使用 Ruby 2.4!

下载

  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.bz2

    SIZE:   12572424 bytes
    SHA1:   944d2588308391b20a89642472454d1dfe7b2360
    SHA256: 440bbbdc49d08d3650f340dccb35986d9399177ad69a204def56e5d3954600cf
    SHA512: bef7bb53f63fb74073d071cc125fb67b273ed0779ef43c2d2969089b9ca21fff1bd012281c5b748f7a3c24dd26e71730d7248c05a01cb23ab2089eb4d02115fe
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.gz

    SIZE:   14104044 bytes
    SHA1:   d44a3c50a0e742341ed3033d5db79d865151a4f4
    SHA256: 152fd0bd15a90b4a18213448f485d4b53e9f7662e1508190aa5b702446b29e3d
    SHA512: 21c9f596b42dd9cba7a53963a59fed0c2e0c1eb960a4ac7087ea3eaa991ce9252d32639e1edcb75b1d709bc07c4820a6dc336ab427d0643c6e6498e0eacdbc8b
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.tar.xz

    SIZE:   9906880 bytes
    SHA1:   038804bbd0e77508dd2510b729a9f3b325489b2e
    SHA256: 3a87fef45cba48b9322236be60c455c13fd4220184ce7287600361319bb63690
    SHA512: 975a5388592adc038461e0acebb6c0efee242891b2ea8621476401458efe2bc0fdd317d3bf99beb745b0b3808410efdff33862da29c95c027f457943721e3ab6
    
  • https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0.zip

    SIZE:   15758757 bytes
    SHA1:   29e1bab11551011718c35a51827edcb55bd656fc
    SHA256: 5c2bbfa26fd6a15a2d70961874b0f3a386206fcc5f698e240dd8b0c9f0f18c5e
    SHA512: 31d932372ce490eeac0a70bc8dcf842909a90435422398d069c05cf01d994936064b8f4e60879e28a8655c1296eb8e180e348cb95e001ed6ca73cda0ff77de23
    

近期新闻

Ruby 4.0.0 发布

我们很高兴地宣布 Ruby 4.0.0 的发布。Ruby 4.0 引入了“Ruby Box”和“ZJIT”,并增加了许多改进。

naruse 发布于 2025 年 12 月 25 日

Ruby 文档的全新外观

继 ruby-lang.org 重新设计之后,我们还有更多好消息来庆祝 Ruby 成立 30 周年:docs.ruby-lang.org 采用了 Aliki——RDoc 的新默认主题,焕然一新。

Stan Lo 发布于 2025 年 12 月 23 日

重新设计我们的网站标识

我们很高兴地宣布对我们的网站进行全面重新设计。此次更新的设计由 Akatsuka Taeko 创作。

Hiroshi SHIBATA 发布于 2025 年 12 月 22 日

Ruby 4.0.0 preview3 发布

我们很高兴地宣布 Ruby 4.0.0-preview3 的发布。Ruby 4.0 引入了 Ruby::Box 和“ZJIT”,并增加了许多改进。

naruse 发布于 2025 年 12 月 18 日

更多新闻...