`
love~ruby+rails
  • 浏览: 849599 次
  • 性别: Icon_minigender_1
  • 来自: lanzhou
社区版块
存档分类
最新评论

Ruby 1.9.1程序库兼容性纵览

阅读更多
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

分享到:
评论

相关推荐

    适合Ruby 1.9.1的Ruby-FCGI源码包

    Ruby-FCGI是Ruby语言与FastCGI接口交互的一个库,它使得Ruby应用程序能够与Web服务器(如Apache或Nginx)通过FastCGI协议进行通信。FastCGI是一种持久的、高性能的处理CGI请求的方式,相比于传统的CGI,它可以保持...

    Ruby1.9.1released.zip

    2、ruby 1.9正式支持内核多线程机制,可以大大提高ruby作为服务端程序的并发处理能力 3、ruby 1.9还引入了纤程这样的多任务并发处理机制,提供了轻量级并发处理能力。 等等。ruby 1.9.1 的下载地址是:ftp://ftp....

    ruby1.9.1文档和一本pdf

    4. **库和框架**:介绍 Ruby 1.9.1 集成的标准库和常用的第三方库,如ActiveRecord、Rails框架等。 5. **性能优化**:给出实践建议,如何利用新特性编写高效的代码。 6. **错误处理和调试**:讨论新错误系统,提供...

    【工作点滴】用VS 2010 编译 Ruby 1.9.1

    - 兼容性问题:VS 2010可能与较新的Ruby版本存在兼容性问题,需要对源代码进行适配。 - 依赖库缺失:Ruby可能依赖于某些特定的库,这些库需要在编译前正确安装。 - 编译错误:由于源代码中的语法或逻辑错误,编译...

    ruby-1.9.1-p0-i386-mswin32.rar

    在实际应用中,Ruby的灵活性和强大的库支持使其成为Web开发、脚本编写、自动化任务和数据分析等领域的重要工具。Ruby on Rails,一个基于Ruby的流行Web框架,极大地推动了Ruby在Web开发领域的应用。通过Ruby,开发者...

    ruby-1.9.1-p0-i386-mswin32.zip

    "ruby-1.9.1-p0-i386-mswin32.zip" 是一个针对Windows操作系统编译的Ruby编程环境的压缩包,发布于2009年6月20日,当时是Ruby 1.9.1版本的最新版。 Ruby 1.9.1是一个重要的版本更新,引入了许多改进和新特性,包括...

    windows下安装Ruby 1.9 二进制zip包

    在Windows环境下安装Ruby 1.9,通常会涉及到编译环境的配置,因为Ruby的源码需要...然而,务必注意保持Ruby及其依赖库的更新,以确保系统的安全性和兼容性。同时,理解这些库的作用有助于在遇到问题时进行排查和解决。

    mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe

    mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe

    jquery1.9.1 支持低版本ajax (ajax前jQuery.support.cors=true )

    jquery1.9.1 支持低版本ajax (ajax前jQuery.support.cors=true )

    ruby安装升级及命令自行编译安装非APTGET方式安装升级的办法

    执行命令`ruby -v`检查Ruby版本,应显示为`ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]`,表明安装成功。 #### 自定义升级策略 **优势分析** 手动编译安装的最大优势在于提供了极高的灵活性。当新的...

    Ruby1.91_Stable和Gem1.3.5

    Ruby 1.9.1 是 Ruby 的一个稳定分支,它引入了许多改进和新特性,提升了性能并增强了语言的规范性。 Ruby 1.9.1 的主要更新包括: 1. **编码支持**:Ruby 1.9 引入了对多种字符编码的支持,如 UTF-8 和 ISO-8859-1...

    PCL1.9.1工具库,包括与之配套的VTK 8.1,用于开发基于PCL的图像界面程序

    在使用PCL1.9.1和VTK 8.1开发基于点云的图像界面程序时,你需要理解以下几个关键知识点: 1. **点云数据结构**:PCL中的点云数据主要存储在`pcl::PointCloud`模板类中,它可以容纳不同类型的点数据,如XYZ坐标、...

    Ruby程序设计资料大全

    6. **Ruby的异常处理**:Ruby使用begin-rescue-end语句进行异常处理,允许捕获并处理运行时错误,确保程序的健壮性。 7. **标准库和第三方库**:Ruby拥有丰富的标准库,同时社区提供了大量第三方库(Gems),涵盖了...

    jquery1.9.1版本压缩与开发使用资源

    jQuery 1.9.1是该库的一个重要版本,它在1.9.0的基础上修复了一些已知问题,提高了稳定性和兼容性。这个版本的目标是保持向后兼容,同时移除一些老旧的API,以便鼓励开发者采用更现代的JavaScript实践。对于那些依赖...

    jquery1.9.1文件

    jQuery 1.9.1作为一款强大的JavaScript库,不仅提供了丰富的DOM操作和事件处理功能,还优化了性能,确保了向后兼容性。理解和掌握jQuery 1.9.1的核心特性,将有助于提高开发效率,创建出更富有交互性的Web应用程序。...

    jquery1.9.1

    总之,jQuery 1.9.1作为JavaScript库的重要版本,其强大功能和广泛兼容性使其在Web开发领域中占据了重要地位。无论是新手还是经验丰富的开发者,都可以从中受益,提高开发效率,创造更优秀的Web应用。

    jQuery1.9.1含jquery-1.9.1-vsdoc

    在本文中,我们将深入探讨jQuery 1.9.1版本,这是一个重要的里程碑,因为它对一些过时的功能进行了清理,同时也保持了向后兼容性。我们将通过分析提供的文件`jquery-1.9.1.js`、`jquery-1.9.1-vsdoc.js`和`jquery-...

    libiconv-1.9.1.tar.gz

    《libiconv-1.9.1:字符编码转换库的深入解析》 在信息技术领域,字符编码的处理是至关重要的。libiconv是一个广泛使用的开源库,它提供了...通过深入理解和应用libiconv,我们可以构建更加健壮和兼容性强的应用程序。

    jquery-1.9.1.js

    此外,1.9.1版本修复了许多已知的bug,确保了库的稳定性。 其次,`jquery-ui-1.10.2.custom.js`是jQuery UI库的一个定制版本,它是基于jQuery的用户界面库,提供了丰富的组件和主题,如对话框(Dialog)、日历...

Global site tag (gtag.js) - Google Analytics