写点什么

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

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

关注

评论

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

融云猿桌派备忘录,那些被程序员 Pick 的工作方式

融云 RongCloud

程序员 IM

使用bds搭建我的世界官方基岩版服务器(windows篇)

Daimon

虎符交易所Hoo研究院:元宇宙中的Decentraland是什么?

区块链前沿News

元宇宙 Hoo虎符 虎符研究院

从读写角度,带你了解数仓的IO基本框架

华为云开发者联盟

io GaussDB(DWS) IO框架 行存 列存

PendingIntent重定向:一种针对安卓系统和流行App的通用提权方法——BlackHat EU 2021议题详解 (下)

安第斯智能云

安全 安卓

【CAD】入门系列完

謓泽

3月月更

网络协议之:socket协议详解之Unix domain Socket

程序那些事

socket Netty 程序那些事 3月月更

实用机器学习笔记二十八:迁移学习

打工人!

学习笔记 迁移学习 机器学习算法 3月月更

全面解析云智慧数据中心统一运管解决方案

云智慧AIOps社区

安全 运维自动化 数据处理 数据可视化 监控工具

Open Harmony移植:build lite编译构建过程

华为云开发者联盟

编译 OpenHarmony build lite 芯片开发板

TPC TiKV:Hackathon 中最硬核项目是如何炼成的?| TPC 战队访谈

PingCAP

sql TiDB

这些DDD"术语"你知道吗?

idonkeyliu

DDD

测试1

Journeyman

对微博系统中“微博评论”的高性能高可用计算架构的一点思考

晨亮

「架构实战营」

图解|从根儿上理解MySQL的索引

蝉沐风

MySQL 索引 B+树

手绘流程图,教你WSL2与Docker容器无缝互相迁移

华为云开发者联盟

Docker 容器 WSL2 迁移

写给后端开发工程师的H5前端开发知识

得物技术

前端 Web 可视化 后端开发 交互

中小企业如何搭建在线客服中心?

小炮

面试突击31:什么是守护线程?它和用户线程有什么区别?

王磊

java面试

兴业+民生上岸面试经验分享

暖蓝笔记

3月程序媛福利 3月月更

iuap助力澳洋集团打造主数据管理平台

用友BIP

用友 用友iuap

测试2

Journeyman

智能问答机器人

DS小龙哥

智能问答机器人 3月月更 智能对话机器人

ICT的圣杯(二):数字生活的另类想象

脑极体

阿里智能运维实践|阿里巴巴DevOps实践指南

阿里云云效

云计算 阿里云 DevOps 云原生 智能运维

微信外H5跳转小程序——<JumpApp/>组件(vue项目)

CRMEB

Java基础重要面试题(二)

逆锋起笔

java面试 java基础 3月月更

一文详解Redis键过期策略

华为云开发者联盟

redis key 惰性删除 定期删除 键过期

Nacos源码分析(一)之线程池的巧妙设计,可以薅到自己的项目里

刘祥

SpringCloud Alibaba

mark: Docker 容器镜像删除

webrtc developer

融云获 CSDN 技术影响力之星评选「年度技术品牌奖」

融云 RongCloud

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