Files
BFM-decomp/requirements-python.txt
T
Drew T 5f937bdda5 feat(phase-6): compiler pinned + matching loop proven (14 matches) — LZSS to Phase 7
- splat.us.exe.yaml: text subseg asm->c (INCLUDE_ASM scaffold); include/common.h
  (committed prelude); Makefile c-rule cpp->cc1->maspsx->as + -Map
- PIN (G8): gcc-2.7.2-psx -O2 -G0 -mips1 -mcpu=3000 -mgas -msoft-float -fgnu-linker
  + maspsx --aspsx-version=2.56 --expand-div; byte-exact on func_80018F20 +
  instruction-identical across 3 idiom classes; --expand-div REQUIRED for div/rem
  (SETUP.md §5.4 PINNED, Makefile MASPSX_FLAGS)
- harness: diff_settings.py (asm-differ mipsel object mode), tools/decompile.py
  (m2c wrapper), tools/permuter/ (decomp-permuter harness + objdump shim), expected/
- 14 real functions matched (asm-differ score 0): func_80018F20 + 13 accessors;
  +14 splat-auto empty no-ops; make check BYTE-IDENTICAL throughout
- 2 instruction-identical near-misses guarded NON_MATCHING (func_80015A74 scheduling,
  func_80016714 phantom frame) -> decomp-permuter candidates
- flywheel: docs/matching-cookbook.md, memory + CLAUDE.md step 5 (consult+evolve), R16
- requirements-python.txt: venv freeze (pycparser<3.0 pinned — permuter needs plyparser)
- LZSS spike: needs jump-table-in-rodata workflow (102 tables, mixed blob) -> Phase 7
- venv: asm-differ + permuter deps installed
- bumps project version 1.5.0 -> 1.6.0
2026-06-14 14:47:01 -06:00

44 lines
1.4 KiB
Plaintext

# requirements-python.txt — Python venv deps for the BFM-decomp toolchain.
# The .venv itself is gitignored; THIS file is the durable, committed record so the
# environment is reproducible and hard-won findings are never re-debugged.
#
# Recreate the venv:
# python3 -m venv .venv && .venv/bin/pip install -r requirements-python.txt
#
# Phase 4 deferred this freeze to "after Phase-5 green"; created at Phase-6 close (2026-06-14).
# Exact versions from `pip freeze` on the working machine.
#
# IMPORTANT pins / notes:
# - pycparser is held <3.0 (==2.23): pycparser 3.0 removed the `plyparser` module that the
# pinned decomp-permuter imports. Upgrading WILL break the permuter (cost real debugging;
# see docs/matching-cookbook.md §3). Keep it <3.0.
# - splat64 0.41.0 pulls spimdisasm/rabbitizer/PyYAML/etc.; asm-differ needs
# watchdog/Levenshtein/cxxfilt/colorama; decomp-permuter needs pycparser/toml/PyNaCl.
# --- build / splat (Phase 4) ---
splat64==0.41.0
spimdisasm==1.41.0
rabbitizer==1.16.2
crunch64==0.6.2
PyYAML==6.0.3
pylibyaml==0.1.0
intervaltree==3.1.0
sortedcontainers==2.4.0
tqdm==4.67.1
n64img==0.3.3
pygfxd==1.0.5
pypng==0.20220715.0
# --- asm-differ runtime (Phase 6) ---
watchdog==6.0.0
Levenshtein==0.27.3
RapidFuzz==3.14.5
cxxfilt==0.3.0
colorama==0.4.6
# --- decomp-permuter (Phase 6) ---
pycparser==2.23
toml==0.10.2
PyNaCl==1.6.2
cffi==2.0.0