BT

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

Ruby 1.9.1程序库兼容性纵览

| 作者 Werner Schuster 关注 6 他的粉丝 ,译者 李明(nasi) 关注 0 他的粉丝 发布于 2009年2月17日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

Ruby 1.9.1是1.9.x系列第一个稳定发布版,它带来了众多语言和标准库的改进,特别是性能上有很大的提升。

然而,既有代码和Gems的兼容性问题却成为迁移至1.9.1的一大阻碍。造成这种情况的原因多种多样。比如说,ParseTree这个Gem现在不可用的原因就是新的Ruby虚拟机在解析源代码并编译成字节码以后,不再保持一棵Ruby的解析树(parsetree)。局部替代品是跟随1.9.x一同发布的Ripper程序库(比如MacRuby正是使用Ripper进行一些Ruby源代码的解析)。仅仅需要解析源代码的程序库则可以使用Ripper或者ruby_parser
另外,可能导致兼容性问题的原因还包括语言本身语义上的微小变动。例如,目前block变量范围的调整以及其他一些改动等

不管原因如何,2007发布的1.9和今年早些时候发布的1.9.1使得让程序库兼容1.9.x的问题越来越受到关注。

根据众多报告,Rails 2.3(或者Rails Edge)似乎是1.9.x兼容的,而早起的发布版还有些问题。Ryan Bigg列出了一些在1.9.1上使用Rails所遇到的问题Phusion Passenger的网志上宣称,他们最新的版本已经兼容1.9.1,并详细列出了其为此所升级或修正的程序库。一些数据库适配器(adapters)也在此列,例如支持Ruby1.9.1的MySQL适配器2.8.1版本发布

找寻兼容性问题的一个好地方就是http://isitruby19.com/。这个站点列出了Ruby Gems并允许用户报告他们关于兼容性方面的经验。一个很有趣的功能是Gem名字旁边的绿色条或者红色条,用来表示这个Gem在1.9上是成功了还是失败了。
但是,这个结果的正确性也并非毫无错误,尤其是那些只有一个用户报告的Gems。在本新闻发布时止,ParseTree Gem被标记为“Working”,这和ParseTree的创始人Ryan Davis早些时候的一条消息相违背。而且,在Ruby 1.9.1上对ParseTree进行的快速测试会因失败而输出:

parse_tree.rb:3:in `': ParseTree doesn't work with ruby 1.9.1 

然而,在你遇到兼容性问题的时候,还是可以先去http://isitruby19.com看看再说。

使你迟迟没有迁移到Ruby 1.9.1的理由是什么?

查看英文原文:Ruby 1.9.1 Library Compatibility Roundup

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

似乎是兼容1.9.1 by Wang Jerry

Ruby,Rails就是这样,给人一种杂牌子军的感觉,都没有一个统一口径。即使到现在Rails2.3.4+Rails1.9.1什么插件也不加,也不是安装上就可以跑的吧?何谈那些插件好不好用了。08年就说圣诞节出1.9.1,这09年了,别说多少版本了,对大部分人来说,Ruby就是给Rails用的,到现在也没有兼容上。要不是Rails即使Ruby再好,也是被人踩在脚板底下,所以这二个东西如果再二条腿走路,反而是有可能掉到沟里去了。

允许的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通知我

1 讨论

深度内容

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT