summaryrefslogtreecommitdiff
path: root/src/board_representation/MIGRATION.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/board_representation/MIGRATION.md')
-rw-r--r--src/board_representation/MIGRATION.md26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/board_representation/MIGRATION.md b/src/board_representation/MIGRATION.md
index 313c74d..c6673ce 100644
--- a/src/board_representation/MIGRATION.md
+++ b/src/board_representation/MIGRATION.md
@@ -15,12 +15,13 @@ inline as a note rather than deleted, so a future session designing
the separate migration doesn't have to rediscover it from git history.
**Status: sections 1-3 (`bbPieces`/`bbPawns`-backed
-`_WhoAttacksSquareBB`/`_GetAttacksBB`), section 4 items 1-3 and 5, and
-section 6 (the `GETATTACKS_BITBOARD` toggle) all implemented, verified,
-and committed -- including a whole-engine `sd10` check across all three
-curated suites showing zero solve-count regression and +8.38%
-aggregate NPS. Only `match_play.py` (section 4 item 6 / section 7)
-remains unmet before full retirement of the old mailbox
+`_WhoAttacksSquareBB`/`_GetAttacksBB`), all of section 4, and section 6
+(the `GETATTACKS_BITBOARD` toggle) implemented, verified, and
+committed -- including a whole-engine `sd10` check across all three
+curated suites (zero solve-count regression, +8.38% aggregate NPS) and
+a `seescores` SEE-value diff across all 747 captures in those suites
+(byte-identical, zero diff). Only `match_play.py` (section 4 item 6 /
+section 7) remains unmet before full retirement of the old mailbox
implementation, deliberately deferred for now. Section 5's whole-engine
item and section 7's remaining items are otherwise done; section 8 not
started.** See the per-section status notes below for specifics.
@@ -461,7 +462,18 @@ sequence.
ECM/random positions, run once per `GetAttacksBB` toggle state,
diffed. Catches any behavioral drift `TestGetAttacks`'s raw-list
comparison might miss once results feed into `_MinLegalPiece`'s
- exchange simulation. Not started.
+ exchange simulation. **DONE.** `seescores <filename>` (`command.c`,
+ registered alongside `script`/`sd`) reads `setboard` lines from an
+ EPD file (the same convention `tests/ecm*.ep_` already use),
+ generates legal moves per position, and prints `(FEN, SAN move, SEE
+ value)` for every capture. Run against all three curated suites (747
+ captures total: 51 + 351 + 345), once per binary from section 4 item
+ 5's same-commit asm-vs-`GETATTACKS_BITBOARD=1` A/B build -- output
+ **byte-identical, zero diff**, on all three. Confirms `_GetAttacksBB`
+ is correct not just at the attacker-list level (`TestGetAttacks`)
+ but all the way through `SEE()`/`_MinLegalPiece`'s exchange
+ simulation to the final score every move-ordering decision actually
+ uses.
5. **Full-suite behavioral check is mandatory here, not optional** --
this is the one place this migration is *riskier* than the Eval
constant work: `GetAttacks` feeds move ordering and pruning decisions