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 。运行./configure
及rake
进行编译;要构建带有 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
评论