问题标签 [rubinius]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
460 浏览

ruby - Ruby 的 FuckItJS 等价物

他妈的它

Javascript 错误 Steamroller

FuckItJS 使用最先进的技术来确保您的 JavaScript 代码运行,无论您的编译器喜欢与否。

技术

通过称为 Eval-Rinse-Reload-And-Repeat 的过程,FuckItJS 反复编译您的代码,检测错误并将这些行从脚本中删除。为了在如此暴力的过程中生存下来,FuckItJS 在每次迭代后都会重新加载自己,从而允许 onerror 处理程序捕获您编写得非常糟糕的代码中的每一个错误。

我正在确定lib/my_file.rb导致 Rubinius 出现以下错误的代码:

目前我正在评论我的部分代码以查看导致错误的原因。是否有可以自动化此过程的库?

0 投票
2 回答
99 浏览

ruby-on-rails - 如何比较重构前后的 Rails“可执行文件”?

在 C 中,我可以生成一个可执行文件,进行广泛的仅重命名重构,然后再次比较可执行文件以确认可执行文件没有更改。这对于确保重构不会破坏任何东西非常方便。

有没有人用 Ruby 做过类似的事情,尤其是 Rails 应用程序?策略和方法将不胜感激。理想情况下,我可以运行一个脚本来输出某种纯字节码且不会因命名更改而更改的单个文件。我猜 JRuby 或 Rubinus 在这里会有所帮助。

0 投票
1 回答
237 浏览

ruby-on-rails - 我如何干净地去除rubinius?

我使用http://railsinstaller.org/安装了一堆包。rails new myApp然后我通过调用创建了一个rails应用程序,rails server但不幸的是我收到了这个错误:点击这里

所以我想我宁愿删除 rubinius 或者对 ruby​​ 及其所有依赖项进行某种全新安装,但这可能是一个问题,因为我可能会不小心删除一些文件并且不记得它们是什么。

谢谢您的帮助。

0 投票
2 回答
3985 浏览

ruby - Rubinus 或 MRI 1.9.3 (YARV)?

所以,我有几个问题要问,我确实浏览了互联网,但没有太多可靠的答案。大多数博客文章会相互抵消,因为它们都赞扬了不同的事物并且有基准来“证明他们的观点”(我一生中从未见过这么多相互矛盾的基准)。

无论如何,我的问题是:

  • 鲁比尼乌斯真的更快吗?这个明显诚实的亲鲁比尼乌斯的演讲给我留下了深刻的印象。让我有点困惑的另一件事是,很多 Rubinius 是用 Ruby 本身编写的,但不知何故它比 C-Ruby 更快?那么,它一定是该语言的一个非常好的实现!
  • EventMachine 可以与 Ruinius 一起使用吗?据我所知,EventMachine 部分依赖于 Fibers(如果我错了,请纠正我),直到 1.9 才实现。我知道 Rubinius 最终也会支持 1.9。我不介意稍等。
  • C 扩展在 Rubinius 中有效吗?我编写了一个 C 扩展,它将从 TCP 流接收到的二进制消息“序列化”为 Ruby 对象,反之亦然(我认为细节并不重要,但如果它有助于回答这个问题,我会更新帖子)。这可能是很多消息!我设法用 Ruby 编写了相同的代码(尽管一个月后它变得毫无意义),但事实证明它是应用程序中的一个真正瓶颈。所以,我不得不使用 C 作为我的问题的“解决方案”。 编辑:我只记得,我将 C 用于另一项任务,它是数组的命中测试方法。基本上它只是检查一个“点”是否在一个多边形内,在 CRuby 中它是不可能慢的。
  • 如果之前的答案是“否”,那么 Rubinus 中是否有 C 扩展的替代方案?我收集 VM 是用 C++ 编写的,所以那样。

一些“奖励”问题:

  • C-Ruby(2.0+,YARV)会摆脱 GIL 吗?或者至少修改它以使 CRuby 支持真正的并行性?
  • mruby到底是什么?我看到 matz 正在研究它,就描述而言,它看起来非常棒。它与 CRuby(性能方面)有何不同?

我为我向你发动的这场文字风暴道歉!♥

0 投票
2 回答
142 浏览

ruby-on-rails - 如何在 Rubinius 中将 Ruby 1.8.7 升级到 1.9.2

当我编译“ruby -v”命令时它返回,

我应该如何将 ruby​​ 1.8.7 升级到 1.9.2 ?我应该删除 rubinius 吗?

谢谢,

0 投票
1 回答
263 浏览

ruby - 在 CentOS 6.3 上安装 Rubinius 2.0.0-rc1 - 虽然我安装了它,但它抱怨没有找到 libyaml

请不要建议RVM相关的解决方案,我不使用它。我正在从源代码安装 Rubinius。我之前安装libyaml/usr/local. 下文详述的任何以下尝试均失败,未找到共享对象 libyaml-0.so.2:

无需将lib目录指向,lib64因为locate libyaml显示libyaml已安装在/usr/local/lib

0 投票
3 回答
684 浏览

ruby - 使用 Rubinius 为 ruby​​ 对象添加“源”属性

我正在尝试(为了乐趣和利润)添加在 ruby​​ 中检查对象并发现它们的源代码的能力。不是生成的字节码,也不是内部表示的一些反编译版本,而是被解析以创建该对象的实际源。

我学习 Rubinius 的时间很晚,虽然我还没有完全理解它,但我认为我已经取得了一些进展。

不过,我很难弄清楚如何做到这一点。我的第一种方法是简单地将另一个实例属性添加到 AST 结构(例如,一个 ClosedScope 对象)。然后,当在运行时解释字节码时,以某种方式再次提取该属性。

这看起来是一种合理的方法吗?

0 投票
2 回答
844 浏览

ruby - 无法使用 Rubinius 2.0.0 gem 安装赛璐珞

我已将 rvm 设置为

它正确设置了版本

当我尝试

我得到错误

有什么问题?我知道赛璐珞支持 Rubinius,因为它是推荐的解释器。https://github.com/celluoid/赛璐珞

更新:感谢这个链接https://gist.github.com/4123305我明白了

我需要通过 -X19 标志

0 投票
1 回答
484 浏览

ruby - 交叉实现确定性数组#shuffle

可以将随机数生成器传递给它,Array#shuffle从而使随机播放具有确定性。

例如,在 MRI 1.9.3p327 中:

但是,没有指定 Random 的随机数生成器实现。正因为如此,Ruby 的其他实现有不同的结果。

在 Rubinius 2.0.0rc1(1.9.3 发布 2012-11-02 JI)中:

顺便说一句,jruby-1.7.1 使用与 MRI 1.9.3p327 相同的随机数生成器,但这只是偶然,不能保证。

为了实现一致的跨实现确定性随机播放,我想将自定义随机数生成器传递到Array#shuffle. 我认为这将是微不足道的,但事实证明它相当复杂。

这是我在 MRI 中首先尝试的方法:

我期待一个NoMethodError告诉我我需要实现的接口。

有什么见解吗?


更新:

正如@glebm 指出的那样,NotRandominheritedKernel#rand是需要的接口。这很容易解决,但不幸的是没有提供解决方案。

在 RBX 中:

在 MRI 中:

0 投票
1 回答
119 浏览

ruby - Rubinius 语法错误

在使用Rubinius使用LocomotiveCMS时,我遇到了一堆语法错误。一切都是如此。没有人发布关于此的问题,所以我想我会问:我该如何解决这些问题?这是鲁比尼乌斯的问题吗?expecting '|'