JRuby 1.1.2 及 Ruby 1.8.7 的新预览版发布了

  • Werner Schuster
  • 张龙

2008 年 6 月 2 日

话题:JavaRuby语言 & 开发架构

就在RailsConf 2008开始时,JRuby 1.1.2 发布了下载 JRuby 1.1.2)。这个 1.1.x 分支版本修复了很多 bug 并提升了性能。

通过将 JRuby.jar 放到根类路径下启动速度得到了提升(参看之前的报道)——因为不会校验字节码,所以从根类路径下加载类要比从正常的类路径下快。

在 MRI 稳定的 Ruby 1.8.x 分支中发布了新的 Ruby 运行时环境。Ruby 1.8.7 preview 4 发布了。你可以看到自从 1.8.6 以来新加的特性和API 的一个大概列表,或者查看 MRI 的完全修改日志

Ruby 1.8.7 preview 4 的新特性和之前预览版的区别表明某些活动和曾经加入的一些特性又消失并发生了变化。

一个大的变化是Symbol#to_proc 的再现。该特性在 Ruby 1.9 中首次出现Ruby 1.8.7 preview 1 包含一个向后兼容的版本——但人们很快就发现使用 Symbol#to_proc 的客户化版本会导致软件崩溃,尤其在 Rails 中。这导致该特性被移除了——在改变其行为并通过测试后,它现在又回来了。Symbol#to_proc 看起来会保留在Ruby 1.8.7 中。

这是之前未提到的进一步的 API 变化列表:

  • Binding#eval
  • __method__,以 Symbol 的形式返回当前方法名
  • String#bytesize,以字节形式返回字符串的长度
  • Object#instance_exec

一些 APIs 的行为已经发生了变化,这可能导致一些应用出现问题:

  • Date.parse发生了变化,这样'##.##.##'现在被解释成 'YY.MM.DD' ,而不是'MM.DD.YY'。
  • String#to_i、String#hex 和String#oct的行为发生了变化,对于数字串中的下划线'_', 如'1__0'.to_i,在Ruby 1.8.6 中的结果是'10',而在 Ruby 1.8.7 中的结果为'1'。请查看发布说明以了解更全面的信息。

查看英文原文:Releases: JRuby 1.1.2; New Preview of Ruby 1.8.7

JavaRuby语言 & 开发架构