エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Ruby Parser開発日誌 (15) - Ruby の NODE を Union から卒業させた - かねこにっき
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Ruby Parser開発日誌 (15) - Ruby の NODE を Union から卒業させた - かねこにっき
まもなくRuby 3.3.0がリリースされますね。 LramaによるBisonの置き換え、named referencesによるparse.... まもなくRuby 3.3.0がリリースされますね。 LramaによるBisonの置き換え、named referencesによるparse.yのリファクタリングなど、parser本体の大きな改善が入ったバージョンになります。 今回はRuby 3.3向けに行った改善のうち「Rubyの抽象構文木のデータ構造の改善」という内部的な改善を紹介します。 問題の背景 RubyのNodeはかつてGCで管理されていました。そのころの名残で全ての種類のNodeがたった一つのRNode構造体を共有しています。 他のNodeへのポインタやメソッド名を表すIDなどはu1, u2, u3というunionで管理しています。 typedef struct RNode { VALUE flags; union { struct RNode *node; ID id; VALUE value; rb_ast_id_tabl