写点什么

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

  • 2008-05-05
  • 本文字数:1152 字

    阅读完需:约 4 分钟

许多开发者正在致力于各种 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++

2008-05-05 01:48914
用户头像

发布了 33 篇内容, 共 53179 次阅读, 收获喜欢 0 次。

关注

评论

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

Cortex 是什么?

耳东@Erdong

Prometheus Cortex 水平扩展 10月月更

区块链技术在商业领域的新运用-智能合同

CECBC

模块九作业

Mr.He

架构实战营

阿里云云计算助理工程师认证(ACA)50个资源合集和备考题库 易筋 ARTS 打卡 Week 72

John(易筋)

ARTS 打卡计划

接棒运动赛事!工厂里也有热血竞技?

脑极体

''内卷"把我逼成什么样了!气得我把 Github 上所有面试题都整理了一遍!

程序员 架构 面试 后端 java

DjangoTask2

南湖职业技术学院机械狗

微信频繁读取 iOS15 用户的相册?

池建强

微信 隐私

v04.03 鸿蒙内核源码分析(任务调度) | 任务是内核调度的单元 | 百篇博客分析 HarmonyOS 源码

鸿蒙研究站

HarmonyOS 任务栈 OpenHarmony 鸿蒙系统

v05.05 鸿蒙内核源码分析(任务管理) | 任务池是如何管理的 | 百篇博客分析 HarmonyOS 源码

鸿蒙研究站

HarmonyOS OpenHarmony 鸿蒙系统 任务队列

拯救遗留系统:重构函数的 7 个小技巧

Phoenix

重构 java

《C++ Primer Plus第六版》读书笔记

IT蜗壳-Tango

10月月更

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年

程序员 架构 面试 大前端 java

这是我在金九银十收到的第五个 Offer:字节跳动 Java 研发岗

Java 程序员 架构 面试 后端

【LeetCode】合并两个有序链表Java题解

Albert

算法 LeetCode 10月月更

微博评论架构设计

小智

架构训练营

双非本科怎么了,照样拿到阿里offer!分享阿里技术四面+交叉面+HR面难忘经历

Java 程序员 架构 面试 大前端

Sql学习

南湖职业技术学院机械狗

产品设计:娱乐化思维

石云升

产品设计 产品分析 10月月更

架构实战营-模块九

NewBranSTONE

架构实战营

再说JavaScript 的 null 和 undefined

devpoint

null JavaScrip 10月月更

在线HTML转JS/JSON工具

入门小站

工具

产品经理技能手册

俞凡

产品经理 产品管理 认知

自我提升:高效能人士的 7 个习惯学习笔记(三)

程序员架构进阶

读书笔记 自我管理 自我提升 10月月更

区块链+数字经济,我们看到了什么

CECBC

【设计模式】第二篇 - 组合迭代器

Brave

组合模式 迭代器模式 10月月更

风雨兼程,零代码训练营第四期顺利结业

明道云

模块九作业

河马先生

架构实战营

linux之yum源设置代理

入门小站

Linux

【Flutter 专题】33 图解自定义 View 之 Canvas (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

校友录小程序开发笔记三十一:校庆模块设计与实现

CC同学

Ruby实现的近况:Ruby规范, 新的设计会议, Rubinius使用C++_Ruby_Werner Schuster_InfoQ精选文章