上記コードで作成したモジュール型変数 obj を knowbug で見ると、
#module Test _a, _b, _c #modinit int a, str b, double c _a = a _b = b _c = c return #global newmod obj, Test, 1, "test", 3.14
次のような dump が確認できます。
このバイナリがどういった構造で並んでいるかご存じの方はいらっしゃいますでしょうか。
dump 0 1 2 3 4 5 6 7 8 9 A B C D E F ---------------------------------------------------- 0000 04 00 01 00 01 00 00 00 01 00 00 00 00 00 00 00 0010 00 00 00 00 00 00 00 00 04 00 00 00 08 78 53 00 0020 66 00 74 00 09 00 00 00 00 00 00 00 20 00 53 00 0030 02 00 01 00 01 00 00 00 01 00 00 00 00 00 00 00 0040 00 00 00 00 00 00 00 00 04 00 00 00 B0 77 53 00 0050 58 83 56 00 0A 00 00 00 00 00 00 00 31 00 37 00 0060 03 00 01 00 01 00 00 00 01 00 00 00 00 00 00 00 0070 00 00 00 00 00 00 00 00 08 00 00 00 58 77 53 00 0080 64 00 65 00 09 00 00 00 00 00 00 00 00 00 00 00
何となく、各モジュール変数が 48 バイト区切りで並んでいて、
それぞれの 1 バイト目はそのモジュール変数の型を表していることまでは理解できたのですが、
他がまったくわかりません。
何かこれについて言及されているドキュメント等ありましたら教えていただけると幸いです。