ie-developers / ie-questions

public questions for ie students.
10 stars 0 forks source link

mainオブジェクト #8

Closed kazuminn closed 9 years ago

kazuminn commented 9 years ago

mainオブジェクトって

main = Object.new 的な感じでインスタンス化されているのですか?

hanachin commented 9 years ago

はい。Rubyが起動するときに裏でインスタンス化されています。 具体的にはこのあたり https://github.com/ruby/ruby/blob/v2_1_5/vm.c#L2836,L2838

hanachin commented 9 years ago

MRIだとCレベルでrb_obj_allocという関数を使ってクラスをインスタンス化しています。

hanachin commented 9 years ago

Rubiniusとかだと多分このあたり、でもやってることはいっしょ。 https://github.com/rubinius/rubinius/blob/f846083a15165880ee01b33acdd5bb2ad49887fc/vm/ontology.cpp#L404,L405

hanachin commented 9 years ago

JRubyだとこのあたりかな https://github.com/jruby/jruby/blob/d7cf4962ea47095d28252523fc6d8fd726ebe3c1/core/src/main/java/org/jruby/truffle/runtime/core/CoreLibrary.java#L268

hanachin commented 9 years ago

mrubyだとたぶんこのへん https://github.com/mruby/mruby/blob/15b9771abc985028ec7910726f058e975504a1f0/src/state.c#L276

kazuminn commented 9 years ago

おー。!たくさんありがとうございますーー。 cのコード読んでみます。