Ruby 2.0.0-rc2 已发布

Ruby 2.0.0-rc2 已发布。这将是 Ruby 2.0.0 的最后一个候选版本。

请尝试一下,如果发现任何问题,请报告。

下载地址

2.0.0 中的新功能

  • 关键字参数
  • Enumerable#lazy
  • Module#prepend
  • #to_h: 转换为哈希的约定
  • %i: 符号数组的字面量
  • 更新的正则表达式引擎:Onigmo(Oniguruma 的一个分支)
  • 引入了 Enumerator#size 和 Range#size
  • DTrace 支持
  • TracePoint
  • 优化了 require 性能(尤其是在 Windows 上)
  • NativeClient 支持
  • 文档改进
  • 增强的异步中断处理
  • 启动时堆栈大小调整参数
  • Refinements [实验性]

… 以及更多改进。详情请参阅 NEWS。

以下是第三方的一些介绍性文章

(如果您自愿提供更多文章,我们可能会在下一个版本公告中引用或提及它们。)

注意事项

不兼容性

我们知道有三个值得注意的不兼容之处

  • ruby 脚本的默认编码现在是 UTF-8 [#6679]。一些人报告说它会影响现有程序,例如某些基准程序变得非常慢 [ruby-dev:46547]。该规范可能会在正式发布时进行更改。
  • 删除了 iconv,它在 ruby 1.9 中引入 M17N 时已被弃用。请改用 String#encode 等。
  • 存在 ABI 破坏 [ruby-core:48984]。我们认为普通用户可以/应该重新安装扩展库。您应该注意:“不要从 1.9 复制 .so 或 .bundle 文件”。

存在一些相对较小的不兼容性。[ruby-core:49119] 请报告您发现的任何其他不兼容之处。

仅供参考:我们正在创建升级说明,但某些部分已经过时。

Refinements 的状态

2.0.0 将包含 refinements 作为“实验性功能”,因为我们无法就其详细规范达成一致。请注意,其行为可能会在未来版本的 Ruby 中发生更改。

特别感谢

我感谢所有尝试预览版和 rc1 版本的人!我感谢所有贡献者为修复许多错误所做的辛勤工作。我非常感谢所有帮助我完成此版本的人。