gpt4 book ai didi

ruby - RubySL 中的 Rubinius

转载 作者:太空宇宙 更新时间:2023-11-03 18:14:09 25 4
gpt4 key购买 nike

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

我开始关注 RubySL,看到 Rubinius 无处不在,我感到有点惊讶。我真的很喜欢 Ruby,并且很好奇为什么 Rubius 出现在大多数 RubySL 中?它似乎与锁定/解锁之类的东西一起使用(例如 https://github.com/rubysl/rubysl-thread/blob/2.0/lib/rubysl/thread/thread.rb )。绝对不是质疑,只是好奇。

最佳答案

RubySL 是 Ruby 标准库的缩写。它是已交付代码包的基本部分,构成了通常所说的 Ruby。标准库提供了您经常需要但不需要成为核心语言一部分的相当基本的东西。

例如,Hash 或 Array 的实现、语言关键字、赋值的工作原理……都是核心语言的一部分。这些通常是用 Ruby 以外的语言实现的。 MRI(常见的 C-Ruby)主要用 C 实现,JRuby 用 Ja​​va 实现。 Rubinius 在 C++ 中很好地实现了这一点,但主要是在 Ruby 本身中。它可以通过从非常简单的基础 VM 引导自身并逐渐使用 Ruby 添加更多内容来实现这一点。

然而,标准库在所有实现中大部分都是用 Ruby 实现的(除了一些异常(exception),主要是出于性能原因)。现在,所有 Ruby 实现现在都有自己的 Ruby 标准库实现,因此在细节上可能有所不同。

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

RubySpec 项目最终被放弃了,现在,其他 Ruby 实现似乎并没有转移到 RubySL gems 来实现他们的标准库。

因此,(这是 TL;DR),RubySL gems 为 Rubinius 项目实现了 Ruby 标准库。因此,预计会在那里到处看到 Rubinius 项目:它们的代码通常不会被其他 Ruby 实现使用。

关于ruby - RubySL 中的 Rubinius,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28930819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com