我从用户级别使用Ruby,实际上不处理内部问题。我知道Rubinius是“Ruby中的Ruby”,我认为这是一个泛化。最近,我在RubySL中遇到了一个Rubinius错误(不,我没有错误消息)。
我开始关注RubySL,看到Rubinius无处不在,我感到有点惊讶。我真的很喜欢Ruby,只是好奇为什么Rubinius在大多数RubySL中?它似乎与诸如锁/解锁(如https://github.com/rubysl/rubysl-thread/blob/2.0/lib/rubysl/thread/thread.rb )之类的东西一起使用。绝对不是质疑,只是好奇。
发布于 2015-03-08 19:36:04
RubySL是的缩写。它是附带代码包的一个基本部分,它形成了通常被称为Ruby的代码包。标准库提供了您经常需要但不需要成为核心语言一部分的基本内容。
例如,Hash或Array的实现、语言关键字、赋值工作方式、.是核心语言的一部分。它们通常是用Ruby以外的语言实现的。MRI (普通的mostly )主要是用C实现的,JRuby是用Java实现的.Rubinius在C++中很容易实现这一点,但主要是在Ruby本身中实现的。它可以通过从一个非常简单的基本VM引导自身并逐渐添加更多Ruby来实现这一点。
然而,标准库大部分是在所有实现中用Ruby实现的(除了一些例外,主要是出于性能原因)。现在,所有Ruby实现都有自己的Ruby标准库实现,因此在细节上可能有所不同。
Rubinius实现标准库的方法是将其作为单独的gems实现。这个想法是有一天会提供一个通用的标准库,其他实现(包括MRI)都可以使用它。这与特别行政区的努力是一致的。Rubinius社区驱动RubySpec项目,以便为所有Ruby实现提供公共语言规范和测试套件。
RubySpec项目最终被放弃了,现在看来,其他的RubySL实现似乎并没有转移到RubySL宝石来实现他们的标准库。
因此,(这是TL;DR),RubySL gems为Rubinius项目实现了RubySL。因此,人们期望看到Rubinius项目到处都是:其他Ruby实现通常不使用的是他们的代码。
https://stackoverflow.com/questions/28930819
复制相似问题