作者 Werner Schuster 译者 杨晨 发布于 2009年8月15日 下午1时50分
近一段时间Yehuda Katz一直在强烈质疑:到底是什么问题使得开发者远离Ruby 1.9 。其实一个很重要的原因是应该归咎于不能在Ruby 1.9.x上运行的库和工具的列表上那一长串名字 。
这个列表正不断缩短。不仅如此,不断的更新中还有近期发布的Ruby 1.9.x的ruby-debug工具 。在这个版本中,Ruby-debug使用原生扩展来减少调试器中运行Ruby代码的开销 。
Mark Moseley最近在GitHub上发布了一些代码 ,专注于如何更有效地减少调试器的开销 。其基本思想是:在编译代码的时候采用插入特殊指令的方法来设置Ruby代码的断点,从而中断执行。
现在ruby-debug 1.9.x的安装指南 已经可以在GitHub上找到。
随着Ruby版本的增多,在不同的Ruby实现版本上测试Ruby代码变得更加重要。我们在这里提供了一些可用的备选方案,例如使用MultiRuby 或者Ruby版本库站点 。
近期出现了一个名为Ruby Switcher 的新工具。其采用了一种非常简单的思想:使用一个简单的命令来切换Ruby版本,例如使用命令use_ruby_191
切换到Ruby 1.9.1,而use_jruby
使得ruby
命令以及其他的程序库切换到JRuby。同样,为了正确地切换,这个工具也会下载和安装大量Ruby的不同版本。
本文的最后,是来自MacRuby的消息:MacRuby的实验性分支已经被并入到了主干库中 。这个实验性分支开发了一个全新的VM,这个VM使用了LLVM 来实现JIT和预编译(Ahead of Time,简称为AOT)技术。另外一个更新是MacRuby移除了GIL 。在这里我们简单介绍一下MacRuby:MacRuby是Ruby 1.9.x的一个衍生版本,它继承了标准Ruby的线程特性,当然包括GIL在内。
在下一个稳定发布版本中,观察MacRuby的线程性能开销会是如何是个不错的主意;要知道标准的Ruby 1.9.x在近期的版本中仍然会保留GIL 。