mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-30 15:36:55 -04:00
build(phase-35): T3 close — the five twin pairs collapsed onto one source directory each (10 aliases, 166 files deleted); R22 clean fleet run check-all: 218 passed, 0 failed of 218 (309 s); the census after the twins: same-vram backlog 4,667 -> 1,099 classes, 3,580 classes twin-covered, S1 9,081/10,180 satisfied; rules check (P6) done; kit corpus for pads_audit
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
.venv/bin/python tools/tool_census.py --all
|
||||
tool_census: 295 tool files (find == git ls-files) + 34 retired; classes {'LIVE': 235, 'ORPHAN': 31, 'REFERENCED': 29, 'RETIRED': 34}; dictionary rows 329
|
||||
tool_census: wrote docs/tool-index.md
|
||||
tool_census: wrote decomp-architect/tools/MANIFEST.md
|
||||
tool_census: corpus materialised — 361 verbatim copies, 28 pointers, INDEX.md
|
||||
@@ -0,0 +1,5 @@
|
||||
.venv/bin/python tools/tool_census.py --all
|
||||
tool_census: 295 tool files (find == git ls-files) + 34 retired; classes {'LIVE': 235, 'ORPHAN': 31, 'REFERENCED': 29, 'RETIRED': 34}; dictionary rows 329
|
||||
tool_census: wrote docs/tool-index.md
|
||||
tool_census: wrote decomp-architect/tools/MANIFEST.md
|
||||
tool_census: corpus materialised — 361 verbatim copies, 28 pointers, INDEX.md
|
||||
@@ -0,0 +1,476 @@
|
||||
clean: removed build/, expected/, and the regenerated splat tree (asm/, assets/, undefined_*_auto.txt).
|
||||
disc-extract: up to date — extracted/retail/ matches the committed manifest (sha1 e5c6019249dec3c71bb2cf40658a78439dddb037)
|
||||
splat 0.41.0 (powered by spimdisasm 1.41.0)
|
||||
|
||||
0%| | 0/1096 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us): 0%| | 0/1096 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us): 100%|██████████| 1096/1096 [00:00<00:00, 203946.64it/s]
|
||||
|
||||
0%| | 0/47 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us.ram): 0%| | 0/47 [00:00<?, ?it/s]
|
||||
Loading symbols (symbols.us.ram): 100%|██████████| 47/47 [00:00<00:00, 617969.55it/s]
|
||||
|
||||
0%| | 0/2 [00:00<?, ?it/s]
|
||||
Scanning header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Scanning main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Rodata segment '800' may belong to the text segment '800'
|
||||
Based on the usage from the function LzssDecodeSector to the symbol jtbl_80072A38
|
||||
|
||||
The rodata segment '800' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0x6324C, .rodata]
|
||||
- [0x63388, .rodata]
|
||||
- [0x633FC, .rodata]
|
||||
|
||||
|
||||
Rodata segment '800_b' may belong to the text segment '800_b'
|
||||
Based on the usage from the function func_8002B0B4 to the symbol jtbl_80072E44
|
||||
|
||||
Rodata segment '800_b_2' may belong to the text segment '800_b_2'
|
||||
Based on the usage from the function func_8002DC68 to the symbol jtbl_80072F3C
|
||||
|
||||
The rodata segment '800_b_2' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||
File split suggestions for this segment will follow in config yaml format:
|
||||
- [0x63920, .rodata]
|
||||
|
||||
|
||||
Rodata segment '800_c' may belong to the text segment '800_c'
|
||||
Based on the usage from the function func_80035270 to the symbol jtbl_800732A0
|
||||
|
||||
Scanning main: 100%|██████████| 2/2 [00:01<00:00, 1.03it/s]
|
||||
Scanning main: 100%|██████████| 2/2 [00:01<00:00, 1.03it/s]
|
||||
|
||||
0%| | 0/2 [00:00<?, ?it/s]
|
||||
Splitting header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Splitting main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Splitting main: 100%|██████████| 2/2 [00:02<00:00, 1.07s/it]
|
||||
Splitting main: 100%|██████████| 2/2 [00:02<00:00, 1.07s/it]
|
||||
|
||||
0%| | 0/2 [00:00<?, ?it/s]
|
||||
Linker script header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Linker script main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||
Linker script main: 100%|██████████| 2/2 [00:00<00:00, 64.64it/s]
|
||||
Split 340 KB (82.28%) in defined segments
|
||||
header: 2 KB (0.50%) 1 split, 0 cached
|
||||
c: 338 KB (81.78%) 85 split, 0 cached
|
||||
unknown: 0 B (0.00%) from unknown bin files
|
||||
ld_interleave --order: .main island = 8 pieces [53198.data.o, 800.o, 63470.data.o, 800_b.o, 800_b_2.o, 63940.data.o, 800_c.o, 63C4C.data.o]; pre=0 text=85 empties=166 bss=85
|
||||
[ OK ] resident
|
||||
[ OK ] ov_SC01_000
|
||||
[ OK ] ov_SC05_000
|
||||
[ OK ] ov_SC06_000
|
||||
[ OK ] ov_SC04_000
|
||||
[ OK ] ov_SC01_006
|
||||
[ OK ] ov_SC01_005
|
||||
[ OK ] ov_SC02_003
|
||||
[ OK ] ov_SC03_002
|
||||
[ OK ] ov_SC01_077
|
||||
[ OK ] ov_SC02_000
|
||||
[ OK ] ov_SC04_019
|
||||
[ OK ] ov_SC04_018
|
||||
[ OK ] ov_SC03_006
|
||||
[ OK ] ov_SC03_001
|
||||
[ OK ] ov_SC01_001
|
||||
[ OK ] ov_SC01_004
|
||||
[ OK ] ov_SC01_008
|
||||
[ OK ] ov_SC07_000
|
||||
[ OK ] ov_SC01_074
|
||||
[ OK ] ov_SC02_015
|
||||
[ OK ] ov_SC02_004
|
||||
[ OK ] ov_SC02_021
|
||||
[ OK ] ov_SC01_080
|
||||
[ OK ] ov_SC02_016
|
||||
[ OK ] ov_SC01_009
|
||||
[ OK ] ov_SC01_084
|
||||
[ OK ] ov_SC02_026
|
||||
[ OK ] ov_SC02_005
|
||||
[ OK ] ov_SC02_011
|
||||
[ OK ] ov_SC02_039
|
||||
[ OK ] ov_SC02_017
|
||||
[ OK ] ov_SC02_028
|
||||
[ OK ] ov_SC02_031
|
||||
[ OK ] ov_SC02_027
|
||||
[ OK ] ov_SC02_035
|
||||
[ OK ] ov_SC03_003
|
||||
[ OK ] ov_SC02_041
|
||||
[ OK ] ov_SC03_012
|
||||
[ OK ] ov_SC03_011
|
||||
[ OK ] ov_SC03_010
|
||||
[ OK ] ov_SC03_023
|
||||
[ OK ] ov_SC03_013
|
||||
[ OK ] ov_SC03_007
|
||||
[ OK ] ov_SC03_024
|
||||
[ OK ] ov_SC03_014
|
||||
[ OK ] ov_SC03_015
|
||||
[ OK ] ov_SC03_029
|
||||
[ OK ] ov_SC03_031
|
||||
[ OK ] ov_SC03_089
|
||||
[ OK ] ov_SC03_030
|
||||
[ OK ] ov_SC03_092
|
||||
[ OK ] ov_SC03_028
|
||||
[ OK ] ov_SC03_090
|
||||
[ OK ] ov_SC03_091
|
||||
[ OK ] ov_SC03_093
|
||||
[ OK ] ov_SC03_095
|
||||
[ OK ] ov_SC03_096
|
||||
[ OK ] ov_SC03_097
|
||||
[ OK ] ov_SC03_094
|
||||
[ OK ] ov_SC03_101
|
||||
[ OK ] ov_SC03_099
|
||||
[ OK ] ov_SC03_100
|
||||
[ OK ] ov_SC03_098
|
||||
[ OK ] ov_SC03_108
|
||||
[ OK ] ov_SC03_109
|
||||
[ OK ] ov_SC03_110
|
||||
[ OK ] ov_SC03_103
|
||||
[ OK ] ov_SC03_102
|
||||
[ OK ] ov_SC03_112
|
||||
[ OK ] ov_SC03_104
|
||||
[ OK ] ov_SC03_111
|
||||
[ OK ] ov_SC03_114
|
||||
[ OK ] ov_SC03_113
|
||||
[ OK ] ov_SC03_105
|
||||
[ OK ] ov_SC03_115
|
||||
[ OK ] ov_SC03_116
|
||||
[ OK ] ov_SC03_126
|
||||
[ OK ] ov_SC03_117
|
||||
[ OK ] ov_SC04_003
|
||||
[ OK ] ov_SC04_009
|
||||
[ OK ] ov_SC04_008
|
||||
[ OK ] ov_SC03_118
|
||||
[ OK ] ov_SC03_121
|
||||
[ OK ] ov_SC04_006
|
||||
[ OK ] ov_SC03_119
|
||||
[ OK ] ov_SC03_125
|
||||
[ OK ] ov_SC04_004
|
||||
[ OK ] ov_SC04_002
|
||||
[ OK ] ov_SC04_007
|
||||
[ OK ] ov_SC04_005
|
||||
[ OK ] ov_SC04_010
|
||||
[ OK ] ov_SC03_124
|
||||
[ OK ] ov_SC04_012
|
||||
[ OK ] ov_SC05_002
|
||||
[ OK ] ov_SC04_021
|
||||
[ OK ] ov_SC05_006
|
||||
[ OK ] ov_SC05_007
|
||||
[ OK ] ov_SC05_008
|
||||
[ OK ] ov_SC05_004
|
||||
[ OK ] ov_SC05_003
|
||||
[ OK ] ov_SC05_005
|
||||
[ OK ] ov_SC05_001
|
||||
[ OK ] ov_SC04_016
|
||||
[ OK ] ov_SC04_020
|
||||
[ OK ] ov_SC04_015
|
||||
[ OK ] ov_SC04_011
|
||||
[ OK ] ov_SC05_009
|
||||
[ OK ] ov_SC05_011
|
||||
[ OK ] ov_SC05_010
|
||||
[ OK ] ov_SC05_019
|
||||
[ OK ] ov_SC06_015
|
||||
[ OK ] ov_SC06_013
|
||||
[ OK ] ov_SC06_011
|
||||
[ OK ] ov_SC06_016
|
||||
[ OK ] ov_SC06_014
|
||||
[ OK ] ov_SC06_008
|
||||
[ OK ] ov_SC05_018
|
||||
[ OK ] ov_SC06_020
|
||||
[ OK ] ov_SC06_010
|
||||
[ OK ] ov_SC06_025
|
||||
[ OK ] ov_SC06_018
|
||||
[ OK ] ov_SC06_024
|
||||
[ OK ] ov_SC05_017
|
||||
[ OK ] ov_SC06_022
|
||||
[ OK ] ov_SC06_027
|
||||
[ OK ] ov_SC07_008
|
||||
[ OK ] ov_SC06_006
|
||||
[ OK ] md_MAIN_014
|
||||
[ OK ] md_MAIN_013
|
||||
[ OK ] ov_SC07_002
|
||||
[ OK ] md_MAIN_016
|
||||
[ OK ] md_MAIN_015
|
||||
[ OK ] ov_SC07_001
|
||||
[ OK ] md_MAIN_017
|
||||
[ OK ] md_MAIN_018
|
||||
[ OK ] md_MAIN_019
|
||||
[ OK ] md_MAIN_020
|
||||
[ OK ] ov_SC06_030
|
||||
[ OK ] md_MAIN_021
|
||||
[ OK ] ov_SC06_033
|
||||
[ OK ] ov_SC06_032
|
||||
[ OK ] md_MAIN_023
|
||||
[ OK ] md_MAIN_022
|
||||
[ OK ] md_MAIN_024
|
||||
[ OK ] md_MAIN_025
|
||||
[ OK ] md_MAIN_026
|
||||
[ OK ] md_MAIN_027
|
||||
[ OK ] md_MAIN_028
|
||||
[ OK ] ov_SC07_009
|
||||
[ OK ] md_MAIN_029
|
||||
[ OK ] md_MAIN_030
|
||||
[ OK ] md_MAIN_031
|
||||
[ OK ] md_MAIN_032
|
||||
[ OK ] md_MAIN_033
|
||||
[ OK ] md_MAIN_035
|
||||
[ OK ] md_MAIN_034
|
||||
[ OK ] ov_MAIN_012
|
||||
[ OK ] md_MAIN_036
|
||||
[ OK ] ov_SC06_029
|
||||
[ OK ] ov_SC07_011
|
||||
[ OK ] md_MAIN_037
|
||||
[ OK ] md_MAIN_042
|
||||
[ OK ] md_MAIN_041
|
||||
[ OK ] md_MAIN_043
|
||||
[ OK ] md_MAIN_040
|
||||
[ OK ] md_MAIN_038
|
||||
[ OK ] md_MAIN_039
|
||||
[ OK ] md_MAIN_045
|
||||
[ OK ] md_MAIN_047
|
||||
[ OK ] md_MAIN_046
|
||||
[ OK ] md_MAIN_044
|
||||
[ OK ] md_MAIN_008
|
||||
[ OK ] md_MAIN_001
|
||||
[ OK ] md_MAIN_011
|
||||
[ OK ] md_SC03_073
|
||||
[ OK ] md_SC03_074
|
||||
[ OK ] md_SC03_075
|
||||
[ OK ] md_SC03_078
|
||||
[ OK ] md_SC03_077
|
||||
[ OK ] md_SC03_076
|
||||
[ OK ] md_SC03_132
|
||||
[ OK ] md_SC03_079
|
||||
[ OK ] md_SC03_133
|
||||
[ OK ] ov_SC07_010
|
||||
[ OK ] ov_SC07_006
|
||||
[ OK ] ov_SC02_037
|
||||
[ OK ] ov_SC07_007
|
||||
[ OK ] md_SC03_134
|
||||
[ OK ] md_MAIN_003
|
||||
[ OK ] md_SC03_135
|
||||
[ OK ] md_SC03_137
|
||||
[ OK ] md_SC03_136
|
||||
[ OK ] ov_SC03_107
|
||||
[ OK ] md_SC03_138
|
||||
[ OK ] md_SC04_024
|
||||
[ OK ] md_SC04_025
|
||||
[ OK ] md_SC04_029
|
||||
[ OK ] md_SC04_026
|
||||
[ OK ] md_SC05_023
|
||||
[ OK ] md_SC04_028
|
||||
[ OK ] md_SC04_030
|
||||
[ OK ] md_SC05_025
|
||||
[ OK ] md_SC04_027
|
||||
[ OK ] md_MAIN_007
|
||||
[ OK ] md_SC05_024
|
||||
[ OK ] md_SC05_028
|
||||
[ OK ] md_MAIN_009
|
||||
[ OK ] md_SC05_027
|
||||
[ OK ] md_SC03_053
|
||||
[ OK ] md_SC05_026
|
||||
[ OK ] md_SC05_029
|
||||
[ OK ] md_SC03_056
|
||||
[ OK ] md_SC03_054
|
||||
[ OK ] md_SC02_009
|
||||
[ OK ] md_SC07_004
|
||||
[ OK ] md_SC07_003
|
||||
extract-all: 217 extracted, 0 failed of 217 (+ main, serial)
|
||||
[ OK ] resident
|
||||
[ OK ] ov_SC03_006
|
||||
[ OK ] ov_SC05_000
|
||||
[ OK ] ov_SC01_006
|
||||
[ OK ] ov_SC06_000
|
||||
[ OK ] ov_SC01_005
|
||||
[ OK ] ov_SC01_000
|
||||
[ OK ] ov_SC01_001
|
||||
[ OK ] ov_SC04_000
|
||||
[ OK ] ov_SC03_002
|
||||
[ OK ] ov_SC04_019
|
||||
[ OK ] ov_SC01_077
|
||||
[ OK ] ov_SC04_018
|
||||
[ OK ] ov_SC02_003
|
||||
[ OK ] ov_SC02_000
|
||||
[ OK ] ov_SC03_001
|
||||
[ OK ] main
|
||||
[ OK ] ov_SC02_004
|
||||
[ OK ] ov_SC01_074
|
||||
[ OK ] ov_SC01_080
|
||||
[ OK ] ov_SC01_004
|
||||
[ OK ] ov_SC07_000
|
||||
[ OK ] ov_SC01_008
|
||||
[ OK ] ov_SC01_084
|
||||
[ OK ] ov_SC02_015
|
||||
[ OK ] ov_SC01_009
|
||||
[ OK ] ov_SC02_016
|
||||
[ OK ] ov_SC02_011
|
||||
[ OK ] ov_SC02_021
|
||||
[ OK ] ov_SC02_017
|
||||
[ OK ] ov_SC02_026
|
||||
[ OK ] ov_SC02_005
|
||||
[ OK ] ov_SC02_027
|
||||
[ OK ] ov_SC02_031
|
||||
[ OK ] ov_SC02_039
|
||||
[ OK ] ov_SC02_035
|
||||
[ OK ] ov_SC03_003
|
||||
[ OK ] ov_SC02_041
|
||||
[ OK ] ov_SC02_028
|
||||
[ OK ] ov_SC03_010
|
||||
[ OK ] ov_SC03_007
|
||||
[ OK ] ov_SC03_011
|
||||
[ OK ] ov_SC03_012
|
||||
[ OK ] ov_SC03_023
|
||||
[ OK ] ov_SC03_013
|
||||
[ OK ] ov_SC03_024
|
||||
[ OK ] ov_SC03_015
|
||||
[ OK ] ov_SC03_014
|
||||
[ OK ] ov_SC03_028
|
||||
[ OK ] ov_SC03_030
|
||||
[ OK ] ov_SC03_031
|
||||
[ OK ] ov_SC03_029
|
||||
[ OK ] ov_SC03_089
|
||||
[ OK ] ov_SC03_090
|
||||
[ OK ] ov_SC03_095
|
||||
[ OK ] ov_SC03_092
|
||||
[ OK ] ov_SC03_093
|
||||
[ OK ] ov_SC03_094
|
||||
[ OK ] ov_SC03_091
|
||||
[ OK ] ov_SC03_096
|
||||
[ OK ] ov_SC03_097
|
||||
[ OK ] ov_SC03_098
|
||||
[ OK ] ov_SC03_099
|
||||
[ OK ] ov_SC03_100
|
||||
[ OK ] ov_SC03_101
|
||||
[ OK ] ov_SC03_102
|
||||
[ OK ] ov_SC03_103
|
||||
[ OK ] ov_SC03_109
|
||||
[ OK ] ov_SC03_104
|
||||
[ OK ] ov_SC03_108
|
||||
[ OK ] ov_SC03_110
|
||||
[ OK ] ov_SC03_111
|
||||
[ OK ] ov_SC03_113
|
||||
[ OK ] ov_SC03_114
|
||||
[ OK ] ov_SC03_115
|
||||
[ OK ] ov_SC03_105
|
||||
[ OK ] ov_SC03_112
|
||||
[ OK ] ov_SC03_116
|
||||
[ OK ] ov_SC03_117
|
||||
[ OK ] ov_SC03_118
|
||||
[ OK ] ov_SC03_119
|
||||
[ OK ] ov_SC03_121
|
||||
[ OK ] ov_SC03_126
|
||||
[ OK ] ov_SC04_004
|
||||
[ OK ] ov_SC04_002
|
||||
[ OK ] ov_SC04_003
|
||||
[ OK ] ov_SC03_125
|
||||
[ OK ] ov_SC03_124
|
||||
[ OK ] ov_SC04_005
|
||||
[ OK ] ov_SC04_008
|
||||
[ OK ] ov_SC04_006
|
||||
[ OK ] ov_SC04_007
|
||||
[ OK ] ov_SC04_009
|
||||
[ OK ] ov_SC04_010
|
||||
[ OK ] ov_SC04_011
|
||||
[ OK ] ov_SC04_012
|
||||
[ OK ] ov_SC04_015
|
||||
[ OK ] ov_SC04_016
|
||||
[ OK ] ov_SC04_021
|
||||
[ OK ] ov_SC05_002
|
||||
[ OK ] ov_SC05_003
|
||||
[ OK ] ov_SC04_020
|
||||
[ OK ] ov_SC05_001
|
||||
[ OK ] ov_SC05_005
|
||||
[ OK ] ov_SC05_004
|
||||
[ OK ] ov_SC05_006
|
||||
[ OK ] ov_SC05_007
|
||||
[ OK ] ov_SC05_008
|
||||
[ OK ] ov_SC05_009
|
||||
[ OK ] ov_SC05_010
|
||||
[ OK ] ov_SC05_011
|
||||
[ OK ] ov_SC05_017
|
||||
[ OK ] ov_SC05_018
|
||||
[ OK ] ov_SC05_019
|
||||
[ OK ] ov_SC06_010
|
||||
[ OK ] ov_SC06_011
|
||||
[ OK ] ov_SC06_008
|
||||
[ OK ] ov_SC06_013
|
||||
[ OK ] ov_SC06_006
|
||||
[ OK ] ov_SC06_015
|
||||
[ OK ] ov_SC06_014
|
||||
[ OK ] ov_SC06_016
|
||||
[ OK ] ov_SC06_020
|
||||
[ OK ] ov_SC06_018
|
||||
[ OK ] ov_SC06_022
|
||||
[ OK ] ov_SC06_025
|
||||
[ OK ] ov_SC06_024
|
||||
[ OK ] ov_SC06_027
|
||||
[ OK ] md_MAIN_013
|
||||
[ OK ] md_MAIN_014
|
||||
[ OK ] md_MAIN_015
|
||||
[ OK ] md_MAIN_016
|
||||
[ OK ] md_MAIN_017
|
||||
[ OK ] md_MAIN_018
|
||||
[ OK ] md_MAIN_019
|
||||
[ OK ] md_MAIN_020
|
||||
[ OK ] md_MAIN_021
|
||||
[ OK ] md_MAIN_022
|
||||
[ OK ] md_MAIN_023
|
||||
[ OK ] md_MAIN_024
|
||||
[ OK ] md_MAIN_025
|
||||
[ OK ] md_MAIN_026
|
||||
[ OK ] md_MAIN_027
|
||||
[ OK ] md_MAIN_028
|
||||
[ OK ] md_MAIN_029
|
||||
[ OK ] md_MAIN_030
|
||||
[ OK ] md_MAIN_031
|
||||
[ OK ] md_MAIN_032
|
||||
[ OK ] md_MAIN_033
|
||||
[ OK ] md_MAIN_034
|
||||
[ OK ] md_MAIN_035
|
||||
[ OK ] md_MAIN_036
|
||||
[ OK ] ov_SC06_030
|
||||
[ OK ] md_MAIN_037
|
||||
[ OK ] md_MAIN_038
|
||||
[ OK ] md_MAIN_040
|
||||
[ OK ] md_MAIN_039
|
||||
[ OK ] ov_SC06_029
|
||||
[ OK ] md_MAIN_042
|
||||
[ OK ] ov_SC07_009
|
||||
[ OK ] ov_SC07_001
|
||||
[ OK ] md_MAIN_043
|
||||
[ OK ] md_MAIN_044
|
||||
[ OK ] md_MAIN_045
|
||||
[ OK ] md_MAIN_047
|
||||
[ OK ] md_MAIN_046
|
||||
[ OK ] md_MAIN_001
|
||||
[ OK ] ov_SC07_008
|
||||
[ OK ] md_MAIN_008
|
||||
[ OK ] md_MAIN_041
|
||||
[ OK ] md_MAIN_011
|
||||
[ OK ] ov_SC07_002
|
||||
[ OK ] md_SC07_003
|
||||
[ OK ] md_SC03_076
|
||||
[ OK ] md_MAIN_003
|
||||
[ OK ] md_SC03_077
|
||||
[ OK ] md_SC07_004
|
||||
[ OK ] md_SC03_073
|
||||
[ OK ] md_SC03_074
|
||||
[ OK ] md_SC03_075
|
||||
[ OK ] ov_SC07_006
|
||||
[ OK ] md_SC03_079
|
||||
[ OK ] md_SC03_132
|
||||
[ OK ] md_SC04_024
|
||||
[ OK ] md_SC03_135
|
||||
[ OK ] md_SC03_136
|
||||
[ OK ] md_SC03_078
|
||||
[ OK ] md_SC04_025
|
||||
[ OK ] md_SC04_026
|
||||
[ OK ] ov_SC07_007
|
||||
[ OK ] md_SC03_133
|
||||
[ OK ] md_SC04_027
|
||||
[ OK ] md_SC04_029
|
||||
[ OK ] md_SC03_134
|
||||
[ OK ] md_SC03_137
|
||||
[ OK ] md_SC04_030
|
||||
[ OK ] md_SC03_138
|
||||
[ OK ] md_SC05_023
|
||||
[ OK ] md_SC04_028
|
||||
[ OK ] md_SC05_024
|
||||
[ OK ] md_SC05_025
|
||||
@@ -26,50 +26,49 @@
|
||||
],
|
||||
"cross_address_deferred": {
|
||||
"classes": 3801,
|
||||
"copies": 11600,
|
||||
"copies": 11340,
|
||||
"instances": 30347
|
||||
},
|
||||
"duplicate_text_classes": 6874,
|
||||
"duplicate_text_sites": 23325,
|
||||
"elapsed_s": 27.6,
|
||||
"duplicate_text_classes": 7385,
|
||||
"duplicate_text_sites": 24359,
|
||||
"elapsed_s": 46.9,
|
||||
"flags": {
|
||||
"ALIAS": 44,
|
||||
"ALIAS": 38,
|
||||
"E": 3826,
|
||||
"F": 54,
|
||||
"PINS": 686,
|
||||
"TWIN-COVERED": 575,
|
||||
"TWIN-PENDING": 3173,
|
||||
"TYPEDEF": 96
|
||||
"PINS": 684,
|
||||
"TWIN-COVERED": 3748,
|
||||
"TYPEDEF": 93
|
||||
},
|
||||
"ins_by_verdict": {
|
||||
"A": 6048041,
|
||||
"B": 1175147,
|
||||
"C": 667561,
|
||||
"D": 160892,
|
||||
"M": 28564
|
||||
"C": 730731,
|
||||
"D": 126236,
|
||||
"M": 50
|
||||
},
|
||||
"instances_by_verdict": {
|
||||
"A": 214478,
|
||||
"B": 45226,
|
||||
"C": 14895,
|
||||
"D": 5740,
|
||||
"M": 462
|
||||
"C": 15917,
|
||||
"D": 5178,
|
||||
"M": 2
|
||||
},
|
||||
"macro_sites": 255947,
|
||||
"macro_sites": 255728,
|
||||
"multi_form": 0,
|
||||
"same_vram_unregistered": {
|
||||
"classes": 4105,
|
||||
"collapsible": 6529,
|
||||
"copies": 10632,
|
||||
"ins": 1632227,
|
||||
"instances": 34852,
|
||||
"twin_pending": 3006,
|
||||
"twin_pending_instances": 6012
|
||||
"classes": 1099,
|
||||
"collapsible": 3658,
|
||||
"copies": 4755,
|
||||
"ins": 1257027,
|
||||
"instances": 28840,
|
||||
"twin_pending": 0,
|
||||
"twin_pending_instances": 0
|
||||
},
|
||||
"sig_instances": 362389,
|
||||
"twin_covered": {
|
||||
"classes": 565,
|
||||
"instances": 1136
|
||||
"classes": 3580,
|
||||
"instances": 7186
|
||||
},
|
||||
"twin_sets": [
|
||||
[
|
||||
@@ -98,9 +97,9 @@
|
||||
"verdicts": {
|
||||
"A": 1712,
|
||||
"B": 282,
|
||||
"C": 6135,
|
||||
"D": 1833,
|
||||
"M": 218
|
||||
"C": 6640,
|
||||
"D": 1545,
|
||||
"M": 1
|
||||
},
|
||||
"violations": 4105
|
||||
"violations": 1099
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
share_census: 218 binaries · 362,389 sig instances · 362,389 classified · 0 UNACCOUNTED · 10,180 h_exact classes with >=2 instances
|
||||
verdicts (classes): A 1,712 · B 282 · C 6,135 · D 1,833 · M 218
|
||||
instances by verdict: A 214,478 · B 45,226 · C 14,895 · D 5,740 · M 462
|
||||
flags: ALIAS 44 · E 3,826 · F 54 · PINS 686 · TWIN-COVERED 575 · TWIN-PENDING 3,173 · TYPEDEF 96
|
||||
SAME-VRAM UNREGISTERED (the phase's backlog): 4,105 classes · 34,852 instances · 10,632 private copies · 6,529 collapsible · 1,632,227 ins; of which twin-pending 3,006 classes / 6,012 instances
|
||||
TWIN-COVERED (one source directory per payload, T3): 565 classes · 1,136 instances
|
||||
CROSS-ADDRESS / CROSS-SPACE (deferred to the names phase): 3,801 classes · 30,347 instances · 11,600 private copies
|
||||
S1 violations (scope as run): 4,105 · multi-form instances 0 · unresolved names 0
|
||||
verdicts (classes): A 1,712 · B 282 · C 6,640 · D 1,545 · M 1
|
||||
instances by verdict: A 214,478 · B 45,226 · C 15,917 · D 5,178 · M 2
|
||||
flags: ALIAS 38 · E 3,826 · F 54 · PINS 684 · TWIN-COVERED 3,748 · TYPEDEF 93
|
||||
SAME-VRAM UNREGISTERED (the phase's backlog): 1,099 classes · 28,840 instances · 4,755 private copies · 3,658 collapsible · 1,257,027 ins; of which twin-pending 0 classes / 0 instances
|
||||
TWIN-COVERED (one source directory per payload, T3): 3,580 classes · 7,186 instances
|
||||
CROSS-ADDRESS / CROSS-SPACE (deferred to the names phase): 3,801 classes · 30,347 instances · 11,340 private copies
|
||||
S1 violations (scope as run): 1,099 · multi-form instances 0 · unresolved names 0
|
||||
controls (R39):
|
||||
func_80144B9C got B/141/{'include': 141}/missing 7 expected B/141/{'include': 141}/missing 7 (the registry lists 134; T5 bucket 0 extends it)
|
||||
clearTbl40 got A+E/2 expected A+E/2
|
||||
@@ -37,4 +37,4 @@ share_census: 218 binaries · 362,389 sig instances · 362,389 classified · 0 U
|
||||
B E,F 11852 x 2 0x80014554,0x8001455C,0x8001513C func_80014554,func_8001455c
|
||||
A - 141 x 167 0x80163C2C func_80163c2c
|
||||
A - 141 x 165 0x80178004 func_80178004
|
||||
macro sites 255,947 · duplicate-text classes 6,874 (23,325 sites) · elapsed 27.6 s
|
||||
macro sites 255,728 · duplicate-text classes 7,385 (24,359 sites) · elapsed 46.9 s
|
||||
|
||||
@@ -22,7 +22,14 @@ def carves(tu):
|
||||
out.append((a, end))
|
||||
return out
|
||||
def compiled_tables(tu):
|
||||
cmd = subprocess.run(['make', '-n', '-W', 'src/%s/%s.c' % (b, tu), 'build/src/%s/%s.o' % (b, tu), 'BINARY=%s' % b], capture_output=True, text=True).stdout
|
||||
# Phase 35 T3: the TU's source comes from the binary's source dir through the oracle — a twin's objects
|
||||
# (build/src/<twin>/<twin>_x.o) are compiled from src/<primary>/<primary>_x.c (R33; a hand-built src/<b>/ path
|
||||
# found no compile line for a twin and raised IndexError here).
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
import corpus
|
||||
prim = corpus.twin_of(b) or b
|
||||
src = os.path.join(corpus.src_dir(b), tu.replace(b, prim, 1) + '.c')
|
||||
cmd = subprocess.run(['make', '-n', '-W', src, 'build/src/%s/%s.o' % (b, tu), 'BINARY=%s' % b], capture_output=True, text=True).stdout
|
||||
line = [l for l in cmd.splitlines() if 'cc1' in l][0]
|
||||
line = re.sub(r'\|\s*\.venv/bin/python\s+tools/jtbl_rodata_pads\.py[^|]*', '', line)
|
||||
line = re.sub(r'\|\s*[^|]*mipsel-linux-gnu-as.*$', '', line)
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ then what proved it. The same data generates the day-one kit's manifest and its
|
||||
|
||||
| When you need to… | Tool | What it does | Proven by | Adapt | Class |
|
||||
|---|---|---|---|---|---|
|
||||
| answer from one derived model whether each function is open, matched or shared | `corpus.py` | The single derived model of the source tree: open, matched or shared, per function | Makefile, api_agent.py, aprop_autodraft.py, aprop_symfix.py (+66) | repo src/config layout | LIVE |
|
||||
| answer from one derived model whether each function is open, matched or shared | `corpus.py` | The single derived model of the source tree: open, matched or shared, per function | Makefile, api_agent.py, aprop_autodraft.py, aprop_symfix.py (+67) | repo src/config layout | LIVE |
|
||||
| assert every consumer knows about each newly onboarded binary | `audit_binaries.py` | Gate asserting every consumer knows about each newly onboarded binary | Makefile | repo config/registry paths | LIVE |
|
||||
| assert every tracked source is plain text so text searches never skip it | `audit_text_sources.py` | Every tracked C source must be plain text, or text searches silently skip it | .github/workflows/no-rom.yml, Makefile | repo src paths | LIVE |
|
||||
| check that the independent what-remains views agree with the corpus oracle | `audit_frontier.py` | Checks that the independent "what remains" views agree with the corpus oracle | Makefile | repo paths | LIVE |
|
||||
|
||||
@@ -41,8 +41,10 @@
|
||||
green (audit-binaries OK · dedup-check 2220/0 · cdecl · report + `progress.py --check` fresh · doc_links · wiki_render · kit_lint ·
|
||||
cookbook-index · gccmap_cites · ghidra_roster), one red rung — the kit's verbatim copies of the edited tools — fixed by
|
||||
`make kit-corpus` (17 copies) with the rungs after it re-run individually by exit code. The +7 count correction published.
|
||||
- ☐ **T3** — twin binaries → one source directory: SC01_005/006 (probe), SC03_118/119, SC02_000/003, SC04_018/019, SC03_014/015 (carve
|
||||
alignment, R60); one commit per pair; the clean fleet run after the last.
|
||||
- ☑ **T3** (S94) — twin binaries → one source directory: the five pairs collapsed (probe SC01_005/006 with the race test; SC03_118/119 +
|
||||
SC02_000/003 equal carves; SC04_018/019 + SC03_014/015 with the primary's carve, interleave + pads regenerated, R60 checks), each
|
||||
twin and primary BYTE-IDENTICAL, 166 source files deleted; the census: same-vram backlog 4,667 → 1,099 classes; the clean fleet
|
||||
run after the last pair (see the log).
|
||||
- ☐ **T4** — `tools/macro_to_header.py`: the fleet converted in L0-gated batches; `engine_core.h`/`ov_setters.h`/`clearTbl40.h` deleted (clearTbl40
|
||||
→ the parameterized control); `func_80144B9C.h` moved; the registry's `source:`/`func:` rewritten surgically; clean fleet 218/218.
|
||||
- ☐ **T5** — `tools/share_body.py`: bucket 0 `--extend` (206 classes), then the same-vram buckets largest reach first (no trivial exception);
|
||||
@@ -157,6 +159,30 @@
|
||||
`TWIN_SRC_DIR` matched the `_SRC_DIR` oracle regex as a binary named `TWIN` → renamed `TWIN_SRCDIR`; after it the census shows
|
||||
**TWIN-COVERED 575 classes** for the pair (twin-pending 3,748 → 3,173), twin symmetry 653/653 unchanged. The census's `copies` now
|
||||
counts DISTINCT private sites (a twin's instance resolves to its primary's TU — one source), `collapsible` = copies − 1.
|
||||
Commit `9b0816e74`.
|
||||
- **S94 — T3 pairs 2–3 (equal carves, mechanical):** `ov_SC03_119` TWIN_OF `ov_SC03_118` (31 files removed; both `77ee78dd…`
|
||||
BYTE-IDENTICAL), `ov_SC02_003` TWIN_OF `ov_SC02_000` (37 files; both `5ece4bca…`); `audit-binaries: OK`; dedup-check per twin
|
||||
0 failed. Commit `e79cfcc06`.
|
||||
- **S94 — T3 pairs 4–5 (carve alignment, R60):** the twin's yaml := the primary's with the alias and `FILE_nnn` substituted (+ the
|
||||
twin note + `create_c_files: False`), its `_JTBL_INTERLEAVE` := the primary's substituted — and, found by the first build's
|
||||
failure (`missing .end at end of assembly` on `ov_SC04_019_jr_8017AE2C.o`): the per-object **`JTBL_PADS` lines are keyed by
|
||||
OBJECT PATH** (`build/src/<twin>/…`), which my alias-normalized block diff (lines starting with the alias) never compared, so the
|
||||
twin still carried its retired carve's pads (4 differing lines for SC04, 2 for SC03; the three committed pairs re-checked: 0, 0, 0).
|
||||
Regenerated from the primaries by substitution → 0 differing. `pads_audit.py` built `src/<b>/<tu>.c` by hand and raised
|
||||
IndexError on a twin — now reads the source through the oracle (`corpus.src_dir` + `twin_of`). **Verify:** `ov_SC04_019` +
|
||||
`ov_SC04_018` BYTE-IDENTICAL (`fe9b413f…`), `ov_SC03_015` + `ov_SC03_014` (`d84b01a2…`); `interleave_check` ALIGNED (n=51, n=46);
|
||||
`pads_audit` ok on every carve object; dedup-check 0 failed; `audit-binaries: OK` (CHECK 3b incl. equal carves). Commits
|
||||
`2648aa5a9`, `6ebb3dac3`.
|
||||
- **S94 — T3 census after the five collapses:** TWIN-COVERED 3,748 classes (3,580 non-A, 7,186 instances); **same-vram unregistered
|
||||
4,667 → 1,099 classes · 4,755 private sites · 3,658 collapsible · 28,840 instances** (twin-pending 0); `S1: … 10,180 classes, 9,081
|
||||
satisfied (3,580 twin-covered, 0 excepted, 3,801 deferred cross-address), 1,099 VIOLATION(S)` — the backlog T5 shares. The controls
|
||||
unchanged (twin symmetry 653/653). `make kit-corpus` for `pads_audit` + `share_census`; `tool_census --check: OK`.
|
||||
- **S94 — Rules check (P6, after T3 = four tasks): re-read complete (CLAUDE.md's eight mandatory behaviours; PROJECT_CONTEXT's 23
|
||||
P/G/H/X rules). Continuing with T4.**
|
||||
- **S94 — T3 close, R22:** `make clean && make extract-all JOBS=16 && make check-all JOBS=16` → `extract-all: 217 extracted, 0 failed of
|
||||
217 (+ main, serial)` · **`check-all: 218 passed, 0 failed of 218`** · `wall=308.78 s` (the census and the kit corpus ran beside it) ·
|
||||
`exit=0` (`.run/P35/baseline/r22_t3.log`). Twins: 5 pairs / 10 aliases / 166 source files deleted; every twin builds from
|
||||
its primary's directory. **T3 ☑.**
|
||||
|
||||
## Approved plan (verbatim, gate 1 — 2026-09-08)
|
||||
|
||||
@@ -450,7 +476,7 @@ same commit — history keeps it.
|
||||
Candidate for the PhaseEnd: "a shared body has exactly one source; a duplicate copy is a defect the health chain asserts, and a
|
||||
count of them is published with its rule" (this phase's invariant).
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — S94 (2026-09-08): Phase 35 OPEN at gate 1; T0 ☑, T1 ☑ (the census), T2 ☑ (the health chain knows the include + twin forms; the +7 correction published); NEXT = T3 twin binaries → one source directory (probe pair SC01_005/006)
|
||||
## 🛑 SESSION CHECKPOINT — S94 (2026-09-08): Phase 35 OPEN at gate 1; T0–T3 ☑ (the census; the health chain knows the include + twin forms; the five twin pairs collapsed, fleet 218/218 from clean); NEXT = T4 `tools/macro_to_header.py` (written, its --plan being shaken out)
|
||||
|
||||
### 0. How to use this block
|
||||
A fresh session reads CLAUDE.md's load order, replays THIS block verbatim, and resumes at the first unchecked task in §Tasks above.
|
||||
|
||||
Reference in New Issue
Block a user