
运用Ruby纤程进行异步I/O:NeverBlock和Revactor
Rails 2.2已经将线程安全提上日程,但是阻塞I/O程序库使得必须要需要运行多个Ruby实例才行吗?我们来看看非阻塞I/O和Ruby 1.9的纤程(Fibers)是如何来解决这个问题的。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。

Rails 2.2已经将线程安全提上日程,但是阻塞I/O程序库使得必须要需要运行多个Ruby实例才行吗?我们来看看非阻塞I/O和Ruby 1.9的纤程(Fibers)是如何来解决这个问题的。我们对来自NeverBlock项目的Mohammad A. Ali和来自Revactor项目的Tone Arcieri进行了访谈。

在Ruby世界中流行着一个误解:Ruby没有调试器。这是明显的错误——Ruby不但有调试器,还有供调试器用的GUI和API。InfoQ仔细调查了Ruby世界中调试器的现状——发现Ruby的调试功能支持已经很好了。

随着Erlang对Actors的普及,Rubinius增加了多虚拟机技术(Multi-VM),还有Ruby 1.9加入了另一种并发机制——纤程Fibers(协程),Ruby的并发程序世界正逐渐扩大。就此我们采访了MenTaLguY。他致力于Ruby世界中的Rubinius,JRuby以及并发程序的许多方面。
Unladen Swallow尝试将LLVM优化引入到CPython运行时,但是去年却没有取得重大进展。现在,一篇回顾Unladen swallow的文章已经确认了这个项目的死亡,不会再进行开发。发生了什么?
近日,Ruby VM又有很多新发布。MacRuby 0.8修复了很多Bug并开始了1.0之路。Rubinius 1.2改进了内存效率以及调试器。MRI发布了新的补丁:1.8.7-p330与1.9.2-p136,后者也是暨1.9.2发布之后首次重大的Bug修复。
Rubinius 1.1终于发布了,新版本给我们带来了JIT和性能的改进,还有更为强大的调试和分析功能。此外:GIL算法也在1.1里得到大规模修缮,但过不了太久GIL也会成为历史。Rubinius的hydra分支正在孕育一个不带GIL的Rubinius版本,这让JRuby、IronRuby和MacRuby的无GIL VM阵营很快又要增加崭新的一员。InfoQ就此连线Evan Phoenix对hydra分支展开探讨。
Ruby的标准化工作正在持续推进:2008年正式宣布后,已经发表了Ruby标准的第一版草稿。这对RubySpec(可执行的Ruby规范)和其他Ruby实现意味着什么呢?
Rails 3的首个beta版已经发布。Rails 3对代码进行了大规模的重写,带来了稳定的API和来自Merb的设计理念,拥有更清晰的内部实现和性能上的提升等等。InfoQ将带您了解Rails 3的变化,以及各个Ruby实现对它的支持情况。