2018/03/09(金) [n年前の日記]
#1 [ruby][mruby] Windows上でmrubyのビルドを試したり
以下の記事を読みながら、Windows10 x64 + Visual Studio 2015 Community + bison + Ruby 2.2.6 p396 mingw32版で、mruby がビルドできるのか実験。
_Windows上でmrubyをビルドし動かしてみる - Qiita
_mruby概論(2):“組み込みRuby”こと「mruby」をセットアップしてみよう (1/3) - MONOist(モノイスト)
_mruby/mruby: Lightweight Ruby
おお。スゴイ。あっという間にビルドが終わった。bin/ディレクトリ内に、*.exe ができてる。
mruby hoge.rb を実行したら動いてくれた。なんだか感動。
以下の記事によると、MinGW + MSYS を使ってもビルドできるらしい。MinGW + MSYS もインストールしてある環境なので、試してみたり。
_mrubyをWindows 7(MinGW, msys)でビルドしてみた - 平凡なエンジニアの独り言 はてなブログ出張所
ビルドできてしまった…。
でも、Visual Studio 2015 でビルドした時は、各exeが数百KBという小ささになったのに、MinGW版は、各exeが6〜7MBぐらいになってしまった。かつ、MinGW版は、実行して結果が返ってくるまで待たされる。puts "Hello world" しか書いてないスクリプトも、1秒ぐらい経ってから出力される。何故なんだろうな。
MSYS2 を使ってもビルドできるのかなと試してみたら、コレは途中でエラーになった。
_Windows上でmrubyをビルドし動かしてみる - Qiita
_mruby概論(2):“組み込みRuby”こと「mruby」をセットアップしてみよう (1/3) - MONOist(モノイスト)
_mruby/mruby: Lightweight Ruby
おお。スゴイ。あっという間にビルドが終わった。bin/ディレクトリ内に、*.exe ができてる。
mruby hoge.rb を実行したら動いてくれた。なんだか感動。
以下の記事によると、MinGW + MSYS を使ってもビルドできるらしい。MinGW + MSYS もインストールしてある環境なので、試してみたり。
_mrubyをWindows 7(MinGW, msys)でビルドしてみた - 平凡なエンジニアの独り言 はてなブログ出張所
ビルドできてしまった…。
でも、Visual Studio 2015 でビルドした時は、各exeが数百KBという小ささになったのに、MinGW版は、各exeが6〜7MBぐらいになってしまった。かつ、MinGW版は、実行して結果が返ってくるまで待たされる。puts "Hello world" しか書いてないスクリプトも、1秒ぐらい経ってから出力される。何故なんだろうな。
MSYS2 を使ってもビルドできるのかなと試してみたら、コレは途中でエラーになった。
◎ mrbgemについて勉強。 :
以下のページを眺めながら勉強。
_mrbgemの話それから標準ライブラリの話 - けいぞうのメモ帳
_mrubyのビルド方法 - Qiita
mrubyをビルドするためのファイル一式の中に、 _build_config.rb というファイルがあって、コレを修正してから mruby をビルドすることで、欲しい機能・ライブラリが追加された状態の mruby が出来上がるらしい。で、そういう仕組みを mrbgem と呼んでいる、のかな。たぶんそうなんだろう…。
つまり、一般的なRuby(CRuby?)はガンダムみたいなもんで…。コアファイターの上にガンキャノンの上半身をつけたり、下にガンタンクの下半身をつけたりして、コアファイターを一々作り直すことなく、MS(モビルスーツ)のスペックを変えることができる。
mrubyは、ザク、グフ、ドムみたいなもんで…。電撃が使いたかったら、ザクを改良してグフを開発しないといけないし、ホバー機能が欲しかったら、ドムを作らないといけない。ザクに何かを合体させたら電撃が使えたりホバー機能が使えるようになるわけじゃない。MSそのものを最初から作り替えないといけない。
ますます分かりづらい喩えになってないかコレ。
_mrbgemの話それから標準ライブラリの話 - けいぞうのメモ帳
_mrubyのビルド方法 - Qiita
mrubyをビルドするためのファイル一式の中に、 _build_config.rb というファイルがあって、コレを修正してから mruby をビルドすることで、欲しい機能・ライブラリが追加された状態の mruby が出来上がるらしい。で、そういう仕組みを mrbgem と呼んでいる、のかな。たぶんそうなんだろう…。
つまり、一般的なRuby(CRuby?)はガンダムみたいなもんで…。コアファイターの上にガンキャノンの上半身をつけたり、下にガンタンクの下半身をつけたりして、コアファイターを一々作り直すことなく、MS(モビルスーツ)のスペックを変えることができる。
mrubyは、ザク、グフ、ドムみたいなもんで…。電撃が使いたかったら、ザクを改良してグフを開発しないといけないし、ホバー機能が欲しかったら、ドムを作らないといけない。ザクに何かを合体させたら電撃が使えたりホバー機能が使えるようになるわけじゃない。MSそのものを最初から作り替えないといけない。
ますます分かりづらい喩えになってないかコレ。
[ ツッコむ ]
以上です。