Ruby VM综述:MacRuby 0.5 Beta 2增加AOT工具,Rubinius 0.13发布

MacRuby 0.5有了新的动作——发布了MacRuby 0.5 Beta 2,新版本带来了很多改进,提升了与RubySpec的兼容性。

Ahead of Time(AOT)编译也得到了改善:

macrubyc默认会生成动态链接MacRuby.framework的可执行文件,这样会大大减小文件的大小。为了构建完全独立的可执行文件,必须传入-static参数。

有了新的工具,编写独立的、自包含的应用程序更加容易了:

现在有一个名为macruby_deploy的新工具,它能帮助你部署MacRuby应用程序。macruby_deploy提供了选项提前编译应用程序的Ruby代码,还能将MacRuby框架放入应用程序中。这样一来,你的应用程序就能部署了,因为进行了预编译,其中的代码都被隐藏了。

InfoQ之前介绍了MacRuby 0.5的一些大变化,包括去除GIL、新的基于LLVM的VM等。

另一个Ruby VM也发布了新版本:Rubinius 0.13。其中的一些亮点包括默认开启JIT和一个全面修正过的编译器及解析器。

新增的QueryAgent,将来在连接运行中的系统时可能非常有用。它是一个工作在Rubinius VM内部的系统,监听可配置的端口,等待连接。客户端连接到系统中,查询特定状态或运行时信息;目前似乎只能获取配置项。系统使用BERT来对连接中传输的数据进行编码。想要试用QueryAgent,用/bin/rbx -Xagent.port=$PORT_NUMBER(选择一个可用的$PORT_NUMBER)来运行Rubinius。该协议还没有正式文档,但根据其实现还是能对它所支持的东西有所了解。

要试用Rubinius,可以从Github上获取Rubinius 0.13。运行./configurerake进行编译;要构建带有LLVM的Rubinius,用./configure --enable-llvm代替./configure即可,它会处理LLVM的获取及构建的。
想知道Rubinius与Ruby 1.8.7比较的结果,可以通过./bin/bm运行全套MRI及Rubinius的基准测试。

查看英文原文:Ruby VM Roundup: MacRuby 0.5 Beta 2 Adds AOT Tooling, Rubinius 0.13 Released

你可能感兴趣的:(Ruby VM综述:MacRuby 0.5 Beta 2增加AOT工具,Rubinius 0.13发布)