随着 Ruby 1.9.1 的发布,Ruby 1.9 也迎来了自己的稳定版,但很多人仍然不愿意转到该版本上,因为缺少与 1.9 兼容的库及工具支持。
尽管 Ruby 1.8.7 已经出来一阵了,但在未来一段时间内还是会继续维护1.8.6 的。Ruby 1.8.7 引起了不少争执,因为它移植了1.9 的一些特性而有些改变会产生问题(相对于1.8.6),这也导致了 JRuby 团队目前放弃了对 Ruby 1.8.7 的支持(虽然这可能会发生变化)。
最近人们又重新开始了关于1.8.x 分支未来的争论,部分原因在于Ruby 1.8.8 将于今年发布。
在这场争论中, Ruby 1.8.7+ 的主要维护者 Akinori MUSHA 公布了 1.8.8 的计划:
对于我们来说,1.9 才是未来而 1.8.6 及之前的版本都已成为尘封往事了。1.8.7 也成为了过去,但如果你觉得没那么难的话可以继续对 1.8.7+ 提供支持,这样的话那些还不准备迁移的用户会很感激的。在 Ruby 1.8.8 中加入了兼容性语法,这样我们就可以在单独的源代码文件中轻松编写适合于 1.9 和 1.8.8+ 的代码而无需放弃 1.9 的那些优化了。 如果你仍需编写 1.8.6 的代码但打算将来支持 1.9,那么请使用警告选项(-w)在 1.8.7 和即将到来的 1.8.8 下运行程序。
尽管官方的 1.8.7 具有一些来自于 1.9.1 的迁移性特性,但我们还有其他方式来利用 1.9.1 的那些特性。其中 1.9.1 中的 Fibers 就是非常有用的,它被用来为Ruby 的数据库适配器进行一些重要的可伸缩性改进。 NeverBlock 通过向库中增加“Fibers”来支持 1.8.x 。
目前该移植以 1.8.6_p287 和 1.8.7_72 补丁的形式发布:
在 Kickball Labs 中,Aman Gupta( http://github.com/tmm1)和我(http://github.com/ice799)[Joe Damato] 正在忙于 Ruby 1.8.{6,7}的 Fibers 实现。其 API 兼容于 Ruby 1.9,但除了“transfer”方法,因为当前尚未实现该方法。凭借该补丁,你可以让 mysqlplus 和 neverblock 与 Fibers 协同工作。
评论