BT

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

Ruby实现的近况:Ruby规范, 新的设计会议, Rubinius使用C++

| 作者 Werner Schuster 关注 6 他的粉丝 ,译者 贾晓楠 关注 0 他的粉丝 发布于 2008年5月6日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!
许多开发者正在致力于各种Ruby运行时的开发,比如Ruby 1.8.x、Ruby 1.9.x、Rubinius、JRuby、IronRuby,以及其他Ruby实现。为了协调它们的兼容性和未来的Ruby平台,召开了Ruby设计会议

第一次设计会议是在4月21日召开的(查看第一次Ruby设计会议的IRC记录)。讨论的主题包括:

下一次设计会议定在4月30日——查看Ruby Design Wiki来获得下次Ruby设计会议的日程和细节
Ruby规范的工作同样也是两个Ruby Google Summer of Code (GSoC) 2008项目的主题:

Rubinius项目着重强调了RubySpec。其开发者花了大量的时间写出了可执行的Ruby规范。Rubinius最新的进展是Evan Phoenix把内核VM (称为“shotgun”)从C移植到了C++。需要提醒的是,虽然Rubinius的目标是(几乎全部)用Ruby来写一个Ruby实现,但是核心VM还是用C——现在是C++来写的。除了这个用C++写的VM,Evan Phoenix还解释了Rubinius团队为什么要坚持“Ruby in Ruby”理念

现在,Rubinius大约有150人拥有贡献权。他们绝大部分工作都是和内核相关的,因为内核是整个系统中最大的部分。其 中大约有95%的工作是写Ruby代码。这意味着对于几乎所有的贡献者来说,为Rubinius工作就是写Ruby代码。于是对他们来说,这就是Ruby in Ruby。

Brian Ford,也是Rubinius项目中的一员,提供了更多的信息

在新的C++ VM(大体上已完成了)中,我们有12,619行C++代码。而在内核目录中,我们有23,882行——没错——Ruby代码。
 [..]
C VM (称为shotgun)并不是我们最终的目标,下一代的C++ VM也不是。他们只是迈向更高目标过程中的实用步骤。明确地说,我们目前还没有用C实现大量的内核方法。最近我完成了两份重写的工作,引入了许多基元 (primitive:直接访问VM的C代码段)。其中一份工作是查找表(LookupTable),由于在VM中大量使用,所以它是用C写的。而且 Ruby代码也可以使用它,因为我们用Ruby写了很多东西,比如与方法相关的东西以及常量查找。查找表用起来很像一个哈希,而把它与哈希区分开会令哈希 更加单纯,甚至可以让更多的哈希都用Ruby来写。

注意:Evan和Brian的博客文章都回应了由JRuby的Charles Nutter所写一篇文章,文中包括他关于Rubinius的“Ruby in Ruby”理念的争论

查看原文Ruby Implementations Roundup: Ruby Spec, New Design Meetings, Rubinius uses C++

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

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

讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT