修正大量Bug,JRuby 1.4正式发布

来源:infoq 作者:infoq
  

2009年11月2日,在经历了3个RC版本之后,JRuby社区终于迎来了JRuby 1.4的正式版本。(点击此处查看官方发布说明。)

说起JRuby 1.4,最令人关注的特性应该就是对Ruby 1.8.7的兼容了。考虑到1.8.7已经成为Rails的推荐Ruby版本,而且很多操作系统也将1.8.7作为默认的Ruby版本,JRuby团队在 1.4版中开始兼容1.8.7,需要注意的是其patchlevel是174,因此并不保证兼容其后的特性也能得到支持。对于Ruby 1.9的支持也是大家关注的焦点,JRuby 1.4对--1.9做了一些改进,例如升级stdlib到1.9.2preview2,能够运行RubyGems(RubyGems版本升级到了 1.3.5)了等等。

>jruby -v
jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2009-11-02 69fbfa3) (Java HotSpot(TM) Client VM 1.6.0_10) [x86-java]
>jruby --1.9 -v
jruby 1.4.0 (ruby 1.9.2dev trunk 24787) (2009-11-02 69fbfa3) (Java HotSpot(TM) Client VM 1.6.0_10) [x86-java]

对于Windows用户而言,新版本解决了很多Windows Native Launcher相关的问题,同时还特意提供了适用于Windows版本的安装包(分为带JRE不带JRE的两个版本),安装十分方便,比较人性化。

Ola Bini重新实现了JRuby的YAML解析器——Yecht,它更接近于MRI中使用的Syck,这一改变将能解决很多YAML方面的兼容性问题,JRuby团队希望Yecht能成为JRuby最终的YAML解析器。

在Java集成支持方面,除了性能提升,还对Java方法选择和Java/Ruby类型间的强制转换API做了修改,例如,1.4中提供了 java_method、java_send和java_alias方法。关于更多细节和整个Java集成方面的计划,Charles Nutter在邮件列表中做了详细说明

此外,JRuby 1.4还提供了一套新的嵌入框架——RedBridge,自1.4RC1以来该框架也得到了不少改进。有了RedBridge,使用者可以直接使用JSR223,而无须另外下载JAR包;对于BSF,RedBridge的实现也优于之前的版本。RedBridge的使用非常简单,在其Wiki上提供了一个范例:

package vanilla;
import org.jruby.embed.ScriptingContainer;
public class HelloWorld {
    private HelloWorld() {
        ScriptingContainer container = new ScriptingContainer();
        container.runScriptlet("puts \"Hello World!\"");
    }
    public static void main(String[] args) {
        new HelloWorld();
    }
}
最后,JRuby 1.4修复了自1.3.1以来的301个Bug。每次大版本的发布,JRuby团队都会给我们带来不少惊喜,如果希望了解更多1.4后续版本的计划内容,可以访问Engine Yard的博客

译者介绍:丁雪丰,网名DigitalSonic,满江红开放技术研究组织核心成员,Spring Framework 2.0 & 2.5文档翻译项目负责人,也参与了Hibernate、Seam等多份文档的翻译及校对工作。平时积极投身开源项目,是著名SFTP/SCP软件WinSCP的简体中文汉化者。参与翻译及编著的书籍有《Spring攻略》《JRuby实战》等。InfoQ中文站内容团队,尤其是架构、SOA和Ruby社区需要您的参与,有意者请邮件至editors【AT】cn.infoq.com


时间:2009-11-08 20:43 来源:infoq 作者:infoq 原文链接

好文,顶一下
(3)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量