都2023了!我不允许你还不了解AIGC!立即报名 了解详情
写点什么

Ruby 1.9.1 程序库兼容性纵览

  • 2009-02-16
  • 本文字数:876 字

    阅读完需:约 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

2009-02-16 11:342110
用户头像

发布了 80 篇内容, 共 18.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

Elasticsearch聚合的嵌套桶如何排序(1),java大学基础教程

Java 程序员 后端

Windows11 搭建openvino_tensorflow环境

IT蜗壳-Tango

IT蜗壳 OpenVINO 11月日更 openvino_tensorflow

flume基本概念与操作实例(常用source),kalilinux视频教程

Java 程序员 后端

Redis Pipeline

new life

ELK太重?试试KFC日志采集,2021大厂Java面试经验

Java 程序员 后端

Flink的sink实战之四:自定义,Java开发笔试题目

Java 程序员 后端

Git 常用命令,使用Docker部署Spring-Boot项目

Java 程序员 后端

Docker系列(1)--Docker原理及安装,java线程池回收原理

Java 程序员 后端

讲分布式唯一id,这篇文章很实在

秦怀杂货店

Java 分布式 分布式ID

Elasticsearch聚合的嵌套桶如何排序,java架构和框架

Java 程序员 后端

ELK + Filebeat + Kafka 分布式日志管理平台搭建,最新java面试题及答案

Java 程序员 后端

【高并发】两种异步模型与深度解析Future接口

冰河

Java 并发编程 多线程 高并发 异步编程

【Promise 源码学习】第二篇 - Promise 功能介绍与特性分析

Brave

源码 Promise 11月日更

外包学生管理系统详细架构设计

天天向上

架构实战营

Dubbo服务消费者调用过程,35岁老年程序员的绝地翻身之路

Java 程序员 后端

所谓的新型“数字人民币”诈骗,这里有几个疑点

CECBC

各地力推“链长制”,区块链让产业链更加安全可靠

CECBC

Geospatial-地理空间,java面试基本知识

Java 程序员 后端

Elasticsearch 如何做到快速检索 - 倒排索引的秘密,springboot项目实战

Java 程序员 后端

Elasticsearch中URI Search和RequestBody Search分析(1)

Java 程序员 后端

Redis 实现附近的人,全靠 GEO 数据结构让我邂逅女神

码哥字节

redis BitMap geohash NoSQL 数据库 11月日更

Flink处理函数实战之一:深入了解ProcessFunction的状态(Flink-1

Java 程序员 后端

Elasticsearch中的Term查询和全文查询,重磅

Java 程序员 后端

ElasticSearch集群的概念及搭建过程,Java程序员晋升路线

Java 程序员 后端

WEB本地存储:localStorage、Web SQL Database、IndexedDB

devpoint

Cookie indexedDB LocalStorage sessionStorage 11月日更

git(3)Git 分支,mysql语句优化面试题

Java 程序员 后端

Dubbo如何支持本地调用?InJvm方式解析,农民工看完都会了

Java 程序员 后端

【死磕Java并发】-----Java内存模型之happens-before

chenssy

11月日更 死磕 Java 死磕 Java 并发

进击的Java(一)

ES_her0

11月日更

Dubbo服务治理之灰度发布方案(版本发布控制影响范围)

Java 程序员 后端

Flink SQL Client综合实战,深入理解java虚拟机百度云

Java 程序员 后端

  • 需要帮助,请添加网站小助手,进入 InfoQ 技术交流群
Ruby 1.9.1程序库兼容性纵览_Ruby_Werner Schuster_InfoQ精选文章