mruby/ビルドシステムとmrbgemsを読む
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[mrubyを読む]]
#contents
*はじめに [#p39344e1]
当初のmrubyはMakefileによるビルドシステムだったのですが、...
ちなみに、mrubyにはオリジナルのRakeを元にしたminirakeが同...
matzからのリクエストは、RubyGemsは使わず素のCRuby 1.8, 1...
なので、rakeの古いバージョンを元にminirakeを作ってます。
ということだそうです。
*Rakefile [#m7af0d4b]
まず、Rakefileをざーっと眺めます。すると、MRubyというオブ...
*tasks/mruby_build.rake [#ue9e10d9]
Rakefile本体にはMRubyの定義はないのでloadされているmruby_...
*build_config.rb [#t98d5e69]
Rakefileに戻って、Rakefile中ではMRubyオブジェクト((モジュ...
build_config.rbではMRuby::Buildオブジェクトがnewされてい...
*MRuby::Build#initialize(tasks/mruby_build.rake) [#c6068a...
ではMRuby::Build#initializeを見てみましょう。デフォルトの...
*MRuby::LoadGems#gem(tasks/mruby_build_gem.rake) [#p6a39c...
build_config.rbではgemメソッドを使って組み込むmrbgemを指...
さて、gemメソッドがどこに書かれているかですが、mruby_buil...
*依存関係の構築 [#hb98b327]
Rakefileに戻ってファイルの後ろの方を眺めると依存関係を設...
他でも書きましたが、mrubyのビルドは二段構成になっており、
+まず、コアライブラリの構築(src/*.cをコンパイルしてlibmr...
+コアライブラリを使ってmrbcをビルド
+mrbcを使ってRubyで書かれたライブラリ(mrblibにあります)...
+コアライブラリとバイトコードをlibmrubyにまとめる
という流れになっています。
という流れだったのですが、mrbgemsの導入により、ステップ3...
*mrbgemsのコンパイル [#yc99e404]
余談ですがCRubyでは標準ライブラリであるTimeとかMathとかも...
さて、mrbgemsをコンパイルするにあたって見るべきファイルは...
**MRuby::Gem::Specification#setup(tasks/mrbgem_spec.rake)...
tasks/mrbgems.rakeでは先ほどgemメソッドで組み込むように設...
最後にgem_init.cを生成しています。gem_init.cではGENERATED...
-Cで書かれたmrbgemコードがある場合はmrb_<mrbgem名>_gem_in...
-Rubyで書かれたmrbgemコードがある場合はバイトコードにコン...
mrb_<mrbgem名>_gem_init(mrb_state *mrb)はmrbgem作者が作成...
**tasks/mrbgems.rake [#mfe0bc22]
個々のmrbgemのビルド設定ができたので、まとめ役のmrbgems.r...
*おわりに [#f606482b]
去年(2012年)の春にmrubyを読んだときに比べ、mrbgemsの導...
終了行:
[[mrubyを読む]]
#contents
*はじめに [#p39344e1]
当初のmrubyはMakefileによるビルドシステムだったのですが、...
ちなみに、mrubyにはオリジナルのRakeを元にしたminirakeが同...
matzからのリクエストは、RubyGemsは使わず素のCRuby 1.8, 1...
なので、rakeの古いバージョンを元にminirakeを作ってます。
ということだそうです。
*Rakefile [#m7af0d4b]
まず、Rakefileをざーっと眺めます。すると、MRubyというオブ...
*tasks/mruby_build.rake [#ue9e10d9]
Rakefile本体にはMRubyの定義はないのでloadされているmruby_...
*build_config.rb [#t98d5e69]
Rakefileに戻って、Rakefile中ではMRubyオブジェクト((モジュ...
build_config.rbではMRuby::Buildオブジェクトがnewされてい...
*MRuby::Build#initialize(tasks/mruby_build.rake) [#c6068a...
ではMRuby::Build#initializeを見てみましょう。デフォルトの...
*MRuby::LoadGems#gem(tasks/mruby_build_gem.rake) [#p6a39c...
build_config.rbではgemメソッドを使って組み込むmrbgemを指...
さて、gemメソッドがどこに書かれているかですが、mruby_buil...
*依存関係の構築 [#hb98b327]
Rakefileに戻ってファイルの後ろの方を眺めると依存関係を設...
他でも書きましたが、mrubyのビルドは二段構成になっており、
+まず、コアライブラリの構築(src/*.cをコンパイルしてlibmr...
+コアライブラリを使ってmrbcをビルド
+mrbcを使ってRubyで書かれたライブラリ(mrblibにあります)...
+コアライブラリとバイトコードをlibmrubyにまとめる
という流れになっています。
という流れだったのですが、mrbgemsの導入により、ステップ3...
*mrbgemsのコンパイル [#yc99e404]
余談ですがCRubyでは標準ライブラリであるTimeとかMathとかも...
さて、mrbgemsをコンパイルするにあたって見るべきファイルは...
**MRuby::Gem::Specification#setup(tasks/mrbgem_spec.rake)...
tasks/mrbgems.rakeでは先ほどgemメソッドで組み込むように設...
最後にgem_init.cを生成しています。gem_init.cではGENERATED...
-Cで書かれたmrbgemコードがある場合はmrb_<mrbgem名>_gem_in...
-Rubyで書かれたmrbgemコードがある場合はバイトコードにコン...
mrb_<mrbgem名>_gem_init(mrb_state *mrb)はmrbgem作者が作成...
**tasks/mrbgems.rake [#mfe0bc22]
個々のmrbgemのビルド設定ができたので、まとめ役のmrbgems.r...
*おわりに [#f606482b]
去年(2012年)の春にmrubyを読んだときに比べ、mrbgemsの導...
ページ名: