Updated RubySpec submodule to 9f66d0b1.
[rbx.git] / kernel / bootstrap / vm.rb
blob241ff4d9a333687af31cd7f574faa1652d7d6fb4
1 class Rubinius::VM
2   def self.stats
3     Ruby.primitive :vm_stats
4     raise PrimitiveFailure, "primitive failed"
5   end
7   def self.load_library(path, name)
8     Ruby.primitive :load_library
9     raise PrimitiveFailure, "primitive failed"
10   end
12   def self.reset_method_cache(sym)
13     Ruby.primitive :reset_method_cache
14     raise PrimitiveFailure, "primitive failed"
15   end
17   def self.save_encloser_path
18     Ruby.primitive :save_encloser_path
19     raise PrimitiveFailure, "primitive failed"
20   end
22   def self.restore_encloser_path
23     Ruby.primitive :restore_encloser_path
24     raise PrimitiveFailure, "primitive failed"
25   end
27   def self.coerce_to_array(object)
28     array = object.respond_to?(:to_a) ? object.to_a : [object]
29     raise TypeError.new("`to_a' did not return Array") unless array.is_a?(Array)
30     array
31   end
33   # Semantics of this are very important. ret MUST be returned.
34   def self.perform_hook(obj, meth, arg, ret)
35     # The VM already verified the method exists
36     obj.__send__(meth, arg)
37     return ret
38   end
40   def self.spawn_prim(args)
41     Ruby.primitive :machine_new
42     raise PrimitiveFailure, "primitive failed"
43   end
45   def self.join(id)
46     Ruby.primitive :machine_join
47     raise PrimitiveFailure, "primitive failed"
48   end
50   def self.poll_message
51     Ruby.primitive :machine_get_message
52     raise PrimitiveFailure, "primitive failed"
53   end
55   def self.send_message(id, obj)
56     Ruby.primitive :machine_send_message
57     raise PrimitiveFailure, "primitive failed"
58   end
59 end