JRuby 1.1.6 发布,改善对 Ruby 1.9 的支持

  • Werner Schuster
  • 张凯峰

2008 年 12 月 19 日

话题:JavaRuby编程语言语言 & 开发

JRuby 1.1.6 现在可以下载了JRuby 1.1.6 的发布说明)。

其中一个主要的特性是11 月后期提交的对 Ruby 1.9 解析器的支持。正如发布说明中提到的,JRuby 目前支持了 Ruby 1.9 中的大部分库,而在 2009 年第一季度会提供全面的支持 。对 Ruby 1.9 的支持可以通过 --1.9 命令行开关来打开。JRuby 嵌入器可以设置版本,比如说,使用一个org.jruby.RubyInstanceConfig实例,它能够被传入 JavaEmbedUtils.initialize(List loadPaths, RubyInstanceConfig config) 方法。

发布说明中还提到了对于 org.jruby.javasupport.JavaEmbedUtils 类的改进,这个类对那些将JRuby 嵌入到普通 Java 代码中的开发者来说非常有用。与 JRuby 交互会需要使用 JRuby 的内部 API,而这些 API 在不同的版本中很有可能发生变化。但现在可以通过BSF或者 Java 6 中引入的JSR 223 hosting API来解决这个问题。使用 BSF 需要有 BSF 库,而 JSR 223 会把代码限定在 Java 6 上。但JavaEmbedUtils类可以让开发者初始化 JRuby 实例,调用方法,将 Ruby 类型转变成 Java 类型等等,而无需依赖 BSF 或者 JSR 223。

发布说明还包括:

- 一份修复故障 IO 引用 bug 的列表

- 更加快速的 Array.sort

- 无需解压即可在 jar 中运行的 gem

- 将 gem 库存在 jar 中,并通过 classpath 来加载

- 修复两个 RC 过程中可测的内存泄漏

- 自从 1.1.5 以来的 74 个 bug 修复

修复的 bug 示例有:

  • JIRA-3189 "java.lang.Iterable should have an each method"
  • JIRA-3230 fixes Hpricot which was broken in the 1.1.5 release
  • JIRA-3233 fixes a problem with instantiating Java objects with Rails 2.2.2
  • JIRA-3126 "Allow Rubygems to be loaded and used from within jar files"

最后,JRuby1.1.6RC1 是最近一次 Ruby 大比拼中所使用的 JRuby 版本

查看英文原文:JRuby 1.1.6 Released, Improves Ruby 1.9 Support

JavaRuby编程语言语言 & 开发