タグ

ブックマーク / mirichi.hatenadiary.org (2)

  • mrubyのVMざっくり解説 - mirichiの日記

    なんとなく、mrubyのVMの基的なところを書いておこうと思ったので。誰かの参考になれば。 大きな仕様的なところは、 ・32bit固定長のバイトコードを解釈して動作する。 ・レジスタをスタックに確保するタイプのレジスタマシンである。従って、スタックの任意の位置をレジスタ番号で指定して直接読み書き可能。 ・メソッドやブロックなどの単位でバイトコードがirep構造体にまとめられている。 みたいな感じ。 スタックの使い方 スタックトップがレジスタのR0となり、以下、R1、R2・・・と名前が付けられる。スタックの型はmrb_valueの配列であり、つまりmrubyオブジェクトが詰まっている。irepのコードを呼び出すとき、スタックの上から順に以下のような情報を積んでから呼ばれる。 (引数が2個あった場合の例) R0 |self | R1 |argument1| R2 |argument2| R3

    mrubyのVMざっくり解説 - mirichiの日記
    iR3
    iR3 2014/04/29
  • mirichiの日記

    「シミュレーションされた宇宙があったとして、その中の生物が別の宇宙をシミュレーションする。そしてその中の生物がまた別の宇宙をシミュレーションし…この関係は無限に続くと考えられる。我々の宇宙がこの連鎖の中に含まれていないというほうが不自然である」なんて言ったのは誰だったか。突っ込みどころは多すぎだけどもちょっと面白かったかな。 非常に寒い日が続いているけどとりあえずDXRuby1.4.7をリリース。現時点でRuby2.5がサポートされている関係上、対応するRubyは2.5~3.0としてある。機能的には変更無し。 大きなポイントはRuby2.6~3.0で64bit版に対応した所で、Ruby2.5だけなぜかDXRubyがコケる症状が出たので2.5だけは32bitのみとなっている。すぐサポート切れるしまあいいか、という感じで。3.0で動くようにはなってるけども、Ractorには対応していない。構造

    mirichiの日記
    iR3
    iR3 2009/08/11
  • 1