由 naruse 发表于 2016-12-12
翻译: Delton Ding
我们高兴地宣布 Ruby 2.4.0-rc1 发布了。
Ruby 2.4.0-rc1 是 Ruby 2.4.0 的第一个候选版本。 发布 rc1 版本是为了从社区得带更多反馈。 请发送反馈, 因为你可以帮助修复这些功能。
哈希表的提升(由 Vladimir Makarov 提供)
通过使用开放定址法及有序的数组來提升哈希表(st_table)的内部结构。 这个改进被大量讨论,特别感谢 Yura Sokolov。
Binding#irb:像 binding.pry
一样启动一个 REPL
当你在调试时,你可能常用 p
来查看变量值。
在 pry 的帮助下,你可以通过 binding.pry
,
在应用内部启动一个 REPL,并执行任何代码。
r56624
这次提交给 irb 提供了类似的功能。
Fixnum 和 Bignum 合并成 Integer
虽然 ISO/IEC 30170:2012 没有明确指定 Integer 的实现细节,但 CRuby 有两个 Integer 类:Fixnum 和 Bignum。Ruby 2.4 合并为 Integer。 所有有关 Fixnum 与 Bignum 的 C 语言扩展需要做出修正。
字符串支持 Unicode 的大小写转换
String/Symbol#upcase/downcase/swapcase/capitalize(!)
除了 ASCII 之外,现在也可以做 Unicode 的大小写转换了。
性能提升
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 忽视线程中的异常,除非另一个线程显式地执行直至结束。
通过设置 report_on_exception = true
,你会注意到如果一个线程终止了因为未处理的异常。
请向我们反馈 report_on_exception
的默认值应该是什么和垃圾回收报告。
线程死锁检查现在会显示线程的栈和依赖
Ruby 在线程等待地时候会进行死锁检查,但是检查的结果没有足够的信息用来调试。 Ruby 2.4 死锁检查会显示他们的栈信息和依赖线程。
尝试并且享受用与 Ruby 2.4.0-rc1 的编码时光,有任何问题,敬请反馈!
其他自 2.3 起显著的改变
- 支持 OpenSSL 1.1.0 版本(对 0.9.7 及之前版本不再支持)
- ext/tk 现已从标准库中移除 Feature #8539
- XMLRPC 现已从标准库中移除 Feature #12160
请参阅 NEWS,或提交记录来了解更多细节。
Ruby 2.3.0 以来,已有 2519 个文件变更,新增代码 288606 行,移除了 83896 行!
下载
-
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-rc1.tar.bz2
SIZE: 12512729 bytes SHA1: a0439652a97a2406b691e8a1e586e2cf08c258ba SHA256: 3b156b20f9df0dd62cbeeb8e57e66ea872d2a5b55fabdef1889650122bcc2ea7 SHA512: b43902ac7794487197df55a45256819d2e7540b77f1ed4eb68def3e0473ee98860a400862075bafadbde74f242e1dfe36a18cd6fe05ac42aae1ea6dddc9978ce
-
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-rc1.tar.gz
SIZE: 14098505 bytes SHA1: 6b242f9ec7b908c9aa26e497440684ba06d86927 SHA256: e41ada7650eed2a5800534d1201ba7c88f1627085659df994f47ab4c5e327745 SHA512: 26d3c60483ce2d6eaabd7077085102fad6633f18cf5d772bacf6f563670030cb7bba22d54d8b7dfa5eac8b52990371c4a6ad1c095dff6f6b3a7bbe1a8ffb3754
-
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-rc1.tar.xz
SIZE: 9930088 bytes SHA1: 7c404e8bec9859f708927f7203d4f42187e678b7 SHA256: 3f014b3186d10676da6c512d14c65db23ccc4bf200fed9d7c6f9a58fd1e3295b SHA512: 22e209e28da1f2394f50c0a7dd5d0d4d4c0c5a6b5b0b02260fad0267a0940b98f0e2b0f36a44f87d1612555cb3022f43cd136a5186c7f87650aa20264408d415
-
https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.0-rc1.zip
SIZE: 15785968 bytes SHA1: 7d82386434ccbb1701f2995286bf29c8b9179e01 SHA256: 14e6910e36618cddffeb22bad5f1052f907dc31ec93d4aa945bca0905d8a52c4 SHA512: 5dd89320d429e5bd5faf3709be7e5b70f7355304d6324d7ac13a69187e5f1446ad5988c8186bc33f4fea8934288294f9d16fea173f39b2b39967746c4b03d1d4
发布记
有关于发布时间表和其他信息请参考: