免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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:48850
用户头像

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

关注

评论

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

开源技术够用了么?我的 NAS 选型与搭建过程

LeanCloud

开源 NAS

深度解读智能推荐系统搭建之路 | 会展云技术揭秘

京东科技开发者

人工智能 推荐系统

CloudQuery V1.2.0 版本发布

BinTools图尔兹

数据库 sql 编辑器 工具软件

央视呼吁电商双十一少一些套路:应该严打网店套路营销

石头IT视角

给萌新HTML5 入门指南(二)

葡萄城技术团队

5G时代的到来对直播的影响

anyRTC开发者

5G 音视频 WebRTC 直播 RTC

如何在面试中解释关键机器学习算法

计算机与AI

学习 数据科学

JDK8中的新时间API:Duration Period和ChronoUnit介绍

程序那些事

java8 jdk8 新特性 程序那些事 时间API

TensorFlow 篇 | TensorFlow 数据输入格式之 TFRecord

Alex

tensorflow keras dataset tfrecord

英特尔独显终于来了!锐炬®Xe MAX为非凡S3x带来设计师级创作体验

E科讯

帮助企业摆脱困境,名企归乡工程师:能成功全靠有它!

Learun

敏捷开发 快速开发 企业开发 企业应用

23张图!万字详解「链表」,从小白到大佬!

王磊

Java 数据结构与算法

第一届“多模态自然语言处理研讨会”精彩回顾(免费获取PPT)

京东科技开发者

人工智能 自然语言处理

推进AI融合 2020 LF AI & DATA DAY(AI开源日)即将召开

腾讯内容首发:分布式核心原理解析笔记+分布式消息中间件实践笔记PDF版

Java架构追梦

Java 架构 面试 分布式 消息中间件

阿里对Java候选人的面试考察重点,面P7必问(收藏备用)

小Q

Java 学习 架构 面试 高并发

测试攻城狮必备技能点!一文带你解读DevOps下的测试技术

华为云开发者联盟

敏捷开发 测试 瀑布流

甲方日常 44

句子

工作 随笔杂谈 日常

Linux高级编程常用的系统调用函数汇总

哒宰的自我修养

Linux 线程 网络编程 进程 MySQL数据库

接口测试用例编写和测试关注点

测试人生路

接口测试 测试用例

一场关于FLV是否要支持HEVC的争论

wangwei1237

技术文化

颠覆!阿里5位P8大佬分享进阶王者500修炼手册,修三门课程

996小迁

Java 程序员 架构 面试

「排序算法」图解双轴快排

bigsai

排序算法 快速排序 双轴快排

Worktile旗下智能化研发管理工具PingCode 宣布25人以下免费

爱吃小舅的鱼

团队管理 程序人生 敏捷开发 研发管理 研发管理工具

小熊派开发板实践:智慧路灯沙箱实验之真实设备接入

华为云开发者联盟

物联网 IoT 路灯

网易云音乐基于 Flink + Kafka 的实时数仓建设实践

Apache Flink

flink

环球易购数据平台如何做到既提速又省钱?

苏锐

大数据 hdfs S3 CDH 成本优化

架构师训练营 W03 作业

Geek_f06ede

架构师训练

架构师训练营 W03 总结

Geek_f06ede

架构师训练

Linux-技术专题-Linux命令如何进行查看进程

洛神灬殇

【涂鸦物联网足迹】物联网基础介绍篇

IoT云工坊

人工智能 云计算 物联网 云平台 AIOT

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