我正在阅读Rubinius源代码,我不断地遇到这样的方法:
def self.do_something
Rubinius.primitive :vm_do_something
raise SomeError, "primitive failed to do something"
end例如,内核/alpha.rb.和内核/引导/Rubinius.rb都有很多这样的功能。它们到处都是,我似乎找不到定义Rubinius.primitive的地方。因为我不知道它是干什么的,所以我很难理解Rubinius是如何完成任务的。
发布于 2014-03-02 00:10:12
我在freenode.net #rubinius上学习了IRC,并了解到Rubinius.primitive的行为是用调用C++代码来替换调用的方法。通常跟随对原语调用的引发调用只有在原语失败时才执行。
https://stackoverflow.com/questions/20777211
复制相似问题