タグ

ブックマーク / qiita.com/sisshiki1969 (2)

  • rurubyのガベージコレクタとアロケータ - Qiita

    さて、今回はrurubyにおけるオブジェクトのメモリ表現と、これをハンドリングするアロケータ・ガベージコレクタについて解説します。 Rubyオブジェクトのデータ構造 まず、動的型付き3オブジェクト指向言語であるRubyにおけるオブジェクトがrurubyの内部でどのように表現されているかを説明します。rurubyのオブジェクトの内部表現はCRubyのそれに大変よく似ていて4、笹田さんの連載記事(WEB+DB PRESS Vol.110「Rubyのウラガワ」)の第1回に大変分かりやすく解説されているので正直そちらを見て頂いた方がよいのですが、今回の題であるメモリ管理の説明の前提として必要な話なので、ここで簡単に説明します。 Value rurubyのオブジェクトは内部的にはValueと呼ぶ8バイトの構造体で表現されます。Rubyオブジェクトの全情報を8バイトで表現するのは当然無理なので、基

    rurubyのガベージコレクタとアロケータ - Qiita
    igrep
    igrep 2021/12/25
    これはありがたい共有
  • ruruby: RustでつくっているRuby - Qiita

    この記事は言語実装 Advent Calendar 20202日目の記事です。前回はκeenさんの「自作コンパイラをブラウザ上で動かす」、次回はmitsuchiさんの「LLVM の Kaleidoscope を育てながら作る」です。 はじめに みなさま、ご無沙汰しております。monochromeです。rurubyという名前でRuby処理系のRustによる実装を行っていて、昨年のAdvent CalendarでRustでつくる(つくれるかもしれない)Rubyという記事を書きました。今回はこの1年間の進捗と、今後の予定などを書いてみます。 レポジトリはこちら。実行にはRustツールチェーン(nightly channel)のインストールが必要です。 https://github.com/sisshiki1969/ruruby 毎度の宣伝ですが、「プログラミング言語処理系が好きな人の集まり」とい

    ruruby: RustでつくっているRuby - Qiita
  • 1