タグ

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

  • LLVMを捨てたやつが書く、怪しげなLLVM入門 - miura1729の日記

    >>> @miura1729 RT @yppp: あーあ、llvm使って言語作りたいけどバイトコードの 組み立てかたがわからない・・・・・・、 あとBoehm GCの組み込みかたも・・・・・・、まずはASTを作れって話なんだけどなw ああ、やる気がほしいhttp://twitter.com/repeatedly/status/29599415588 ご指名戴いて嬉しかったのでちょっとまとめてみます。かなり間違い、偏りもあると思いますが、教えてもらえると嬉しいです。 LLVMを使ってコンパイラを書く場合、LLVMの命令を知らないと話にならないのでまずは、LLVMの命令を覚えます。 http://llvm.org/docs/LangRef.html でも、これ全部読んでも余り使わないと思います。とりあえず、 NamedTypes http://llvm.org/docs/LangRef.htm

    LLVMを捨てたやつが書く、怪しげなLLVM入門 - miura1729の日記
    sonots
    sonots 2018/08/31
  • ProcオブジェクトのMarshal(その1) - miura1729の日記

    YTLJitはコンパイル速度を上げるために、コンパイル途中の情報(VMと呼んでいる)をファイルに保存できるようにする予定です。VMはProcオブジェクトを多用しているので、ProcオブジェクトをMarshal出来るようにしました。結構込み入った話で、忘れそうなので仕組みを書いてみます。ProcオブジェクトのMarshalのソースはytljitの ext/ytljit.c lib/ytljit/ytljit/marshal.rbにあります。ytljitのソースコードは、 http://github.com/miura1729/ytljit です。 Procオブジェクトはオブジェクトが生成された環境を保持しているので、ProcオブジェクトをMarshalするにはその環境もMarshalしなければなりなせん。ところが、環境そのものはbindingメソッドで生成できるfirst class obj

    ProcオブジェクトのMarshal(その1) - miura1729の日記
    sonots
    sonots 2015/03/12
  • 1