mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-03 08:07:25 -04:00
T3: head types canonical in include/struct_types.h; include graph, try-file fixes; log and summary
This commit is contained in:
+155
-155
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"head": "a8cdd934b",
|
||||
"head": "54c26d08a",
|
||||
"stamp": "588cbf38c6e4",
|
||||
"generated": "2026-09-29 20:13",
|
||||
"generated": "2026-09-29 21:30",
|
||||
"aliases": [
|
||||
"main",
|
||||
"md_SC07_004",
|
||||
@@ -21,176 +21,176 @@
|
||||
"main": {
|
||||
"objects": 85,
|
||||
"identical": 85,
|
||||
"seconds": 9.106000000000002,
|
||||
"mean_s": 0.107
|
||||
"seconds": 8.487000000000005,
|
||||
"mean_s": 0.1
|
||||
},
|
||||
"md_SC07_004": {
|
||||
"objects": 1,
|
||||
"identical": 1,
|
||||
"seconds": 0.635,
|
||||
"mean_s": 0.635
|
||||
"seconds": 0.565,
|
||||
"mean_s": 0.565
|
||||
},
|
||||
"ov_SC03_015": {
|
||||
"objects": 32,
|
||||
"identical": 32,
|
||||
"seconds": 5.823000000000002,
|
||||
"mean_s": 0.182
|
||||
"seconds": 5.006000000000002,
|
||||
"mean_s": 0.156
|
||||
},
|
||||
"ov_SC04_011": {
|
||||
"objects": 28,
|
||||
"identical": 28,
|
||||
"seconds": 5.0409999999999995,
|
||||
"mean_s": 0.18
|
||||
"seconds": 4.24,
|
||||
"mean_s": 0.151
|
||||
}
|
||||
},
|
||||
"per_object_seconds": {
|
||||
"build/src/800.o": 0.969,
|
||||
"build/src/800_b.o": 0.121,
|
||||
"build/src/800_b_2.o": 0.395,
|
||||
"build/src/800_b_o0a.o": 0.087,
|
||||
"build/src/800_c.o": 0.253,
|
||||
"build/src/800b2.o": 0.104,
|
||||
"build/src/apicard1.o": 0.078,
|
||||
"build/src/apicard2.o": 0.081,
|
||||
"build/src/apicard3.o": 0.104,
|
||||
"build/src/apicard4.o": 0.087,
|
||||
"build/src/apicard5.o": 0.113,
|
||||
"build/src/apicard6.o": 0.114,
|
||||
"build/src/apicard7.o": 0.106,
|
||||
"build/src/boot.o": 0.129,
|
||||
"build/src/gap.o": 0.08,
|
||||
"build/src/libapi1.o": 0.101,
|
||||
"build/src/libapi2.o": 0.091,
|
||||
"build/src/libc2_1.o": 0.084,
|
||||
"build/src/libc2_2.o": 0.097,
|
||||
"build/src/libcd1.o": 0.096,
|
||||
"build/src/libcd2.o": 0.084,
|
||||
"build/src/libetc.o": 0.091,
|
||||
"build/src/libgpu.o": 0.092,
|
||||
"build/src/libgpu2.o": 0.101,
|
||||
"build/src/libgs1.o": 0.096,
|
||||
"build/src/libgs2.o": 0.077,
|
||||
"build/src/libgs3.o": 0.086,
|
||||
"build/src/libgs4.o": 0.093,
|
||||
"build/src/libgs5.o": 0.094,
|
||||
"build/src/libgs6.o": 0.103,
|
||||
"build/src/libgs7.o": 0.08,
|
||||
"build/src/libgs8.o": 0.099,
|
||||
"build/src/libgte1.o": 0.089,
|
||||
"build/src/libgte10.o": 0.078,
|
||||
"build/src/libgte11.o": 0.088,
|
||||
"build/src/libgte12.o": 0.079,
|
||||
"build/src/libgte13.o": 0.082,
|
||||
"build/src/libgte14.o": 0.078,
|
||||
"build/src/libgte15.o": 0.089,
|
||||
"build/src/libgte16.o": 0.095,
|
||||
"build/src/libgte17.o": 0.106,
|
||||
"build/src/libgte18.o": 0.092,
|
||||
"build/src/libgte19.o": 0.082,
|
||||
"build/src/libgte2.o": 0.091,
|
||||
"build/src/libgte20.o": 0.084,
|
||||
"build/src/libgte21.o": 0.084,
|
||||
"build/src/libgte22.o": 0.083,
|
||||
"build/src/libgte23.o": 0.092,
|
||||
"build/src/libgte24.o": 0.088,
|
||||
"build/src/libgte25.o": 0.124,
|
||||
"build/src/libgte26.o": 0.119,
|
||||
"build/src/libgte27.o": 0.096,
|
||||
"build/src/libgte28.o": 0.081,
|
||||
"build/src/libgte29.o": 0.099,
|
||||
"build/src/libgte3.o": 0.084,
|
||||
"build/src/libgte30.o": 0.088,
|
||||
"build/src/libgte4.o": 0.084,
|
||||
"build/src/libgte5.o": 0.082,
|
||||
"build/src/libgte6.o": 0.097,
|
||||
"build/src/libgte7.o": 0.092,
|
||||
"build/src/libgte8.o": 0.096,
|
||||
"build/src/libgte9.o": 0.09,
|
||||
"build/src/libmcrd1.o": 0.097,
|
||||
"build/src/libmcrd2.o": 0.09,
|
||||
"build/src/libpad1.o": 0.089,
|
||||
"build/src/libpad2.o": 0.093,
|
||||
"build/src/sgap.o": 0.085,
|
||||
"build/src/sgap_2.o": 0.083,
|
||||
"build/src/sgap_3.o": 0.098,
|
||||
"build/src/sgap_4.o": 0.099,
|
||||
"build/src/sgap_5.o": 0.089,
|
||||
"build/src/sgap_6.o": 0.085,
|
||||
"build/src/sgap_8.o": 0.096,
|
||||
"build/src/snd1.o": 0.093,
|
||||
"build/src/snd10.o": 0.083,
|
||||
"build/src/snd11.o": 0.079,
|
||||
"build/src/snd12.o": 0.09,
|
||||
"build/src/snd2.o": 0.084,
|
||||
"build/src/800.o": 0.836,
|
||||
"build/src/800_b.o": 0.107,
|
||||
"build/src/800_b_2.o": 0.408,
|
||||
"build/src/800_b_o0a.o": 0.078,
|
||||
"build/src/800_c.o": 0.228,
|
||||
"build/src/800b2.o": 0.089,
|
||||
"build/src/apicard1.o": 0.084,
|
||||
"build/src/apicard2.o": 0.107,
|
||||
"build/src/apicard3.o": 0.077,
|
||||
"build/src/apicard4.o": 0.074,
|
||||
"build/src/apicard5.o": 0.069,
|
||||
"build/src/apicard6.o": 0.087,
|
||||
"build/src/apicard7.o": 0.095,
|
||||
"build/src/boot.o": 0.1,
|
||||
"build/src/gap.o": 0.089,
|
||||
"build/src/libapi1.o": 0.089,
|
||||
"build/src/libapi2.o": 0.067,
|
||||
"build/src/libc2_1.o": 0.071,
|
||||
"build/src/libc2_2.o": 0.067,
|
||||
"build/src/libcd1.o": 0.099,
|
||||
"build/src/libcd2.o": 0.076,
|
||||
"build/src/libetc.o": 0.08,
|
||||
"build/src/libgpu.o": 0.078,
|
||||
"build/src/libgpu2.o": 0.094,
|
||||
"build/src/libgs1.o": 0.076,
|
||||
"build/src/libgs2.o": 0.1,
|
||||
"build/src/libgs3.o": 0.113,
|
||||
"build/src/libgs4.o": 0.087,
|
||||
"build/src/libgs5.o": 0.083,
|
||||
"build/src/libgs6.o": 0.096,
|
||||
"build/src/libgs7.o": 0.093,
|
||||
"build/src/libgs8.o": 0.078,
|
||||
"build/src/libgte1.o": 0.094,
|
||||
"build/src/libgte10.o": 0.082,
|
||||
"build/src/libgte11.o": 0.092,
|
||||
"build/src/libgte12.o": 0.088,
|
||||
"build/src/libgte13.o": 0.091,
|
||||
"build/src/libgte14.o": 0.095,
|
||||
"build/src/libgte15.o": 0.106,
|
||||
"build/src/libgte16.o": 0.1,
|
||||
"build/src/libgte17.o": 0.098,
|
||||
"build/src/libgte18.o": 0.129,
|
||||
"build/src/libgte19.o": 0.117,
|
||||
"build/src/libgte2.o": 0.083,
|
||||
"build/src/libgte20.o": 0.086,
|
||||
"build/src/libgte21.o": 0.1,
|
||||
"build/src/libgte22.o": 0.093,
|
||||
"build/src/libgte23.o": 0.088,
|
||||
"build/src/libgte24.o": 0.109,
|
||||
"build/src/libgte25.o": 0.101,
|
||||
"build/src/libgte26.o": 0.099,
|
||||
"build/src/libgte27.o": 0.082,
|
||||
"build/src/libgte28.o": 0.102,
|
||||
"build/src/libgte29.o": 0.075,
|
||||
"build/src/libgte3.o": 0.086,
|
||||
"build/src/libgte30.o": 0.094,
|
||||
"build/src/libgte4.o": 0.09,
|
||||
"build/src/libgte5.o": 0.086,
|
||||
"build/src/libgte6.o": 0.084,
|
||||
"build/src/libgte7.o": 0.082,
|
||||
"build/src/libgte8.o": 0.075,
|
||||
"build/src/libgte9.o": 0.079,
|
||||
"build/src/libmcrd1.o": 0.086,
|
||||
"build/src/libmcrd2.o": 0.07,
|
||||
"build/src/libpad1.o": 0.076,
|
||||
"build/src/libpad2.o": 0.08,
|
||||
"build/src/sgap.o": 0.081,
|
||||
"build/src/sgap_2.o": 0.07,
|
||||
"build/src/sgap_3.o": 0.076,
|
||||
"build/src/sgap_4.o": 0.079,
|
||||
"build/src/sgap_5.o": 0.079,
|
||||
"build/src/sgap_6.o": 0.075,
|
||||
"build/src/sgap_8.o": 0.081,
|
||||
"build/src/snd1.o": 0.078,
|
||||
"build/src/snd10.o": 0.065,
|
||||
"build/src/snd11.o": 0.068,
|
||||
"build/src/snd12.o": 0.078,
|
||||
"build/src/snd2.o": 0.075,
|
||||
"build/src/snd3.o": 0.079,
|
||||
"build/src/snd4.o": 0.083,
|
||||
"build/src/snd5.o": 0.075,
|
||||
"build/src/snd6.o": 0.089,
|
||||
"build/src/snd7.o": 0.083,
|
||||
"build/src/snd8.o": 0.078,
|
||||
"build/src/snd9.o": 0.088,
|
||||
"build/src/md_SC07_004/md_SC07_004.o": 0.635,
|
||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.167,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.621,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.472,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.086,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.075,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.161,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.188,
|
||||
"build/src/snd4.o": 0.076,
|
||||
"build/src/snd5.o": 0.068,
|
||||
"build/src/snd6.o": 0.079,
|
||||
"build/src/snd7.o": 0.07,
|
||||
"build/src/snd8.o": 0.067,
|
||||
"build/src/snd9.o": 0.07,
|
||||
"build/src/md_SC07_004/md_SC07_004.o": 0.565,
|
||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.143,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.552,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.421,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.068,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.064,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.131,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.172,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.143,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.108,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.089,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.23,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.09,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.212,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.127,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.083,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.08,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.116,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.587,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.318,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.122,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.259,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.079,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.125,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.089,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.207,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.245,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.07,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.337,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.09,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.081,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.069,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.097,
|
||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.157,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.52,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.441,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.067,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.077,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.146,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.188,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.139,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.101,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.076,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.225,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.096,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.219,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.123,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.098,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.099,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.137,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.433,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.262,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.129,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.213,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.091,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.121,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.092,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.131,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.51,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.077,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.073
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.09,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.069,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.2,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.079,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.182,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.102,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.068,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.071,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.096,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.5,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.284,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.109,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.22,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.063,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.112,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.07,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.179,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.215,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.056,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.296,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.065,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.059,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.058,
|
||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.069,
|
||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.125,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.462,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.37,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.055,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.057,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.123,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.161,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.123,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.077,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.061,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.192,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.076,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.179,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.104,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.074,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.079,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.108,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.386,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.236,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.107,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.182,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.065,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.099,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.072,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.106,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.444,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.055,
|
||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.062
|
||||
},
|
||||
"ok": true,
|
||||
"seconds": 2.5
|
||||
"seconds": 2.2
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
+593
-582
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
type_census — 2026-09-13T04:43:04Z at bd7d32ec2 (src stamp a777e79c16d8d251, tool ac697cecc1); 7305 files (4121 TUs + 3181 headers), 99113 function definitions; walk 41.0 s, total 200.6 s
|
||||
type_census — 2026-09-30T02:49:11Z at 42a9cd7f5 (src stamp a777e79c16d8d251, tool a7b191db86); 7305 files (4121 TUs + 3181 headers), 99113 function definitions; walk 91.5 s, total 292.5 s
|
||||
|
||||
DEFINITIONS 7255 struct/union bodies (+0 enums): canonical header 1179 · .c file-scope 4085 · .c block-scope 1904 · per-function shared headers 63 · other headers 24 · include/ 0
|
||||
3143 distinct names · 527 distinct layouts (0 unresolved) · 206 duplicate classes covering 2823 names (tier 1 122 same-named, tier 2 84 opaque; 46 layout-twin classes / 1867 names kept apart) · 585 exact-text classes / 4460 copies · 40 VARIANT names (>1 layout) · 141 dead canonical names · 74 canonical names redefined in .c · 1781 scalar/alias typedefs · 157 forward decls
|
||||
@@ -8,9 +8,10 @@ CAST SITES deref 502985 = P 408978 + I 60664 + X 13800 + M 19543 (+ A addres
|
||||
top bases: a0(param) 92255 · param_1(param) 81577 · arg0(param) 67704 · p(local) 18043 · p(param) 11784 · s0(local) 10368 · cach(local) 8246 · s1(local) 7137 · buf(local) 7060 · flag(local) 5453 · *(s32 *)(a0 + 0x20)(nested) 5215 · iVar2(local) 5160 · dst(local) 4874 · iVar1(local) 4836 · iVar3(local) 4693 · e(local) 3918
|
||||
DECLARATIONS 99113 function definitions (1894 K&R) · 4279270 extern function declarations over 12088 names (3777 spelled >1 way) · 6415 names with >1 body text · 1078766 data externs over 55548 symbols (18493 typed >1 way) · asm-label aliases 5158 (165 names) · builtins {'memcpy': 301, 'abs': 1} · attributes {'packed': 63, 'aligned': 12}
|
||||
lying declarations 1796 over 76 callees {'K&R-empty': 1373, 'narrow': 423} · K&R sites (marked, counted apart) 5262 over 199 callees · cross-binary (the fleet's definitions disagree, this binary has none) 418 over 96 callees
|
||||
STRUCT MAP 18213 types explain 498866/502985 deref sites (99.2 %); unassigned 4119; 4013 types span ≥2 bodies (444923 sites), 14200 single-body; types with conflicts 740, suspect 10
|
||||
merges by evidence {'param': 36454, 'assign': 14622, 'assign&': 1070, 'ret-of': 3397, 'arg': 10596, 'return': 1528, 'arg&': 270, 'field': 9452}; vetoed {'arg-conduit': 115277, 'ret-of-multisource': 6686, 'assign-multisource': 34568, 'assign&-multisource': 12501, 'arg&-conduit': 14628, 'arg-no-overlap': 15254, 'arg&-no-overlap': 3142, 'field-multisource': 7008, 'ret-of': 269, 'assign': 336, 'arg': 360, 'assign&': 47, 'return': 4, 'field': 4192}
|
||||
Unkstruct_800D3888 sites 185747 bodies 28889 fields 236 size≥0x24c width-conflicts 50 sign-mixed 82 merges {'param': 12112, 'arg': 8563, 'assign': 7581, 'field': 3115} at D_800D3888,D_80126B58,D_80181280 ptr D_8006386C,D_80074778,D_80074780
|
||||
STRUCT MAP 18739 types explain 498866/502985 deref sites (99.2 %); unassigned 4119; 4064 types span ≥2 bodies (441211 sites), 14675 single-body; types with conflicts 727, suspect 11
|
||||
merges by evidence {'param': 36454, 'assign': 14664, 'ret-of': 3373, 'arg': 10168, 'return': 1524, 'assign&': 1050, 'arg&': 270, 'field': 9613}; vetoed {'arg-conduit': 115277, 'ret-of-multisource': 6686, 'assign-multisource': 34568, 'arg&-conduit': 14628, 'field-multisource': 7008, 'ret-of': 679, 'assign&-multisource': 12501, 'arg&-no-overlap': 3455, 'assign': 347, 'arg-no-overlap': 43013, 'assign&': 69, 'arg': 182, 'return': 12, 'field': 3224}
|
||||
Unkstruct_800B5CB8 sites 107580 bodies 11184 fields 134 size≥0x10c width-conflicts 50 sign-mixed 55 merges {'param': 9448, 'assign': 7399, 'arg': 6952, 'field': 2622} at D_800B5CB8,D_800D3888,D_80181448 ptr D_8006386C,D_80074778,D_80074780
|
||||
Unkstruct_80126B58 sites 65397 bodies 17047 fields 175 size≥0x24c width-conflicts 50 sign-mixed 60 merges {'param': 2100, 'arg': 1086, 'assign&': 106, 'field': 51} at D_80126B58 ptr D_80126B58
|
||||
Unkstruct_8018E71C sites 6745 bodies 396 fields 7 size≥0x10 width-conflicts 0 sign-mixed 0 merges {'param': 18, 'arg': 15, 'assign&': 2} at D_8018E71C
|
||||
Unkstruct_dac960ce sites 4464 bodies 124 fields 13 size≥0x24c width-conflicts 0 sign-mixed 2 merges {'param': 2}
|
||||
Unkstruct_0caecd54 sites 4340 bodies 124 fields 23 size≥0xfe width-conflicts 0 sign-mixed 1 merges {'param': 2, 'assign': 1, 'return': 1}
|
||||
@@ -18,16 +19,15 @@ STRUCT MAP 18213 types explain 498866/502985 deref sites (99.2 %); unassigned
|
||||
Unkstruct_a32b99a1 sites 3936 bodies 123 fields 8 size≥0x4b width-conflicts 0 sign-mixed 1 merges {}
|
||||
Unkstruct_8e3dbe51 sites 3930 bodies 131 fields 5 size≥0x4c width-conflicts 0 sign-mixed 1 merges {}
|
||||
Unkstruct_8014A1B0 sites 3778 bodies 542 fields 13 size≥0xfe width-conflicts 0 sign-mixed 1 merges {'field': 13, 'arg': 10, 'param': 10, 'return': 1}
|
||||
Unkstruct_80128EA8 sites 3311 bodies 632 fields 18 size≥0x38 width-conflicts 0 sign-mixed 13 merges {'arg': 23, 'ret-of': 19, 'field': 7, 'param': 2}
|
||||
Unkstruct_ade2e8a0 sites 3271 bodies 196 fields 26 size≥0xa4 width-conflicts 3 sign-mixed 9 merges {'param': 268, 'arg': 133}
|
||||
Unkstruct_80126948 sites 3237 bodies 1083 fields 34 size≥0xa4 width-conflicts 0 sign-mixed 10 merges {'assign': 100, 'arg': 13, 'param': 10, 'assign&': 4} at D_80126948,D_80126E60 ptr D_80114EE8,D_801151D4,D_80126948
|
||||
Unkstruct_1fa9e810 sites 3144 bodies 131 fields 3 size≥0x49 width-conflicts 0 sign-mixed 0 merges {}
|
||||
Unkstruct_30b21035 sites 3100 bodies 124 fields 13 size≥0x54 width-conflicts 0 sign-mixed 0 merges {}
|
||||
GLOBAL BLOCKS 2124 runs of ≥4 adjacent scalar D_ symbols (14253 symbols): 0x800cf10c+0x34 ×29 (D_800CF10C..D_800CF13C) · 0x800a6580+0x3a ×27 (D_800A6580..D_800A65B8) · 0x801998a4+0x57 ×24 (D_801998A4..D_801998FA) · 0x80199840+0x56 ×23 (D_80199840..D_80199895) · 0x801a9608+0x50 ×22 (D_801A9608..D_801A9654) · 0x801ab708+0x54 ×21 (D_801AB708..D_801AB758) · 0x801b0df0+0x4b ×21 (D_801B0DF0..D_801B0E3A) · 0x801b83a0+0x4e ×21 (D_801B83A0..D_801B83ED)
|
||||
PARKED (P36) 24 classes / 453 bodies / 691 needed sites → .run/P37/census/parked.tsv; needs {'signature': 13, 'struct': 7, '?': 4}; 22 PARK names are minimum-lever banks
|
||||
CONTROLS 4/4: player_block_widths OK (D_80078E8C:4/4 D_80078EB2:2/2 D_80078EB4:2/2 D_80078EB6:2/2 D_80078EB8:2/2 [doc-disputed D_80078F08: code 4 vs actor-struct.md 2] [doc-disputed D_80078F0C: code 4 vs actor-struct.md 2]) · matrix_layouts OK (MATRIX=32 MATRIX_L48=48) · prim_layout_class OK (defs in 1192 files, 2 spellings, 1192/1192 in one layout (64 B)) · tu_conflict_D_800A651C OK (s32:1202 | u8[]:9 | OtBlk[]:9 | OtBlk_80016450[]:8 | s32[]:7)
|
||||
CONTROLS 4/4: player_block_widths OK (D_80078E8C:4/4 D_80078EB2:2/2 D_80078EB4:2/2 D_80078EB6:2/2 D_80078EB8:2/2 D_80078F08:4/4 D_80078F0C:4/4) · matrix_layouts OK (MATRIX=32 MATRIX_L48=48) · prim_layout_class OK (defs in 1192 files, 2 spellings, 1192/1192 in one layout (64 B)) · tu_conflict_D_800A651C OK (s32:1202 | u8[]:9 | OtBlk[]:9 | OtBlk_80016450[]:8 | s32[]:7)
|
||||
|
||||
duplicate-layout classes (top 12): 8B×293 names (488 defs): GTESVec, GVec8, SIn_8017E95C, SV… | 8B×202 names (0 defs): Blk8L, Blk8S16, Blk8U, Blk8_80126940… | 32B×170 names (277 defs): M32_8017F154, M32_80188094, MATRIX, MATRIX2… | 8B×153 names (341 defs): Blk8_801807DC, Blk8_8018453C, COL_8001EFE0, MoveT… | 32B×129 names (0 defs): B20, Blk20, Blk20_800CB68C, Blk20_8016DF5C… | 4B×111 names (0 defs): B4, B4_80165140, B4_8017F154, B4_80181970… | 64B×91 names (1428 defs): Prim_8016E7C8, Prim_8016E7C8_8016B6BC, Prim_8016E7C8_8016B9F8, Prim_8016E7C8_8016C2C4… | 8B×82 names (0 defs): B8, B8_17F474, B8_80165140, B8_801851A8… | 8B×63 names (211 defs): Ang_8017E95C, DVEC_80183534, SOut_8017E95C, SVEC… | 4B×60 names (68 defs): PTAG_85910, PTag, PTag293C, PTag_1412A8… | 8B×59 names (0 defs): Bc8_80180E0C, CdFileLoc, Cmd_801805C8, M8_8016B6BC… | 8B×54 names (0 defs): Args_80182194, Blk8, Blk8017FD54, Blk8_801A6AD0…
|
||||
VARIANT names (top 12): Prim×5, V8×4, Blk8×4, Rec×4, St×4, S×4, Ent×3, Vec8×3, Obj×3, V4×2, Blk16×2, CdReq×2
|
||||
duplicate-layout classes (top 12): 8B×293 names (488 defs): GTESVec, GVec8, SIn_8017E95C, SV… | 8B×202 names (0 defs): Blk8L, Blk8S16, Blk8U, Blk8_80126940… | 32B×170 names (277 defs): M32_8017F154, M32_80188094, MATRIX, MATRIX2… | 8B×153 names (341 defs): Blk8_801807DC, Blk8_8018453C, COL_8001EFE0, MoveT… | 32B×129 names (0 defs): B20, Blk20, Blk20_800CB68C, Blk20_8016DF5C… | 4B×111 names (0 defs): B4, B4_80165140, B4_8017F154, B4_80181970… | 64B×91 names (1428 defs): Prim_8016E7C8, Prim_8016E7C8_8016B6BC, Prim_8016E7C8_8016B9F8, Prim_8016E7C8_8016C2C4… | 8B×82 names (0 defs): B8, B8_17F474, B8_80165140, B8_801851A8… | 8B×63 names (211 defs): Ang_8017E95C, DVEC_80183534, SOut_8017E95C, SVEC… | 4B×60 names (68 defs): PTAG_85910, PTag, PTag293C, PTag_1412A8… | 8B×59 names (0 defs): Bc8_80180E0C, CdFileLoc, Cmd_801805C8, M8_8016B6BC… | 16B×54 names (0 defs): B16, B16_8017CDE4, B16_80183ED8, B16_801841C8…
|
||||
VARIANT names (top 12): Prim×5, Rec×4, Blk8×4, St×4, S×4, V8×4, Vec8×3, Obj×3, Ent×3, Blk16×2, CdReq×2, Blk4×2
|
||||
|
||||
type_census: 7255 definitions (527 layouts, 206 duplicate classes, 40 variant camps) · 502985 cast sites in 69493 bodies over 8 base classes (4 forms + A, coverage OK) · 1796 lying declarations / 76 callees (+5262 K&R sites, +418 cross-binary apart) · controls 4/4
|
||||
struct_map: 18213 types over 18213 clusters explain 498866/502985 sites (99.2 %); 4119 unassigned sites; 740 types with conflicts
|
||||
struct_map: 18739 types over 18739 clusters explain 498866/502985 sites (99.2 %); 4119 unassigned sites; 727 types with conflicts
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# The struct map — the types the fleet's cast sites need (Phase 37 T1)
|
||||
|
||||
> **Generated by `tools/type_census.py` at `3ac7abee7` (2026-09-30T02:38:06Z); never typed (R75).** Every raw pointer-cast dereference in `src/` was assigned to a base (a parameter, a local, a global by value or by address, an absolute address) and the bases were clustered by EVIDENCE only — the same global symbol, an argument passed to a callee's parameter, an assignment or return, a pointer field read, a shared body's fleet-wide identity — never by a similar offset signature. Each cluster is one type the tree needs. Names are placeholders (`Unkstruct_<addr>`: the lowest global instance's address, else the lowest member function's); fields are placeholders (`unk<HEX>`) until Phase 38 cites evidence.
|
||||
> **Generated by `tools/type_census.py` at `42a9cd7f5` (2026-09-30T02:49:11Z); never typed (R75).** Every raw pointer-cast dereference in `src/` was assigned to a base (a parameter, a local, a global by value or by address, an absolute address) and the bases were clustered by EVIDENCE only — the same global symbol, an argument passed to a callee's parameter, an assignment or return, a pointer field read, a shared body's fleet-wide identity — never by a similar offset signature. Each cluster is one type the tree needs. Names are placeholders (`Unkstruct_<addr>`: the lowest global instance's address, else the lowest member function's); fields are placeholders (`unk<HEX>`) until Phase 38 cites evidence.
|
||||
|
||||
**18739 types explain 498866 of 502985 dereference sites (99.2 %); 4119 sites have a base the census could not classify; 727 types carry a width conflict.** Merges by evidence: param 36454, assign 14664, arg 10168, field 9613, ret-of 3373, return 1524, assign& 1050, arg& 270.
|
||||
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# T3 log — head-type layouts and canonical files
|
||||
|
||||
Attempts: 1 (expert-fable, handed off at context threshold; progress archived to `logs/T3.progress1.md`), 2 (expert-fable, this log).
|
||||
|
||||
## Timeline
|
||||
- a1: read plan Context/Interfaces/Rationale, task T3, tasks/T1.md, tasks/T2.md. Census refreshed with `--sites` into `.run/P37/census` (restruct's hard-coded input dir) at 42a9cd7f5 (`census_t3` → `.run/logs/census_t3.log`): the two heads separate again (`Unkstruct_800B5CB8` 107,580 sites/11,184 bodies; `Unkstruct_80126B58` 65,397/17,047; 18,739 types). The P37 T4e census had them merged as `Unkstruct_800D3888` on a stale `body_base_type.json`.
|
||||
- a1: hypothesis "Unkstruct_80078E00 exists in the preview/map" rejected: preview ov.h holds 800B5CB8, 80126B58, 8018E71C, dac960ce, 0caecd54, f8ed2b9f; no cluster at 0x80078E00; `D_80078E00` 0 occurrences in src. `.run/P38/T3/player_vs_heads.py`: of 9 scalar player globals, 1 agrees with 80126B58, 0 with 800B5CB8; both heads have s32 at +0xB4 where hp_current is u16. So the player block is not an instance of either head; the code's record is `Blk98_80029274` (0x98 at 0x80078E78, src/800.c) / `Blk80078E78` (resident_jr_800D00E4.c:546) / `u8 D_80078E78[]` in 880 TUs.
|
||||
- c1 (coder-opus55, done, 5aaa25154, `logs/T3.c1.md`): `tools/head_types.py` — max-site split, weighted-interval DP over layout ∪ conflicts, `--header`, `--decisions`, `--selftest`; `include/struct_types.h` generated block for both heads; `docs/struct-map-decisions.md` skeleton + generated per-offset block; `include/common.h:64` includes struct_types.h; `CANON_HEADERS = (engine_types.h, include/struct_types.h)`. audit-types 26 (0 in the new file), selftests 24/54, R22 green.
|
||||
- a1: hypothesis "a type in include/ is visible to restruct" rejected: `delever.py:663-674` resolved includes relative-only and never scanned include/ (retriever-code answer, no report).
|
||||
- c2 (coder-opus55, blocked on two pre-existing `--try-file` crashes, committed e4341ee11, `logs/T3.c2.md`): `tools/delever.py includers()` follows `-Iinclude` (relative first, else include/x; scans include/*.h; cache key "I|"); hand-written `Unkstruct_80078E78` (0x98, evidence-named fields) in struct_types.h; `src/800.c:8` `typedef Unkstruct_80078E78 Blk98_80029274;` (byte-identical, kept); decisions doc's three hand sections filled. Hypothesis "the crashes come from the new include graph" rejected: reproduced with HEAD~1's graph. R22 green.
|
||||
- c3 (coder-opus55, done, 1a35655ab, `logs/T3.c3.md`): restruct `pass_hint` (:522-531 skips non-str rows; classify_residual emits aligned mnemonic rows as `pairs`, regs as `regs`); `drop_overlaps` (:698-710) makes nested-base overlapping edits KEPT(overlap-edit) instead of `Refuse:`; +2 selftests (56); snapshot-baseline at e4341ee11 (7,428 objects, 218/218) + calibrate 146/146 identical, positive control DIFFERS; `--selftest --real` 61/61 OK; linked-control OK.
|
||||
- a1 exemplar proofs, all `final IDENTICAL`, 0 TYPE-NOT-VISIBLE (`.run/logs/t3c3_try_1..9.log`): 800B5CB8 → ov_SC06_032_jr_80182890 (MEMBERS 123, S2 7), ov_SC02_027_jr_8017D898 (193/4), md_SC07_004 (220/17), md_SC07_003 (82/2), src/800.c main (108/10); 80126B58 → ov_MAIN_012_jr_8015A3C8 (104/5), ov_SC03_107_jr_8015A3C8 (102/4), md_MAIN_046 (24/3), md_MAIN_036 (15/2). 80126B58 has 0 main bodies in the map (`.run/P38/T3/bodies_by_space.py`), so no main exemplar exists for it.
|
||||
- a1: verify launched detached as `t3_verify` at 1a35655ab; handoff.
|
||||
- a2: `t3_verify` had exited 1 at its first link: `restruct --selftest --real: 58/59 OK — FAIL the oracle's calibration is current: calibrated at e4341ee11, HEAD is 1a35655ab` (the c3 commit moved HEAD after the calibration). Archived the progress file (54c26d08a).
|
||||
- a2: `t3_verify2` (`.run/logs/t3_verify2.log`): R22 green + `delever_oracle --snapshot-baseline` at 54c26d08a; its bare `--calibrate` refused ("no recipes for []", R43). `t3_verify3` (`.run/logs/t3_verify3.log`): `--calibrate ov_SC04_011 ov_SC03_015 md_SC07_004 main -j 16` 146/146 identical, then the verify command verbatim: rc 0, selftest --real 61/61, extract-all 217/0, check-all 218/0.
|
||||
|
||||
## Retriever questions
|
||||
- retriever-code ×3 in a1 (delever include resolution; restruct try-file crash sites; player-block symbols). Answers under 300 lines; no reports written.
|
||||
|
||||
## Commands and logs
|
||||
- `.run/logs/census_t3.log`, `.run/logs/t3c3_try_1..9.log`, `.run/logs/t3_verify.log` (red, stale calibration), `.run/logs/t3_verify2.log` (the verify of record).
|
||||
- Scratch: `.run/P38/T3/{map_dump.py,bodies_by_space.py,player_vs_heads.py,player_use_widths.py}`, offsets dumps `D_80126B58.offsets.txt`, `D_800B5CB8.offsets.txt`.
|
||||
|
||||
## Gotchas
|
||||
- `restruct --selftest --real` compares the calibration's HEAD to the current HEAD: every commit, even a docs-only one, turns it red until `delever_oracle --snapshot-baseline && --calibrate` re-run on a green tree. The task's own log/summary commit therefore always post-dates the verify.
|
||||
- The expert's Bash hook denies reading tool sources even by range; code facts via retriever-code.
|
||||
- `restruct` reads `.run/P37/census/*` (hard-coded), not `.run/P38/census`; cluster names change when membership changes (lowest AT global).
|
||||
- `--try-file` on the 9 exemplars takes 1.5–125 s each; run through run.sh.
|
||||
- commit_task.sh refuses gitignored-but-tracked paths; `git add -f` them first.
|
||||
- A `/* 0xNN */` field comment nested inside another C comment kills the build (c1).
|
||||
@@ -2,3 +2,4 @@
|
||||
<!-- T<n> | <status> | <title> | <tags> | tasks/T<n>.md | logs/T<n>.md | <research ids, comma-separated> -->
|
||||
T1 | done | phase-start health and baselines | - | tasks/T1.md | logs/T1.md | -
|
||||
T2 | done | --check-structs instrument and actor-struct fix | - | tasks/T2.md | logs/T2.md | -
|
||||
T3 | done | head-type layouts and canonical files | - | tasks/T3.md | logs/T3.md | -
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# T3 — head-type layouts and canonical files
|
||||
|
||||
Status: done | expert: expert-fable (2 attempts, handoff after c3) | ctx-at-completion: n/a | commit: see COMMIT | coder runs: c1 opus55 done (5aaa25154), c2 opus55 blocked→committed (e4341ee11), c3 opus55 done (1a35655ab)
|
||||
Done: the two head types and the player block are each defined once in `include/struct_types.h` (included by `include/common.h`, so visible to ov, main and md_* alike), every overlapping offset resolved by the max-site split with a per-offset record; proven IDENTICAL on 9 exemplar TUs across ov/md/main; restruct now sees include/ and no longer refuses nested-base overlap edits.
|
||||
Files:
|
||||
- include/struct_types.h — generated block (head_types.py) for `Unkstruct_800B5CB8` (0x10C, 101 fields) and `Unkstruct_80126B58` (0x24C, 152 fields); hand-written `Unkstruct_80078E78` (0x98, evidence-named)
|
||||
- include/common.h:64 — `#include "struct_types.h"`
|
||||
- tools/head_types.py — new: max-site split over the struct map's layout ∪ conflicts (weighted-interval DP); `--header`, `--decisions`, `--selftest`
|
||||
- tools/type_census.py:56 — `CANON_HEADERS = ("src/shared/engine_types.h", "include/struct_types.h")`
|
||||
- docs/struct-map-decisions.md — canonical file set, resolution rule, player block, generated per-offset records
|
||||
- tools/delever.py — `includers()` follows `-Iinclude` (relative first, else include/x; scans include/*.h)
|
||||
- tools/restruct.py — `pass_hint` tolerates non-str residual rows; `drop_overlaps` keeps nested-base overlapping edits as KEPT(overlap-edit); +2 selftests (56)
|
||||
- src/800.c:8 — `typedef Unkstruct_80078E78 Blk98_80029274;` (byte-identical)
|
||||
- docs/struct-map.md, .run/P37/census/{struct_map_top.json,type_census.json,type_census.txt}, .run/P36/delever/calibration.json — regenerated outputs
|
||||
Decisions:
|
||||
- binding: head-type width conflicts resolve by the max-site split (the width most sites use wins the offset; the losers are recorded per offset in docs/struct-map-decisions.md); unions are deferred until a reader-facing reason appears (27 union candidates on 800B5CB8, 4 on 80126B58 listed there).
|
||||
- binding: the canonical file for cross-space types is `include/struct_types.h` reached through `include/common.h`, not per-space files — the map shows one layout per head across ov, md_* and main, so a per-space file would be a duplicate by construction.
|
||||
- Field names in the generated blocks stay `unkHEX` (G62); only the player block carries evidence-named fields (docs/actor-struct.md, memory-map §3.4).
|
||||
Deviations:
|
||||
- `Unkstruct_80078E00` was defined as `Unkstruct_80078E78`: no cluster, global or access exists at 0x80078E00; the code's player record starts at 0x80078E78 (`Blk98_80029274`, `Blk80078E78`, `D_80078E78` in 880 TUs) and its widths disagree with both heads. Same object, evidence-correct name; not a redefinition of the clause.
|
||||
- "one main exemplar" holds for 800B5CB8 (src/800.c) but not for 80126B58: the map has 0 main bodies for it (ov 16,773 · md 311 · main 0), so none can exist.
|
||||
- Plan's file list named src/shared/main/ and src/800_shared.h; the canonical file went to include/ instead (see Decisions), and three tool fixes outside the list were needed to prove the layouts (delever include graph; two restruct `--try-file` defects that pre-dated this task).
|
||||
- The verify of record ran after an extra prep step (R22 → snapshot-baseline → calibrate at 54c26d08a): the c3 commit had made the a1 calibration stale.
|
||||
Findings:
|
||||
- head_types: `800B5CB8 fields=101 kept_sites=75717 dropped_sites=25393 conflict_offsets=50 overlaps=167 misaligned=4 union_candidates=27`; `80126B58 fields=152 kept_sites=61599 dropped_sites=1713 conflict_offsets=50 overlaps=71 misaligned=5 union_candidates=4`.
|
||||
- 800B5CB8 drops 25 % of its sites in the split: it is a suspect merged cluster (several layouts keyed to one AT global); 80126B58 drops 1.5 %.
|
||||
- Exemplar proofs, all final IDENTICAL, 0 TYPE-NOT-VISIBLE: 800B5CB8 → ov_SC06_032_jr_80182890, ov_SC02_027_jr_8017D898, md_SC07_004, md_SC07_003, src/800.c; 80126B58 → ov_MAIN_012_jr_8015A3C8, ov_SC03_107_jr_8015A3C8, md_MAIN_046, md_MAIN_036 (`.run/logs/t3c3_try_1..9.log`).
|
||||
- REFUSED bodies in the exemplar runs were per-candidate compile errors (e.g. md_MAIN_036:300 `ar46E98` undeclared), not layout faults.
|
||||
- The P37 T4e census had merged the heads as `Unkstruct_800D3888` through a stale `body_base_type.json`; a fresh `--sites` census separates them. restruct reads `.run/P37/census/*` (hard-coded).
|
||||
- audit-types still 26 (all in engine_types.h, 0 in struct_types.h).
|
||||
Gotchas:
|
||||
- harness: `restruct --selftest --real` reads red after ANY commit (calibration pinned to a HEAD hash); the log/summary commit necessarily post-dates the verify. Re-prep = R22 → `delever_oracle --snapshot-baseline` → `--calibrate ov_SC04_011 ov_SC03_015 md_SC07_004 main -j 16` (bare `--calibrate` refuses; ~4 min total).
|
||||
- harness: a `/* 0xNN */` field comment nested inside another C comment kills the build; generated headers must not wrap offset comments.
|
||||
- generalizable: an include graph that ignores `-I` paths hides every type placed in include/ from the judge ("type not visible" on a visible type); model the compiler's search order (relative, then each -I dir).
|
||||
- harness: the expert's Bash hook denies reading tool sources even by range; use retriever-code.
|
||||
Research: none (three retriever-code answers, no reports)
|
||||
Next task needs: T4 applies `include/struct_types.h` fleet-wide via rung L cycles; `Unkstruct_800B5CB8` is a split candidate for T5 (25 % dropped sites); 80126B58 has no main bodies; recalibrate before any `--selftest --real`; REFUSED bodies are compile errors to fix per candidate, not layout rejects.
|
||||
Verified: .venv/bin/python tools/restruct.py --selftest --real && make clean && make extract-all JOBS=16 && make check-all JOBS=16 → rc 0 at 54c26d08a after recalibration (calibrate 146/146 identical, positive control DIFFERS); restruct --selftest --real 61/61 OK; extract-all 217 extracted, 0 failed of 217; check-all 218 passed, 0 failed of 218 (.run/logs/t3_verify3.log)
|
||||
Full log: phase-ends/current/logs/T3.md
|
||||
Reference in New Issue
Block a user