タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

mrubyに関するkamipoのブックマーク (12)

  • mrubyのバイトコードフォーマット解説 – 他人の空似

    はじめに mrubyのエンジンはソースコードを逐次解釈して実行しているわけではなく、専用のバイトコードに変換して保持し、それをVirtualMachineの上で解釈して実行しています。 であれば当然コンパイル済みバイナリファイルというのも存在するわけで、ならば当然どんな仕組みになっているか気になるわけです。 というわけで、大まかなファイルフォーマットについて調べたので今回説明しようと思います。 2013/11/25当時(git hash: f5bd87b9e6d0d8a84cf866b4847c1416e4f5c622 )の物です。 それ以降のmrubyを使用する場合は以下の解説の通りではない可能性があります。 全体の構造 ヘッダーとセッションの配列からなります。 ヘッダーは必ず一つ、セッションは複数個ですが必ず終端セクションで終わります。 ヘッダー C風に書くとこんな感じ ubig8_t

    kamipo
    kamipo 2013/12/03
  • mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 - Matzにっき(2013-07-31)

    << 2013/07/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1. mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 >> _ mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 Twitterで質問を受けたので、 mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 という解説を行った。が、1つ140文字のTwitterでの解説にはどうしても無理があるので、 こっちでまとめることにする。 まずは、Twitterの発言*1はこんな感じ。 arenaの目的。利用中のオブジェクトはGCに回収されないよう保護

    mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方 - Matzにっき(2013-07-31)
    kamipo
    kamipo 2013/07/31
  • mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方

    すずかぜ@スト6 @suzukaze_jp @matsumotory mrubyで質問です。mrb_gc_arena_save(),mrb_gc_arena_restore()でGCに回収されないようにする?どういう時に使用すればいいでしょうか? 2013-07-31 00:48:15

    mrubyのmrb_gc_arena_save()/mrb_gc_arena_restore()の使い方
    kamipo
    kamipo 2013/07/31
  • 有効なWikiNameではありません

    2019-03-28 Python/インスタンス生成 2018-01-02 Python/クロージャ Pythonを読む 2018-01-01 Python/メソッド呼び出し 2017-12-31 Python/build_class後編 2017-12-30 Python/読解対象とするPythonコードと解析方法 2017-12-24 Python/build_class前編(というよりPyTypeObject) 2017-12-07 Python/ビルトインがビルトインされるまで 2017-12-03 Python/C関数実行とPyObject 2017-10-22 Django/テンプレートシステムを読む(レンダリング) Djangoを読む 2017-10-21 Django/テンプレートシステムを読む(テンプレートのパース) 2017-09-24 Django/テンプレートシステ

  • abコマンドのベンチマークパターンを書けるab-mrubyを作った

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Web屋さんはみんな大好きabコマンドは便利ですが、オプションは複雑で数も多く、複数のホストにそれぞれに対応するオプションを指定してテストしたりすると結構カオスになりがちです。 最近では、httperfやweighttp等のabに変わる次のHTTPベンチマークツールが出てきていますが、やっぱりまだまだ現役で良く使うのはabコマンドだと思います。 そこで、今回はabコマンドの複数のベンチマークオプションのパターンを1つのRubyスクリプトに定義しておいて、それをabコマンドで読み込む事で動的に任意のパターンでベンチマークを行うab-mrubyを作りました。外出しで書いたRubyスクリプトとabコマンドの連携は、ab-mrubyと見てわかるように

    abコマンドのベンチマークパターンを書けるab-mrubyを作った
  • mrubyの今

    Apr 23,2013 QConTokyo 2013 mruby / 1 Apr 23,2013 QConTokyo 2013 • mruby (“ ” ) • mruby (CRuby ) • mruby • mruby (git, github, fork, pull request) • mruby • mruby 2 Apr 23,2013 QConTokyo 2013 • : • • : • GNU debugger TOPPERS mruby 3 Apr 23,2013 QConTokyo 2013 Ruby 4 Apr 23,2013 QConTokyo 2013 5 Apr 23,2013 QConTokyo 2013 6 Apr 23,2013 QConTokyo 2013 • Ruby or • git • 7 Feb 21,2013 ruby mruby 8 mrub

    kamipo
    kamipo 2013/05/29
  • 人間とウェブの未来 - mrubyで簡単にCアプリの設定ファイルが作れるmruby-config作ってみた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 C言語でサーバアプリやクライアントアプリを作っていると、じょじょに規模が大きくなり、アプリの設定を外出ししたいなぁ、なんて思いはじめるのはよくある事だと思います。 でも、なんとなくその設定ファイルのParser書いたり参照のインターフェイスを書くのも面倒だし引数で渡すようにするかぁ、なんて思いはじめたりもします。 でも結局引数が大量に増えだして、そのusage表示もカオスになって面倒になり(更新が止まり)、結局もう一度、「設定ファイル作るかー」なんてことになるのはよくある事だと思います。 そこで、そういう人のために,mrubyを使って簡単に設定ファイル(Rubyで書く)を外出しできるmruby-configというmrbgemを作ってみました。

    人間とウェブの未来 - mrubyで簡単にCアプリの設定ファイルが作れるmruby-config作ってみた
    kamipo
    kamipo 2013/05/22
  • mrubyのGCの仕組みを調べた - ブレ男のブログ

    2013年4月18日木曜日 mrubyのGCの仕組みを調べた 時刻: 0:09 動機 LuaのAPIは、Lua内部で扱われる値に関してスタック上であれこれ操作出来るだけで、値自体を直接取得したり作成することはできない。値を取り出したいときはスタック上のある場所にある値の型を調べて、その型の値を取り出すAPIを呼び出す、という具合になっている。この場合、処理系で扱う値はすべて処理系側で管理されているので、ガベージコレクト(GC)できるのもわからんでもない。 しかしmrubyAPIではスクリプト内部で扱う値をmrb_valueとしてC言語側に直接取り出せる。この場合処理系の管理を逃れてしまうことはないのか。またCの関数でmrubyのオブジェクトを作成した瞬間にGCが走った場合に、まだmrubyで管理している変数からの参照がなくて、解放されてしまったりしないのか。 大昔の事しか知らないけど

  • mruby introduction -- jinbocho.rb #01

    オブジェクト指向で考える アプリケーションアーキテクチャ設計 / Object-Oriented Conference 2020

    mruby introduction -- jinbocho.rb #01
    kamipo
    kamipo 2013/04/20
  • 今日からmrubyをはじめる人へ

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ApacheCon NA 2013に参加し、早めにポートランド国際空港に到着しました。時間があるので、今日(2013年3月2日)からmrubyを始める人へ簡単なチュートリアルをしようと思います。 mrubyというプロジェクト mrubyとは、組み込み機器やアプリ組み込みに最適化された軽量スクリプト言語です。記述方法は既存のRubyのように書くことができます。C言語で書かれたホストアプリにmrubyを組み込むことで、ホストアプリをRubyの記述でコントロールすることができます。例えばmod_mrubyは、RubyでApache APIをつつけるようにmrubyをApacheに組み込むためのモジュールで、ApacheモジュールをRubyで記述する

    今日からmrubyをはじめる人へ
    kamipo
    kamipo 2013/04/03
  • mrubyにC++のクラスを持ち込む

    C++側で定義されているクラスをmrubyに持ち込む方法を調べた。参考にしたのはmruby-time/time.cやmruby/C構造体組み込みを読む - Code Reading Wiki。正しいかどうかは保証できないけれど、一応ちゃんと動いているようです。 C++側になにかクラス class Hoge { public: Hoge(int x) : x_(x) { std::cout << "Hoge::ctor()" << std::endl; } virtual ~Hoge() { std::cout << "Hoge::dtor()" << std::endl; } int x() const { return x_; } private: int x_; }; があったとして、これをmruby側から扱いたい場合には、DATA型を使うといいようだ: #include <mruby

    kamipo
    kamipo 2013/03/31
  • ブレ男のブログ: mrubyのAPIテスト

    2013年3月11日月曜日 mrubyAPIテスト 時刻: 21:51 mrubyをCのプログラムに組み込んで使う方法を調べる。今のところ公式のドキュメントはHello Worldくらいしか用意されてない? 文字列を直接実行 #include <mruby .h> int main() { mrb_state* mrb = mrb_open(); mrb_load_string(mrb, "puts 'hello world'"); mrb_close(mrb); return 0; } // 実行結果: // hello world mrb_open()でコンテキスト作成、mrb_close()で終了 mrb_load_string()で実行 確認用として使う分にはよいだろうが、コンパイルが入るので何度も実行するには向かないでしょう。 C言語からmrubyの関数を呼び出す #incl

    kamipo
    kamipo 2013/03/31
  • 1