BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Ruby 1.8.8及通向Ruby 1.9.1之路

| 作者 Werner Schuster 关注 9 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2009年3月2日. 估计阅读时间: 2 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

随着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协同工作。

查看英文原文:Ruby 1.8.8 and the Road to Ruby 1.9.1

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT