低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

Ruby VM 综述:Ruby 1.9.2 Preview 1,Ruby 版本收集站点

2009 年 7 月 24 日

下一版 Ruby 将在今年晚些时候发布正式版,现在预览版 1.9.2 Preview 1 已经发布。与此同时还发布了一个详细的更新列表,这个列表给出了 API 的更新情况:

  • Socket API 将更加对象化。
  • 重新实现 Time 并且加强之。现在的 Time 没有 max/min 值,也就是说不存在 2038 年问题。
  • 使用了新的 Random 类来生成随机数序列。
  • merb 用户的好消息:Method#parameter。

列表的最后一项,新的方法Method#parameters对于 Merb 的 action 参数特性是非常必要的。这个特性需要知道一个方法的形式参数的个数和名字。在 Ruby 1.8.x 中,通常使用 ParseTree来实现这个功能,但是由于 ParseTree 已经废弃,不会在 Ruby 1.9.x 中存在,所以 action 参数在 1.9.x 中不可用。权益之计是在 JRuby 和 Ruby 1.9.1 上使用 the methodpara 这个 gem。

现在使用Method#parameters,获得方法的形式参数将会变得非常简单。只需简单地获取方法的句柄,然后调用parameters。例如,方法:

复制代码
def hello(a,b,x=42, *args)

的参数可以表示为:

复制代码
[[:req, :a], [:req, :b], [:opt, :x], [:rest, :args]]

简略浏览 Ruby Trunk ChangeLog (注意:大文件),我们可以看到 Narihiro Nakamura 近期所做出的更新。“Longlife GC patch”(链接地址给出了diff)通过改变 VMGC来以不同的方式处理长生命周期对象。从这些更新中可以看到,在这次发布版中,长生命周期对象看起来像是方法体和内联的缓存条目。在长生命周期空间中,使用 remembered sets 来跟踪变化。

在 1.9.2 中计划加入更多特性;但是究竟哪些特性会加入到最终版本中依然悬而未决。

在数年前,只有一个主流Ruby 版本的时候,编写一个兼容的Ruby 程序库是非常容易的。现在的程序库不但要兼容Ruby 1.9.x,还要兼容其他各种类型的Ruby 实现。

David A. Black 搭建了一个介绍 Ruby 版本的站点 http://ruby-versions.net/

我搭建了一个站点,你可以 ssh 登录上去,检视大量历史及现在的 Ruby 版本以及各种实现,包括 Ruby 1.0 到 1.9.2 的快照、Rubinius、JRuby 和 Ruby 企业版等。

另外一个检查跨版本 Ruby 代码的办法是 MultiRuby ,它会下载相应的 Ruby 版本然后在这些版本上运行代码。

查看英文原文: Ruby VM Roundup: Ruby 1.9.2 Preview 1, Ruby Versions Site

2009 年 7 月 24 日 10:29800
用户头像

发布了 90 篇内容, 共 28.4 次阅读, 收获喜欢 1 次。

关注

评论

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

架构师训练营第二周学习总结

王鑫龙

极客大学架构师训练营

架构师训练营 Week02 学习心得

极客大学架构师训练营

架构师课作业-第二周

Tulane

Week 02- 作业二:学习总结

dean

极客大学架构师训练营

架构师训练营第二周命题作业

hifly

设计模式 极客大学架构师训练营 UML 依赖倒置原则 接口隔离原则

架构师训练营 第二周 个人感想

且听且吟

极客大学架构师训练营

架构师训练营第0期-第2周-命题作业

极客大学架构师训练营

Lesson 2 软件设计原则 心得笔记

edd

架构师训练营——第二周总结

jiangnanage

第2周总结

娄江国

极客大学架构师训练营

week2作业

慢慢来的比较快

架构师训练营第二周总结作业

兔狲

透过本质和发展看编程

拈香(曾德政)

架构师 面向对象设计 极客大学架构师训练营 面向对象设计原则

江帅帅:精通 Spring Boot 系列 05

奈学教育

Spring Boot

聊聊面向对象的设计(OOD)原则

Jerry Tse

极客大学架构师训练营 作业

第2周作业

娄江国

极客大学架构师训练营

架构师训练营-第二周学习总结

牛牛

学习 极客大学架构师训练营

江帅帅:精通 Spring Boot 系列 06

奈学教育

Spring Boot

打造个人品牌的意义

七镜花园-董一凡

发展 求职

第二周作业

晓雷

Python中的下划线

shiziwen

Python

架构师训练营第二周作业

Jerry Tse

极客大学架构师训练营 作业

0期架构Week2作业2

Nan Jiang

架构师第二周

Tulane

江帅帅:精通 Spring Boot 系列 06

古月木易

Spring Boot

江帅帅:精通 Spring Boot 系列 05

古月木易

Spring Boot

什么是依赖倒置原则

老A

极客大学架构师训练营

架构师训练营第二周作业

Geek_2dfa9a

不懂什么是锁?看看这篇你就明白了

cxuan

Java 并发

【架构师第二周作业】依赖倒置

浪浪

依赖倒置原则

互金从业者X

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

Ruby VM综述:Ruby 1.9.2 Preview 1,Ruby版本收集站点-InfoQ