标签: rubinius

Ruby VM之间的差异

主要Ruby VM有哪些优点/缺点(比如功能,兼容性,性能和怪癖?)我知道还有一些额外的功能,比如能够通过JRuby使用Java接口.这些也有助于注意.在这一点上,任何VM都有明显的优势吗?在什么情况下?

ruby ironruby rubinius jruby

3
推荐指数
2
解决办法
2077
查看次数

在Rubinius中实现mixins在哪里?

在Rubinius源代码中,负责包含模块的代码是什么?(具体来说,将模块放置为对象类的超类.)

ruby rubinius

3
推荐指数
1
解决办法
137
查看次数

rbx测试失败,"请求二进制安装,但没有红宝石可供下载"

我正在写一个宝石,我的目标是Ruby,JRuby和Rubinius.我正在使用Travis CI来构建我的库.当我定位Ruby和JRuby时,我的gem正确构建,但是当针对Rubinius时,它不起作用.这是错误:

Using worker: worker-linux-2-2.bb.travis-ci.org:travis-linux-13   
git.1   
$ git clone --depth=50 --branch=master git://github.com/maxgale/actor.git maxgale/actor
Cloning into 'maxgale/actor'...
remote: Counting objects: 74, done.
remote: Compressing objects: 100% (48/48), done.
remote: Total 74 (delta 29), reused 64 (delta 22)
Receiving objects: 100% (74/74), 12.06 KiB | 0 bytes/s, done.
Resolving deltas: 100% (29/29), done.
Checking connectivity... done.

$ cd maxgale/actor
git.3
$ git checkout -qf f83f26d85f69e9c2965a4faa2065dd37ac789c36
$ rvm use rbx --install --binary --fuzzy
rbx is not installed - installing.
Searching for binary rubies, …
Run Code Online (Sandbox Code Playgroud)

ruby rubinius travis-ci

3
推荐指数
1
解决办法
416
查看次数

Rubinius和JRuby怎么可能这么慢?

我决定看看迭代一系列哈希需要多长时间.以下是代码:

pairs = [{name: "firstname", value: "string"},{name: "lastname", value: "string"},{name: "country", value: "string"},{name: "city", value: "string"},{name: "state", value: "string"},{name: "company", value: "string"},{name: "year", value: "string"},{name: "political_affiliation", value: "string"},{name: "social_security_number", value: "string"}] * 1000
blank = {}

start = Time.now
pairs.each do |pair|
  blank[pair[:name]] = pair[:value]
end

p Time.now - start
Run Code Online (Sandbox Code Playgroud)

通过从循环之前的当前时间减去循环之后的当前时间来计算时间.

根据代码中的数学计算,这是YARV 2.1.1中计算所花费的时间:

0.001962017
Run Code Online (Sandbox Code Playgroud)

这是Rubinius 2.2.6花了多长时间:

0.022598
Run Code Online (Sandbox Code Playgroud)

和jRuby 1.7.12

0.022317
Run Code Online (Sandbox Code Playgroud)

据说Rubinius和jRuby比YARV具有性能优势.为什么他们花费的时间几乎是执行相同基本操作的12倍?这是正常的还是我有不正确的配置?

ruby benchmarking rubinius jruby microbenchmark

3
推荐指数
1
解决办法
1742
查看次数

我如何知道我使用的是哪个 Ruby 解释器?

我看过这个帖子,但我的问题可能更基本:

鉴于该线程 [1] 中接受的答案的响应是给我的,"/Users/username/.rvm/rubies/ruby-2.3.0/bin/ruby"我怎么知道那是 MRI、JRuby 等?如果是其他主要口译员,会是什么样子?


[1] 为了节省几秒钟, RbConfig.ruby

ruby rubinius jruby mri

3
推荐指数
2
解决办法
1607
查看次数

使用Rubinius为ruby对象添加"source"属性

我试图(为了娱乐和利润)添加检查ruby中的对象并发现其源代码的能力.不是生成的字节码,也不是内部表示的某些反编译版本,而是解析为创建该对象的实际源.

我很快就学习了Rubinius,虽然我还没有充分了解它,但我认为我已经取得了一些进展.

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

这看起来像一个合理的方法吗?

ruby compiler-construction rubinius

2
推荐指数
1
解决办法
665
查看次数

改变Rubinius Ruby版本

无论如何都要更改Rubinius(rbx)默认使用的Ruby版本,而不必每次都通过标志指定选项?:

rbx -X19
Run Code Online (Sandbox Code Playgroud)

ruby rubinius rvm ruby-1.9

2
推荐指数
1
解决办法
661
查看次数