Ruby VM综述:MacRuby 0.2、JRuby JMX和Ruby 1.9

MacRuby是Objective-C运行时上Ruby 1.9的一部分(你可以阅读 InfoQ对MacRuby开发者Laurent Sansonetti的访谈)。

现在一个新的版本, MacRuby 0.2已经可用。下面摘引部分它的发布说明:
在MacRuby 0.2中,所有的字符串、数组和哈希表现在都是基本的Cocoa类型,分别表示为NSString、NSArray和NSDictionary对象。
整个的String、Array和Hash接口都使用强大的CoreFoundation框架在 Cocoa等效架构之上进行了重写。
[..]
开 发人员不再必须将Ruby原始类型和Cocoa之间做相互转化。例如,MacRuby中创建的一个String可以再不加转换的情况下被直接传递给一个接 收NSString参数的C或Objective-C API。类似的,Ruby String类的任何方法可以同样从一个来自Objective-C的NSString中调用。
使用 Objective-C数据结构和String还会带来一些性能方面的改进。 现在已经可以在MacOSforge下载MacRuby 0.2。

JRuby开发团队一直在为 JMX而忙碌。Charles Nutter最近 向JRuby的主版本中添加一些MBean,这使得监视JRuby的中间变量成为现实。现在,开发者可以察看JRuby的优化器和JIT的工作。这使得人发人员可以对某个运行在JRuby上的应用如何与优化器交互有一个感性认识。此外,随着"--manage"命令行开关的加入,现在可以使用像 JConsole这样的工具来更好的察看信息。

由JRuby团队的Tom Enebo所负责的 JMX gem则沿着另一个方向在努力,即使用JMX来导出信息。它使得开发者可以连接到JMX服务器并列出导出的MBeans,最后使用属性或调用操作。另一个具有这一能力的库是 jmx4r。Tom Enebo的jmx gem还包含了在JRuby 定 义MBean的能力,所定义的MBean随后可以被到一个常规的MBean服务器(JMX自Java5亿来一直被包含在Java中)。有了这 些,JRuby应用现在可以将它们自己的监控信息通过JMX系统导出,这些信息当然随后可以被诸如JConsole这样的工具所浏览。

最后, Sasada Koichi注意到Ruby 1.9.0-2会及时为RubyKaigi而发布,也就是在2008年6月20日左右。等到正式发布之时,我们会得到更多关于修改的细节,不过关于 Ruby 主版本修改记录的概览显示,RubyGems和RDoc 2.0都有更新。

另一个可能在这次或未来发布版中出现的变化,是 将test/unit替换为了Ryan Davis的miniunit。Ryan最近 发布了miniunit 1.2,并呼吁用户认识到它和test/unit的不同。Ryan解释了如何使用miniunit:
% sudo gem install miniunit
% sudo use_miniunit yes

第二条命令将会将symlinks安装到你的sitelib目录中。这发生在stdlib dir in $LOAD_PATH,所以这不会影响test/unit。你也可以通过提供"no"作为参数,将symlinks转出。这样既容易又安全。
这一发布版中加入了许多美妙的东西,主要有: 
 * 有用的新断言,如assert_includes
 * 每一句断言提供了相反的镜像语句,如refute_empty ary
 * 加入了mini/spec和mini/mock,它们可以和mini/test共同使用
对于Ruby IDE的开发者以及使用custom test-runners的人们来说,需要注意以下事项:
注意:如果在尝试将Ruby1.9.0-2集成到某个GUI IDE或像komodo这样的test-runner时遇到问题,请不要觉得这是Ruby1.9.0-2的bug。Ruby1.9.0-2并不保证与这些工具的兼容性,而只保证支持你编写的测试本身。

如果你不熟悉test/unit,那么请和我们一起回顾一下历史,原先test/unit是被分离出来做为一个gem包。

查看英文原文:Ruby VM Roundup: MacRuby 0.2, JRuby JMX, Ruby 1.9

你可能感兴趣的:(Ruby VM综述:MacRuby 0.2、JRuby JMX和Ruby 1.9)