言語設計のお勉強この広告は、90日以上更新していないブログに表示しています。2014-04-03mrbgemの話それから標準ライブラリの話mruby少なかったmrubyコードリーディングをする際、mruby周りを調べました。その時、よくmrbgemなるものがある事をよく耳にしました。漁っていた時に断片的な情報を拾っていって把握したのです。Qiitaしかし、意外にmrbgem周りの説明をした記事が少なかったのでコードリーディングの記事を書く準備のついでつらつらとまとめておきます。shercoの日記Rubyのrubygemsに対してmrubyのmrbgems名前からしてそんな感じだと思っています。mrubyは最小の処理系に必要な機能をmrbgemでくっつけていく使い方を押しているようで、それをbuild_config.rbで指定してbuild出来るようになっています。Qiita経緯も含めてこちらにありました。詳しいconfigの設定方法も書いてあります。calendarでは外部モジュールとの言い回しが多用されていました。単純にLibraryとだけ書かれています。mrbgem自体の実装は、C拡張とRuby拡張、C&Ruby拡張の3つがあります。書き方としてはRubyで出来ないところはCでやるのが良いとされているようです。逆にあればhttp2やmysql、ロードバランシングとかもできたりとっても楽しい感じです。リリースしましたしかし、コミッタの皆さんは、Rubyで出来る事すべてをmrubyで実現させるつもりもなかったりするのでどうなっていくのかは私にはわかりません。なるようになると思います特徴またmrbgemsの特徴として、処理系と静的リンクをすることがあります。先に書いたちょろっと書いた"必要な機能をmrbgemでくっつけていく使い方"です。この辺がRubygemsとの違いですね。あるにはあるのですがこれも外部モジュール、つまりmrbgemです。"mruby-*"のように書き加えるとmakeの際に含まれます。"git@URL"のように指定するとDLからしてくれる素敵機能もあります。この辺の機能のためにmrbgemsは名前にmruby-*であることが強いられているらしい。mrubyの開発はガンガン行こうぜ!が基本なので処理系内部の変更によって動かなくなっているmrbgemsが割と存在しています。matsumotoryさんがLinux系でこけるものをコメントアウトしたもののCI。GitHubほかにこけるのがあるかは観測してみないと分からない。標準ライブラリの話mrubyはRubyとしての最小の処理系です。普通にmakeするときに用意されているmrbgemsが存在しています。標準ライブラリと言えばよいのかな。build時にリンクするようです。依存関係の解消なんかに使われるようです。これとは別にmruby/mrblib/*にarray.rbclass.rbcompar.rbenum.rberror.rbhash.rbinit_mrblib.ckernel.rbmrblib.rakenumeric.rbprint.rbrange.rbstring.rbといった感じでメソッドが定義されていました。使えるメソッドが知りたかったらこれらのファイルを覗くとよいでしょう。まとめmrbgemsはmrubyを使うときに要になるものだと思います。さんが実装していたりこれも漁っていると楽しいのです。コードリーディングするときはファイル構造を知るのがいいってソースコードを読むための技術が言ってた。mrbgemについて書きながら思ったのはminirakeやRakefile,makefileにbuild_config.rbのことをちゃんと知ってからmrubyコードリーディングするのも一つの近道な気がする。Cacheの設定言語VCL。(1)はてなブログをはじめよう!KeizoBookmanさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。