Ruby 鲁比锡中的鲁比纽斯

Ruby 鲁比锡中的鲁比纽斯,ruby,rubinius,Ruby,Rubinius,我从用户级别使用Ruby,实际上不涉及内部。我知道Rubinius是“Ruby中的Ruby”,我认为这是一个概括。最近,我在RubySL中遇到了一个Rubinius错误(不,我没有错误消息) 我开始看着鲁比索尔,有点惊讶地看到鲁比纽斯无处不在。我真的很喜欢Ruby,只是好奇为什么Rubinius会出现在RubySL的大部分地方?它似乎用于锁定/解锁(例如)。绝对不是质疑,只是好奇 RubySL是Ruby标准库的缩写。它是附带代码包的一个基本部分,形成了通常所说的Ruby。标准库提供了您经常需要但

我从用户级别使用Ruby,实际上不涉及内部。我知道Rubinius是“Ruby中的Ruby”,我认为这是一个概括。最近,我在RubySL中遇到了一个Rubinius错误(不,我没有错误消息)


我开始看着鲁比索尔,有点惊讶地看到鲁比纽斯无处不在。我真的很喜欢Ruby,只是好奇为什么Rubinius会出现在RubySL的大部分地方?它似乎用于锁定/解锁(例如)。绝对不是质疑,只是好奇

RubySL是Ruby标准库的缩写。它是附带代码包的一个基本部分,形成了通常所说的Ruby。标准库提供了您经常需要但不需要成为核心语言一部分的基本内容

例如,哈希或数组的实现、语言关键字、赋值的工作方式。。。是核心语言的一部分。这些通常是用Ruby以外的语言实现的。MRI(普通的C-Ruby)主要用C实现,JRuby用Java实现。RubNIUS在C++中实现了这个,但主要是在Ruby本身。它可以通过从一个非常简单的基本VM引导自己,并逐渐使用Ruby添加更多内容来实现这一点

然而,在所有实现中,标准库大多是用Ruby实现的(有些例外主要是出于性能原因)。现在,所有Ruby实现都有自己的Ruby标准库实现,因此在细节上可能有所不同

Rubinius实现标准库的方法是将其作为单独的gem实现。其想法是有朝一日提供一个通用标准库,供其他实现(包括MRI)使用。这与Rubinius社区推动项目的努力是一致的,以便为所有Ruby实现提供公共语言规范和测试套件

RubySpec项目最终被放弃,而现在,其他Ruby实现似乎并没有转向RubySL gems来实现其标准库

因此,(这是TL;DR),rubyslgems为Rubinius项目实现了Ruby标准库。因此,预计Rubinius项目将在那里随处可见:其他Ruby实现通常不使用它们的代码