私は (楽しみと利益のために) Ruby でオブジェクトを検査し、そのソース コードを発見する機能を追加しようとしています。生成されたバイトコードではなく、内部表現の逆コンパイルされたバージョンではなく、そのオブジェクトを作成するために解析された実際のソースです。
私は Rubinius について学ぶのがかなり遅かったので、まだ完全には理解できていませんが、いくらか進歩したと思います。
しかし、私はこれを行う方法を理解するのに苦労しています。私の最初のアプローチは、単に別のインスタンス属性を AST 構造 (たとえば、ClosedScope オブジェクト用) に追加することでした。次に、実行時にバイトコードが解釈されるときに、どういうわけかその属性を再度引き出します。
これは健全なアプローチのように思えますか?