Ruby Enterprise Edition 停止开发
11 Mar 2012Phusion Passenger 背后的公司宣布它们的 Ruby Enterprises Edition(REE)将会停止开发。REE 基于 MRI Ruby 1.8.7,后者也正在淡出(1.8.7将会继续获得常规维护,直到 2012 年 6 月,安全更新将会到 2013 年 6 月为止)。
REE 包含的补丁解决了 Ruby 1.8.7 的以下问题,使之在通常的面向服务器的使用场景表现更好:
对写入时复制友好的垃圾回收站,减少 Rails 应用的内存用量。
tcmalloc 内存分配器,降低内存用量。
可以调度的垃圾回收器。
Brent Roman 的 MBARI 补丁集。
更多分析和调试功能。
虽然已经淡出,但 Phusion 仍然发布新版。最新版本1.8.7-2012.02把底层的 Ruby 升级到1.8.7-p358,把 RubyGem 升级到1.8.15,包含了最新的 MBARI 补丁,现在兼容 Xcode 4 或以上和 OS X Lion。
Phusion 建议开始迁移到 Ruby 1.9,他们也在寻找新的维护者,提供后续维护服务:
我们目前计划提供次要修复和更新,但建议用户逐渐迁移到 Ruby 1.9。Phusion Passenger 3.1 或之前版本的用户可以使用反向代理安装(reverse proxy setup)在同一台服务器上运行多个 Ruby 版本。从 Phusion Passenger 3.2 开始,它会原生支持多个 Ruby 版本,无需使用反向代理安装。我们相信 Ruby Enterprise Edition 已经完成它的使命了。我们理解许多人目前由于兼容性的问题仍然依然于 Ruby 1.8。因此我们想找一些志愿者帮助维护 Ruby Enterprise Edition。如果你感兴趣,请[联系我们](http://groups.google.com/group/emm-ruby)!
InfoQ采访了 Phusion 的 Hongli Lai,了解为何不会发布 REE 1.9:
REE 的大多数补丁在1.9里都是不需要的,其中一些在 REE 里没有对应。举个例子,MBARI 补丁集是和1.8紧密相关的;一些 MBARI 补丁已经合并到 MBI 1.8 了,另一些解决的问题在1.9是并不存在。另一个例子是:caller_for_all_threads 补丁在1.9里已经废弃,因为1.9对于类似的功能有自己的官方 API。Ruby 1.9 没有提供任何调度 GC 的选项,但它的 GC 总体性能更优,因此没有太大的必要提供调度选项。
InfoQ:Phusion Passenger 3.2 将会支持多个 Ruby 版本,你能详细告诉我们 Passenger 的未来是如何规划的吗?
我们的规划里有很多令人振奋的东西。不过目前无法告诉你所有东西,其中一个我们正在做的是把 Phusion Passenger 从目前的基于多线程的I/O体系换成基于时间的I/O体系。这使我们可以通过更健壮的方式处理I/O,从而带来几乎没有限制的I/O并发,为更好地在将来支持流和 WebSockets 等功能铺平道路。
最新的 REE 已经可以下载。你是否已经换到 Ruby 1.9?如果没有,是什么让你继续保持现状?
查看英文原文:Ruby Enterprise Edition End-of-Life, Phusion Focuses on Passenger