我試圖(爲了趣味和利益)添加了檢查ruby中的對象並發現其源代碼的功能。不是生成的字節碼,也不是內部表示的某些反編譯版本,而是被解析以創建該對象的實際源。使用Rubinius將「源」屬性添加到ruby對象
我對Rubinius瞭解得相當晚,雖然我還沒有完全掌握它,但我想我已經取得了一些進展。
雖然我無法弄清楚如何做到這一點。我的第一種方法是簡單地將另一個實例屬性添加到AST結構(例如,一個ClosedScope對象)。然後,在運行時解釋字節碼時,再次將該屬性拉出。
這似乎是一個很好的方法?
您打算如何處理已擴展,曾多次課?我可以看到每種方法都附帶了源代碼的潛力,但在課堂層面上,如果不先爲方法解決問題,那麼看起來有問題。 – dgtized