Ruby 2.3.0 发布

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

这是 Ruby 2.3 系列的第一个稳定版本。它引入了许多新功能,例如:

引入了冻结字符串字面量编译指示。在 Ruby 2.1 中,"str".freeze 已经被优化以减少对象分配。Ruby 2.3 引入了一个新的魔术注释和命令行选项来冻结源文件中的所有字符串字面量。此外,为了调试,您可以使用 --debug=frozen-string-literal 命令行选项在出现 "can't modify frozen String" 错误时获取对象创建的位置。

引入了安全导航操作符所谓的孤独操作符&.,它已经存在于 C#、Groovy 和 Swift 中,用于简化 nil 的处理,如 obj&.fooArray#digHash#dig 也被添加。请注意,它的行为类似于 Active Support 的 try!,它只专门处理 nil

捆绑了 did_you_mean gem。did_you_mean gem 在出现 NameErrorNoMethodError 时显示候选对象,以方便调试。

引入了 RubyVM::InstructionSequence#to_binary 和 .load_from_binary 作为实验性功能。通过这些功能,我们可以创建一个 ISeq(字节码)预编译系统。

Ruby 2.3 还包括许多性能改进,例如:重新考虑方法入口数据结构引入新的表格数据结构优化 Proc#call,针对对象分配和方法调用代码的机器码级别调整,更智能的实例变量数据结构Socket#*_nonblock 方法支持 exception: false 关键字参数等等。请查看 NEWS 文件中的“实现改进”部分。

有关新功能和兼容性说明的完整列表,请参阅 NEWSChangeLog

自 Ruby 2.2.0 以来,这些更改导致了 2946 个文件被更改,104057 行插入(+),59478 行删除(-)

圣诞快乐,节日快乐,享受使用 Ruby 2.3 编程的乐趣!

下载

  • https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2

    SIZE:   14185617 bytes
    SHA1:   6c8a832d49d22755ea8c45b6d53faf2ccc6d6ac9
    SHA256: ec7579eaba2e4c402a089dbc86c98e5f1f62507880fd800b9b34ca30166bfa5e
    SHA512: 77b707359e754c3616699d21697752741497c719dc3d6fdfb55ed639e76d52560d293ae54cbe5c63be78dc73fbe60f1b8615d704d017bdfe1994aa9747d26a6c
    
  • https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz

    SIZE:   17648682 bytes
    SHA1:   2dfcf7f33bda4078efca30ae28cb89cd0e36ddc4
    SHA256: ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507
    SHA512: 914d0201ecefaeb67aca0531146d2e89900833d8d2a597ec8a19be94529ab6b4be367f9b0cee2868b407288896cc14b64d96150223cac0aef8aafc46fc3dd7cc
    
  • https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.xz

    SIZE:   11294412 bytes
    SHA1:   96e620e38af351c8da63e40cfe217ec79f912ba1
    SHA256: 70125af0cfd7048e813a5eecab3676249582bfb65cfd57b868c3595f966e4097
    SHA512: d893c5e6db5a0533e0da48d899c619964388852ef90e7d1b92a4363d5f189cd2dba32a009581f62b9f42a8e6027975fc3c18b64faf356f5e3ac43a8d69ec5327
    
  • https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.zip

    SIZE:   19840511 bytes
    SHA1:   3f88617568d9a4f491e8b32dca532363f73eaa71
    SHA256: 8270bdcbc6b62a18fdf1b75bd28d5d6fc0fc26b9bd778d422393a1b98006020a
    SHA512: a3f397bb3c9c19d9b797552c5d60bb01c82db884cfa966df84881125bea35713cffd99f88fb86b271bae72d9cfb09ad9b33838cffcf6365c091459479914fdef