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-FCGI是Ruby语言与FastCGI接口交互的一个库,它使得Ruby应用程序能够与Web服务器(如Apache或Nginx)通过FastCGI协议进行通信。FastCGI是一种持久的、高性能的处理CGI请求的方式,相比于传统的CGI,它可以保持...
2、ruby 1.9正式支持内核多线程机制,可以大大提高ruby作为服务端程序的并发处理能力 3、ruby 1.9还引入了纤程这样的多任务并发处理机制,提供了轻量级并发处理能力。 等等。ruby 1.9.1 的下载地址是:ftp://ftp....
4. **库和框架**:介绍 Ruby 1.9.1 集成的标准库和常用的第三方库,如ActiveRecord、Rails框架等。 5. **性能优化**:给出实践建议,如何利用新特性编写高效的代码。 6. **错误处理和调试**:讨论新错误系统,提供...
- 兼容性问题:VS 2010可能与较新的Ruby版本存在兼容性问题,需要对源代码进行适配。 - 依赖库缺失:Ruby可能依赖于某些特定的库,这些库需要在编译前正确安装。 - 编译错误:由于源代码中的语法或逻辑错误,编译...
在实际应用中,Ruby的灵活性和强大的库支持使其成为Web开发、脚本编写、自动化任务和数据分析等领域的重要工具。Ruby on Rails,一个基于Ruby的流行Web框架,极大地推动了Ruby在Web开发领域的应用。通过Ruby,开发者...
"ruby-1.9.1-p0-i386-mswin32.zip" 是一个针对Windows操作系统编译的Ruby编程环境的压缩包,发布于2009年6月20日,当时是Ruby 1.9.1版本的最新版。 Ruby 1.9.1是一个重要的版本更新,引入了许多改进和新特性,包括...
在使用PCL1.9.1和VTK 8.1开发基于点云的图像界面程序时,你需要理解以下几个关键知识点: 1. **点云数据结构**:PCL中的点云数据主要存储在`pcl::PointCloud`模板类中,它可以容纳不同类型的点数据,如XYZ坐标、...
在Windows环境下安装Ruby 1.9,通常会涉及到编译环境的配置,因为Ruby的源码需要...然而,务必注意保持Ruby及其依赖库的更新,以确保系统的安全性和兼容性。同时,理解这些库的作用有助于在遇到问题时进行排查和解决。
mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe
jquery1.9.1 支持低版本ajax (ajax前jQuery.support.cors=true )
执行命令`ruby -v`检查Ruby版本,应显示为`ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]`,表明安装成功。 #### 自定义升级策略 **优势分析** 手动编译安装的最大优势在于提供了极高的灵活性。当新的...
Ruby 1.9.1 是 Ruby 的一个稳定分支,它引入了许多改进和新特性,提升了性能并增强了语言的规范性。 Ruby 1.9.1 的主要更新包括: 1. **编码支持**:Ruby 1.9 引入了对多种字符编码的支持,如 UTF-8 和 ISO-8859-1...
6. **Ruby的异常处理**:Ruby使用begin-rescue-end语句进行异常处理,允许捕获并处理运行时错误,确保程序的健壮性。 7. **标准库和第三方库**:Ruby拥有丰富的标准库,同时社区提供了大量第三方库(Gems),涵盖了...
jQuery 1.9.1是该库的一个重要版本,它在1.9.0的基础上修复了一些已知问题,提高了稳定性和兼容性。这个版本的目标是保持向后兼容,同时移除一些老旧的API,以便鼓励开发者采用更现代的JavaScript实践。对于那些依赖...
jQuery 1.9.1作为一款强大的JavaScript库,不仅提供了丰富的DOM操作和事件处理功能,还优化了性能,确保了向后兼容性。理解和掌握jQuery 1.9.1的核心特性,将有助于提高开发效率,创建出更富有交互性的Web应用程序。...
总之,jQuery 1.9.1作为JavaScript库的重要版本,其强大功能和广泛兼容性使其在Web开发领域中占据了重要地位。无论是新手还是经验丰富的开发者,都可以从中受益,提高开发效率,创造更优秀的Web应用。
在本文中,我们将深入探讨jQuery 1.9.1版本,这是一个重要的里程碑,因为它对一些过时的功能进行了清理,同时也保持了向后兼容性。我们将通过分析提供的文件`jquery-1.9.1.js`、`jquery-1.9.1-vsdoc.js`和`jquery-...
《libiconv-1.9.1:字符编码转换库的深入解析》 在信息技术领域,字符编码的处理是至关重要的。libiconv是一个广泛使用的开源库,它提供了...通过深入理解和应用libiconv,我们可以构建更加健壮和兼容性强的应用程序。
此外,1.9.1版本修复了许多已知的bug,确保了库的稳定性。 其次,`jquery-ui-1.10.2.custom.js`是jQuery UI库的一个定制版本,它是基于jQuery的用户界面库,提供了丰富的组件和主题,如对话框(Dialog)、日历...