lane PL: decompose the /Sim/players residual by mechanism; the bankruptcy protection factor is a float32
findings/subsystems/players-residual.md is the deliverable: every one of the 54
leaves on the reference pair and the 24 on pair 2 attributed to a named
mechanism, with the rung split. 53 of 54 are pass-through -- the block is
unmodelled, not mismodelled, and only player 32's Sav is a number we compute and
get wrong.
Three corrections to the record:
- T31's self-check compared its post-turn result against the pre-turn stored
value, so its 6-of-8 covered only the players whose limit never moves.
- the AI difficulty column IS recoverable from the save, by recomputing BnkEl
under both columns against the value the save carries; 1 AI + 1 non-AI on all
eleven corpus saves.
- BANKRUPTCY_PROTECTION_LIMIT_FACTOR is read fmul dword ptr, so it is a float32
in the image; the decimal disagrees at every max income divisible by ten and
the corpus' seven records land where the two agree (rule 23). formula-gaps Q1
addendum + ghidra/addresses.d/lane-pl.json (3 data entries, fragment validated
to a scratch path, no duplicate names).
verify/results/standalone/{status.json,report.txt} refreshed from a build of main
aabd8a3: the committed copy was stale at 131/55, the real number is 128/54.
T34 RecordObservedDesigns is now readable off the corpus and is NOT an intel
pass: a design's creator registers the design in its own odes, its weapons in
owep, and re-stamps otnL on its techs in otch -- odes on build, otch on creation.
Both are hypotheses until a save exists where a player observes someone else's
design.
Status stays open and is flagged as NOT identifiable: eighteen fields of the
player record split the roster the same way and only two saves carry a non-zero
value. The probe is an entry hook on W2's writer.
This commit is contained in:
parent
ed73b9fe7a
commit
91a04377d4
5 changed files with 246 additions and 50 deletions
|
|
@ -25,6 +25,44 @@ level changes (any change, 1↔2 included, resets it), and actions start the fol
|
||||||
Call sequence: `OnAllCombatDone_Tail` → … → `ProcessBankruptcy` → (later in the tail) `UpdateBankruptcyLimits`, so the
|
Call sequence: `OnAllCombatDone_Tail` → … → `ProcessBankruptcy` → (later in the tail) `UpdateBankruptcyLimits`, so the
|
||||||
limits used by a turn's bankruptcy check are the ones computed at the end of the previous turn (and on load).
|
limits used by a turn's bankruptcy check are the ones computed at the end of the previous turn (and on load).
|
||||||
|
|
||||||
|
### Q1 addendum — lane PL, 2026-09-08: the two constants are stored at DIFFERENT WIDTHS
|
||||||
|
|
||||||
|
The pseudo-code above is right about the shape and hides the thing that matters. The two
|
||||||
|
constants of this one routine are loaded by two different opcodes:
|
||||||
|
|
||||||
|
```
|
||||||
|
DB 45 FC fild dword [ebp-4] ; maxIncome, left on the stack
|
||||||
|
DD 05 30 EC A2 00 fld qword [0x00a2ec30] ; DD /0 = m64fp -- a DOUBLE
|
||||||
|
D8 F9 fdivr st(0), st(1)
|
||||||
|
E8 D2 CB 10 00 call _ftol2 ; -> BnkEl
|
||||||
|
3D 00 6C CA 88 cmp eax, -2000000000 ; the clamp
|
||||||
|
8B 0D DC DF AE 00 mov ecx, [0x00aedfdc] ; the loader's pointer slot
|
||||||
|
D8 09 fmul dword [ecx] ; D8 /1 = m32fp -- a FLOAT32
|
||||||
|
E8 A5 CB 10 00 call _ftol2
|
||||||
|
F7 D8 neg eax ; -> BnkPr
|
||||||
|
```
|
||||||
|
|
||||||
|
* `0x00a2ec30` reads `00 00 00 40 33 33 C3 BF` = **-0.15000000596046448**, i.e.
|
||||||
|
`(double)(float)-0.15f`. Already known (lane N) and already in the engine.
|
||||||
|
* `g_BANKRUPTCY_PROTECTION_LIMIT_FACTOR` at `0x00b23e28`, reached through the pointer slot
|
||||||
|
`0x00aedfdc`, is read **`fmul dword ptr`**. So whatever decimal the data file carries for
|
||||||
|
that key is **narrowed to a 4-byte float before the multiply**. Writing `-ftol(3.3 * m)`
|
||||||
|
with a `double` 3.3 disagrees with the image at **every max income that is a multiple of
|
||||||
|
ten**, starting at `maxIncome = 10` (decimal 33.0 truncates to 33; the image's
|
||||||
|
3.299999952316284 gives 32.99999952, truncating to 32). Measured over 230,000..250,000:
|
||||||
|
2,000 of 20,000 values disagree — exactly 10%.
|
||||||
|
* The slot's file image is zero; the config loader fills it at run time, and
|
||||||
|
`find-cross-references` shows exactly one read site in the whole binary (this one) plus the
|
||||||
|
loader's own table entry at `0x009ba5df`. So the *width* is a binary fact and the *value* is
|
||||||
|
a data-file fact.
|
||||||
|
* **The corpus cannot see this.** All seven non-zero `BnkPr` records in the eleven saves
|
||||||
|
invert to a max income where the two constants truncate the same. It is rule 23's exact
|
||||||
|
shape: a difference that survives every observation we have and is still real. Fixed in
|
||||||
|
`sots-engine` (`ComputeBankruptcyLimits` narrows through `F32`), which moved three
|
||||||
|
hand-written test expectations and zero leaves.
|
||||||
|
|
||||||
|
Addresses filed in `ghidra/addresses.d/lane-pl.json`.
|
||||||
|
|
||||||
### Q1 addendum — lane K, 2026-09-08 (instruction-verified)
|
### Q1 addendum — lane K, 2026-09-08 (instruction-verified)
|
||||||
|
|
||||||
The call sequence above is now read off the instruction stream, with addresses:
|
The call sequence above is now read off the instruction stream, with addresses:
|
||||||
|
|
|
||||||
118
findings/subsystems/players-residual.md
Normal file
118
findings/subsystems/players-residual.md
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
# The `/Sim/players` residual, decomposed <!-- subsystem -->
|
||||||
|
|
||||||
|
- **Type:** subsystem
|
||||||
|
- **Address / RVA:** n/a (a measurement over the save corpus; the one binary read is
|
||||||
|
`ServerPlayer::UpdateBankruptcyLimits` 0x00818600)
|
||||||
|
- **Status:** verified
|
||||||
|
- **Confidence:** high for the decomposition and the leaf counts; the `Status` predicate is
|
||||||
|
explicitly **not identifiable** and is flagged as such
|
||||||
|
- **Owner / date:** lane PL · 2026-09-08
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Every lane so far attacked a named subsystem and reported which leaves fell out. This one runs
|
||||||
|
the other way: take the largest remaining block of the standalone's residual and say what the
|
||||||
|
leaves in it actually **are**, grouped by mechanism, so that no later lane has to re-derive it.
|
||||||
|
|
||||||
|
The full write-up, with the predictions written before the build and where they were wrong,
|
||||||
|
is `sots-engine/docs/PL-players-residual.md`. This note is the evidence and the numbers.
|
||||||
|
|
||||||
|
## The numbers (re-measured; the published breakdown was stale)
|
||||||
|
|
||||||
|
`sots_turn` from `sots-engine` main `aabd8a3`, `tools/standalone_report.py --binary …`:
|
||||||
|
|
||||||
|
| run | pair 1 | pair 2 | `/Sim/players` |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| main, no options | 128 | 69 | **54 / 24** |
|
||||||
|
| main, `--commit-blocked=T31 --ai-player 1` | 126 | 67 | 52 / 22 |
|
||||||
|
| lane PL, no options | 126 | 65 | 52 / 20 |
|
||||||
|
| lane PL, `--data ROOT --commit-blocked=P11 --ai-player 1..3` | **122** | **62** | **48 / 17** |
|
||||||
|
|
||||||
|
`status.json` said 55. It is 54.
|
||||||
|
|
||||||
|
**53 of the 54 leaves on pair 1, and 23 of the 24 on pair 2, are values our turn writes back
|
||||||
|
unchanged from the input save.** Exactly one leaf in the whole block — player 32's `Sav` — is a
|
||||||
|
number we computed and got wrong. The block is *unmodelled*, not *mismodelled*, and a lane
|
||||||
|
looking for a formula error here will not find one.
|
||||||
|
|
||||||
|
## The decomposition
|
||||||
|
|
||||||
|
| # | mechanism | p1 | p2 | rung |
|
||||||
|
|---|---|---:|---:|---|
|
||||||
|
| M1 | AI research orders: `ResRate`, `ResTNm`, `ResErrRoll`, and the tech-tree state they move | 12 | 2 | B |
|
||||||
|
| M2 | AI ship construction: `ShipRecs/*`, `Maint`, `FNG/FNGNum`, `NumDes` + the new `Des[…]`, `lboid`, player 32's `Sav`/`PvSav` | 15 | 9 | B |
|
||||||
|
| M3 | Observation records refreshed by the AI's own new design: `odes`, `owep`, `otch/*/otnL` (T34, stub) | 9 | 1 | B |
|
||||||
|
| M4 | Events | 8 | 6 | 4/3 A + 4/3 B |
|
||||||
|
| M5 | `BnkEl`, `BnkPr` | 4 | 4 | A |
|
||||||
|
| M6 | `Status` | 4 | 0 | not identifiable |
|
||||||
|
| M7 | `PvSav` for the players M2 does not touch | 0 | 2 | A |
|
||||||
|
| M8 | player 528's one-off design `Des[1712 "Refugee Trade Ship"]` + `NumDes` | 2 | 0 | ? |
|
||||||
|
|
||||||
|
## The finding that matters most
|
||||||
|
|
||||||
|
**M3 is not an intel pass.** `RecordObservedDesigns` (T34) reads, on the reference workload, as
|
||||||
|
a **self-registration triggered by design creation**, not as a sweep over enemy fleets:
|
||||||
|
|
||||||
|
* player 32's new `odes` entry is `odid=18, opid=32` — design 18 owned by player 32, which is
|
||||||
|
the design *that player itself created this turn* (`Des[18 "Honor Lance"]`, `NumDes` 5→6);
|
||||||
|
* its new `owep` entry is `bal_gauss`, that design's weapon;
|
||||||
|
* the three `otch` entries whose `otnL` moves 1→2 are `DRV_Fissn`, `WEP_GsDrvr`, `DRV_Hyper` —
|
||||||
|
that design's technologies.
|
||||||
|
|
||||||
|
And the two lists refresh on **different events**: on pair 2 the same design is built again and
|
||||||
|
`odes/.[1]/otnL` moves 2→3 while every `otch` entry stays at 2. So `odes` is re-stamped on
|
||||||
|
**build** and `otch` on **creation**. One workload, two rules — both are hypotheses (rule 6)
|
||||||
|
until a save exists where a player observes someone *else's* design.
|
||||||
|
|
||||||
|
## Corrections to the record (rule 11)
|
||||||
|
|
||||||
|
1. **T31's self-check was not a self-check.** It reported "BnkEl reproduced for 6 of 8" on
|
||||||
|
`turn1-state` *regardless of the AI roster*, because it compared its **post-turn**
|
||||||
|
computation against the **pre-turn** stored value. The six it "reproduced" were exactly the
|
||||||
|
six players whose limit does not move (five with no colonies, plus the independent colony).
|
||||||
|
The phase's catalog text claimed "8 of 8 with the AI flag supplied", which the binary never
|
||||||
|
printed. Rule 15, in the wild.
|
||||||
|
The check is now taken at load, from the colony state the save was written from, and passes
|
||||||
|
for **every live player of all eleven corpus saves**.
|
||||||
|
2. **The AI flag is recoverable from the save.** `ServerPlayer+0xf9` is not serialised, but the
|
||||||
|
save's own `BnkEl` was written by the original from the colony state the save holds, and the
|
||||||
|
AI difficulty column is worth 10% of the max income against a `BnkEl` slope of 6.67 — far
|
||||||
|
more than a truncation. Recomputing under both columns and comparing identifies the column:
|
||||||
|
**1 AI and 1 non-AI on every one of the eleven saves**, the rest ambiguous. T31 therefore no
|
||||||
|
longer needs `--ai-player`, and closes 2 leaves per reference pair with no operator input.
|
||||||
|
*Ambiguous* means both columns give the same limit, which happens for two reasons and not
|
||||||
|
one: zero max income, **or an NPC** — the difficulty table's AI row is gated on
|
||||||
|
`isAI && !npc`, so "Independent Colony" is ambiguous despite owning a colony and carrying a
|
||||||
|
non-zero limit.
|
||||||
|
3. **The protection factor is a float32.** See `formula-gaps.md` Q1 addendum (lane PL) and
|
||||||
|
`ghidra/addresses.d/lane-pl.json`.
|
||||||
|
4. **The published residual overstates what is unmodelled.** 4 + 3 of the leaves belong to P11,
|
||||||
|
which is written and only wants `--data`. `tools/standalone_report.py` invokes the binary
|
||||||
|
with no data root, so the headline number measures the engine plus a missing argument.
|
||||||
|
Reproduced independently on CT111 against `/srv/re-lab/gob-extract`: **87 closed / 0
|
||||||
|
regressed** on pair 1 and **46 / 0** on pair 2.
|
||||||
|
|
||||||
|
## `Status` — a negative result worth keeping
|
||||||
|
|
||||||
|
`Status` goes 0 → 4 on players 16, 32, 496, 512 and stays 0 on 528, 544, 560, 576, then stays 4
|
||||||
|
on the next turn. The two sets are **perfectly correlated with species** (0/2 against 4), and
|
||||||
|
sweeping every scalar field of the player record on `turn1-state` finds **eighteen** that split
|
||||||
|
the roster identically: `ReqCL`, `AMine`, `CnTrd`, `CnVItl`, `cdp`, `hadvs`, `harcc`, `hgs`,
|
||||||
|
`PvMA`, `CstE`, `CstR`, `CstT`, `MinRate`, `MaxOH`, `NPTrk`, `PrGtTrf`, `TerraMod`, `pddm`.
|
||||||
|
Only two corpus saves carry a non-zero `Status` at all.
|
||||||
|
|
||||||
|
So this is **one observation of one transition on one roster**, and any predicate chosen from it
|
||||||
|
is an eighteen-way coin flip. `ReqCL` is the most plausible on name and on meaning — W2 places
|
||||||
|
the writer at `OnMessage+0xa15` and `MarkPlayerTurnEnded` writes 4 from the End-Turn submission
|
||||||
|
paths — but it is a hypothesis with a workload attached.
|
||||||
|
|
||||||
|
**The probe that settles it** (rules 18 and 20): an entry probe on that writer, capturing the
|
||||||
|
player index on every call for one turn. It names the set directly. Instrument the entry.
|
||||||
|
|
||||||
|
## Cross-refs
|
||||||
|
|
||||||
|
- Related: [[formula-gaps]] Q1 + the lane PL addendum, [[ship-construction]] (M2's 11,900),
|
||||||
|
[[population-growth]] (the `PvSav` prediction it held), [[strategic-turn-internals]]
|
||||||
|
- Engine: `sots-engine/docs/PL-players-residual.md`, `src/game/sim/player_turn.{h,cpp}`,
|
||||||
|
`tests/game_sim/test_player_turn.cpp`
|
||||||
|
- Addresses: `ghidra/addresses.d/lane-pl.json`
|
||||||
28
ghidra/addresses.d/lane-pl.json
Normal file
28
ghidra/addresses.d/lane-pl.json
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"name": "g_BankruptcyEliminationDivisor",
|
||||||
|
"addr": "0x00a2ec30",
|
||||||
|
"convention": "data",
|
||||||
|
"prototype": "double 0xBFC3333340000000 = -0.15000000596046448 = (double)(float)-0.15f -- the elimination-limit divisor, loaded by ServerPlayer::UpdateBankruptcyLimits at 0x00818612 with `DD 05` (fld QWORD). It is the negation of g_DebtInterestRate (0x009ed188), and the two are stored separately. Named here because lane N's fix cited the value but not the address",
|
||||||
|
"status": "verified",
|
||||||
|
"source": "lane PL own disassembly pass 2026-09-08 (reva_call read-memory 0x00818600 +200, 0x00a2ec30)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PTR_g_BANKRUPTCY_PROTECTION_LIMIT_FACTOR",
|
||||||
|
"addr": "0x00aedfdc",
|
||||||
|
"convention": "data",
|
||||||
|
"prototype": "float* -> 0x00b23e28. The config loader's pointer slot for the key BANKRUPTCY_PROTECTION_LIMIT_FACTOR, the same indirection pattern as ADDICTION_INCOME_MOD's (0x00aeca48 -> 0x00aeca44). Read once in the image, by UpdateBankruptcyLimits at 0x0081866e",
|
||||||
|
"status": "verified",
|
||||||
|
"source": "lane PL own disassembly pass 2026-09-08 (reva_call read-memory + find-cross-references)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "g_BANKRUPTCY_PROTECTION_LIMIT_FACTOR",
|
||||||
|
"addr": "0x00b23e28",
|
||||||
|
"convention": "data",
|
||||||
|
"prototype": "FLOAT32 -- and the width is the finding. UpdateBankruptcyLimits multiplies it in at 0x00818674 with `D8 09` = FMUL m32fp, i.e. a DWORD, while the elimination divisor two instructions earlier is `DD 05` = FLD m64fp. So whatever decimal the data file carries for this key is narrowed to a 4-byte float before the multiply, and a `double` multiply truncates to a different integer at every boundary -- for a factor of 3.3 that is EVERY max income divisible by ten, starting at maxIncome = 10 (decimal 33.0 -> 33, image 32.99999952 -> 32). The file image of the slot is zero: the loader fills it at run time, so the value itself is a data-file fact, not a binary one. The corpus cannot see the difference -- all seven of its non-zero BnkPr records invert to a max income where the two agree -- so this is an instruction-stream reading, thin-covered by construction (rule 23)",
|
||||||
|
"status": "verified",
|
||||||
|
"source": "lane PL own disassembly pass 2026-09-08; docs/PL-players-residual.md in sots-engine"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -1,17 +1,18 @@
|
||||||
# standalone vs the oracle
|
# standalone vs the oracle
|
||||||
|
|
||||||
generated 2026-09-08T19:48:40Z binary /srv/re-lab/build/eng-rep2/build-host/src/app/sots_turn
|
generated 2026-09-08T20:04:11Z binary /home/alex/sots-engine-pl/build-host/src/app/sots_turn
|
||||||
|
|
||||||
phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, partial 8, blocked 4, stub 28)
|
phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, partial 8, blocked 4, stub 28)
|
||||||
5/37 of the post-combat tail modelled
|
5/37 of the post-combat tail modelled
|
||||||
|
|
||||||
## turn1-state.sav -> turn2-state.sav (real End Turn)
|
## turn1-state.sav -> turn2-state.sav (real End Turn)
|
||||||
baseline (do nothing) 209 leaves diverge
|
baseline (do nothing) 209 leaves diverge
|
||||||
after one standalone turn 131 leaves diverge
|
after one standalone turn 128 leaves diverge
|
||||||
closed 78, regressed 0, byte match: no
|
closed 81, regressed 0, byte match: no
|
||||||
coverage proved on all three saves: {'input': True, 'oracle': True, 'ours': True}
|
coverage proved on all three saves: {'input': True, 'oracle': True, 'ours': True}
|
||||||
closed:
|
closed:
|
||||||
+ /Sim/Frame
|
+ /Sim/Frame
|
||||||
|
+ /Sim/players/Player[16 "re"]/Sav
|
||||||
+ /Sim/players/Player[496 "Singularity"]/dipstats/.
|
+ /Sim/players/Player[496 "Singularity"]/dipstats/.
|
||||||
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[0]
|
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[0]
|
||||||
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[1]
|
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[1]
|
||||||
|
|
@ -43,12 +44,14 @@ phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, par
|
||||||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ETS
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ETS
|
||||||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/Eid
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/Eid
|
||||||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/NVE
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/NVE
|
||||||
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/Pop2/PopG/PopC
|
||||||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ltis
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ltis
|
||||||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ntdev
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ntdev
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/EPid
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/EPid
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ETS
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ETS
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/Eid
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/Eid
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/NVE
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/NVE
|
||||||
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/Pop2/PopG/PopC
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ltis
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ltis
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ntdev
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ntdev
|
||||||
+ /Sim/systems/Sys[304 "Koa’Vo"]/EFlags
|
+ /Sim/systems/Sys[304 "Koa’Vo"]/EFlags
|
||||||
|
|
@ -92,11 +95,12 @@ phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, par
|
||||||
|
|
||||||
## turn2-state.sav -> turn3-state.sav (real End Turn)
|
## turn2-state.sav -> turn3-state.sav (real End Turn)
|
||||||
baseline (do nothing) 108 leaves diverge
|
baseline (do nothing) 108 leaves diverge
|
||||||
after one standalone turn 72 leaves diverge
|
after one standalone turn 69 leaves diverge
|
||||||
closed 36, regressed 0, byte match: no
|
closed 39, regressed 0, byte match: no
|
||||||
coverage proved on all three saves: {'input': True, 'oracle': True, 'ours': True}
|
coverage proved on all three saves: {'input': True, 'oracle': True, 'ours': True}
|
||||||
closed:
|
closed:
|
||||||
+ /Sim/Frame
|
+ /Sim/Frame
|
||||||
|
+ /Sim/players/Player[16 "re"]/Sav
|
||||||
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[1]/lastally
|
+ /Sim/players/Player[496 "Singularity"]/dipstats/.[1]/lastally
|
||||||
+ /Sim/players/Player[512 "Singularity"]/dipstats/.[1]/lastally
|
+ /Sim/players/Player[512 "Singularity"]/dipstats/.[1]/lastally
|
||||||
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[1]/lastnap
|
+ /Sim/players/Player[528 "Alien Menace"]/dipstats/.[1]/lastnap
|
||||||
|
|
@ -113,9 +117,11 @@ phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, par
|
||||||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[2]/lastnap
|
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[2]/lastnap
|
||||||
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[3]/lastnap
|
+ /Sim/players/Player[576 "Independent Colony"]/dipstats/.[3]/lastnap
|
||||||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ETS
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ETS
|
||||||
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/Pop2/PopG/PopC
|
||||||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ltis
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ltis
|
||||||
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ntdev
|
+ /Sim/systems/Sys[112 "Gamma Cephei"]/ntdev
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ETS
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ETS
|
||||||
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/Pop2/PopG/PopC
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ltis
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ltis
|
||||||
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ntdev
|
+ /Sim/systems/Sys[288 "Ke'Dolarra"]/ntdev
|
||||||
+ /Sim/systems/Sys[304 "Koa’Vo"]/ETS
|
+ /Sim/systems/Sys[304 "Koa’Vo"]/ETS
|
||||||
|
|
@ -134,8 +140,8 @@ phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, par
|
||||||
+ /Summary/Turn
|
+ /Summary/Turn
|
||||||
|
|
||||||
## what still differs on the reference pair, by subsystem
|
## what still differs on the reference pair, by subsystem
|
||||||
55 /Sim/players
|
54 /Sim/players
|
||||||
34 /Sim/systems
|
32 /Sim/systems
|
||||||
24 /Sim/turnstats
|
24 /Sim/turnstats
|
||||||
8 /Sim/SvSctOb
|
8 /Sim/SvSctOb
|
||||||
1 /Sim/DesignIDs[]
|
1 /Sim/DesignIDs[]
|
||||||
|
|
@ -173,7 +179,6 @@ phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, par
|
||||||
/Sim/players/Player[16 "re"]/Events/Events/.: only-in-A
|
/Sim/players/Player[16 "re"]/Events/Events/.: only-in-A
|
||||||
/Sim/players/Player[16 "re"]/Events/Events/.[0]: only-in-B
|
/Sim/players/Player[16 "re"]/Events/Events/.[0]: only-in-B
|
||||||
/Sim/players/Player[16 "re"]/Events/Events/.[EvTurn=2]: only-in-B
|
/Sim/players/Player[16 "re"]/Events/Events/.[EvTurn=2]: only-in-B
|
||||||
/Sim/players/Player[16 "re"]/Sav: 289092 -> 289688
|
|
||||||
/Sim/players/Player[16 "re"]/Status: 0 -> 4
|
/Sim/players/Player[16 "re"]/Status: 0 -> 4
|
||||||
/Sim/players/Player[32 "Fane Lao"]/BnkEl: -1811273 -> -1815833
|
/Sim/players/Player[32 "Fane Lao"]/BnkEl: -1811273 -> -1815833
|
||||||
/Sim/players/Player[32 "Fane Lao"]/BnkPr: -896580 -> -898837
|
/Sim/players/Player[32 "Fane Lao"]/BnkPr: -896580 -> -898837
|
||||||
|
|
@ -187,6 +192,7 @@ phases: 16/44 of the two turn drivers modelled, 12 committed (implemented 4, par
|
||||||
/Sim/players/Player[32 "Fane Lao"]/PvSav: 50000 -> 38100
|
/Sim/players/Player[32 "Fane Lao"]/PvSav: 50000 -> 38100
|
||||||
/Sim/players/Player[32 "Fane Lao"]/ResRate: 0.25 -> 0.800000011920929 [1.34218e+07 ulp]
|
/Sim/players/Player[32 "Fane Lao"]/ResRate: 0.25 -> 0.800000011920929 [1.34218e+07 ulp]
|
||||||
/Sim/players/Player[32 "Fane Lao"]/ResTNm: '' -> 'IND_Waldo'
|
/Sim/players/Player[32 "Fane Lao"]/ResTNm: '' -> 'IND_Waldo'
|
||||||
/Sim/players/Player[32 "Fane Lao"]/Sav: 297492 -> 92651
|
/Sim/players/Player[32 "Fane Lao"]/Sav: 298113 -> 92651
|
||||||
/Sim/players/Player[32 "Fane Lao"]/ShipRecs/srb[0]: 0 -> 1
|
/Sim/players/Player[32 "Fane Lao"]/ShipRecs/srb[0]: 0 -> 1
|
||||||
/Sim/players/Player[32 "Fane Lao"]/ShipRecs/srb[3]: only-in-B
|
/Sim/players/Player[32 "Fane Lao"]/ShipRecs/srb[3]: only-in-B
|
||||||
|
/Sim/players/Player[32 "Fane Lao"]/ShipRecs/srbd: 0 -> 1
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
{
|
{
|
||||||
"schema": "sots-standalone-status/1",
|
"schema": "sots-standalone-status/1",
|
||||||
"generated": "2026-09-08T19:48:40Z",
|
"generated": "2026-09-08T20:04:11Z",
|
||||||
"binary": "/srv/re-lab/build/eng-rep2/build-host/src/app/sots_turn",
|
"binary": "/home/alex/sots-engine-pl/build-host/src/app/sots_turn",
|
||||||
"engineArgs": [],
|
"engineArgs": [],
|
||||||
"reference": {
|
"reference": {
|
||||||
"input": "turn1-state.sav",
|
"input": "turn1-state.sav",
|
||||||
"oracle": "turn2-state.sav",
|
"oracle": "turn2-state.sav",
|
||||||
"baselineDiverging": 209,
|
"baselineDiverging": 209,
|
||||||
"divergingAfterTurn": 131,
|
"divergingAfterTurn": 128,
|
||||||
"closed": 78,
|
"closed": 81,
|
||||||
"regressed": 0,
|
"regressed": 0,
|
||||||
"byteMatch": false,
|
"byteMatch": false,
|
||||||
"subsystems": {
|
"subsystems": {
|
||||||
"/Sim/players": 55,
|
"/Sim/players": 54,
|
||||||
"/Sim/systems": 34,
|
"/Sim/systems": 32,
|
||||||
"/Sim/turnstats": 24,
|
"/Sim/turnstats": 24,
|
||||||
"/Sim/SvSctOb": 8,
|
"/Sim/SvSctOb": 8,
|
||||||
"/Sim/DesignIDs[]": 1,
|
"/Sim/DesignIDs[]": 1,
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
"engineArgs": [],
|
"engineArgs": [],
|
||||||
"exit": 0,
|
"exit": 0,
|
||||||
"stdout": [
|
"stdout": [
|
||||||
"load: /srv/re-lab/build/sre3/verify/results/saves/turn1-state.sav",
|
"load: /home/alex/sots-re/verify/results/saves/turn1-state.sav",
|
||||||
" 591376 inflated bytes, 0 error(s), 0 warning(s)",
|
" 591376 inflated bytes, 0 error(s), 0 warning(s)",
|
||||||
" turn 1, frame 1, modCount 0, 8 player(s), 28 system(s), 6 fleet(s)",
|
" turn 1, frame 1, modCount 0, 8 player(s), 28 system(s), 6 fleet(s)",
|
||||||
"roundtrip (untouched): byte-identical (591376 bytes)",
|
"roundtrip (untouched): byte-identical (591376 bytes)",
|
||||||
|
|
@ -73,8 +73,8 @@
|
||||||
" verified 0 implemented 1 partial 2 blocked 2 stub 32",
|
" verified 0 implemented 1 partial 2 blocked 2 stub 32",
|
||||||
"",
|
"",
|
||||||
"this run",
|
"this run",
|
||||||
" leaves written 87",
|
" leaves written 89",
|
||||||
" leaves NOT written by a blocked phase 97",
|
" leaves NOT written by a blocked phase 98",
|
||||||
" generator words consumed 16 (state loaded, left untouched)",
|
" generator words consumed 16 (state loaded, left untouched)",
|
||||||
" generator words NOT accounted (never netted off the above):",
|
" generator words NOT accounted (never netted off the above):",
|
||||||
" - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled",
|
" - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled",
|
||||||
|
|
@ -83,8 +83,8 @@
|
||||||
" ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)",
|
" ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)",
|
||||||
" ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's",
|
" ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's",
|
||||||
"",
|
"",
|
||||||
"wrote /tmp/tmpkd8jx34g/post-turn1-state.sav (65970 bytes gzipped, 595192 inflated)",
|
"wrote /tmp/tmpfmmdz_by/post-turn1-state.sav (65980 bytes gzipped, 595192 inflated)",
|
||||||
"metric -> /tmp/tmpkd8jx34g/metric-turn1-state.sav.json"
|
"metric -> /tmp/tmpfmmdz_by/metric-turn1-state.sav.json"
|
||||||
],
|
],
|
||||||
"coverage": {
|
"coverage": {
|
||||||
"input": true,
|
"input": true,
|
||||||
|
|
@ -94,14 +94,15 @@
|
||||||
"roots": {
|
"roots": {
|
||||||
"input": "64b836b966299d9b72fc02244ed31e31",
|
"input": "64b836b966299d9b72fc02244ed31e31",
|
||||||
"oracle": "4bed514f853332b9fa35b388c3aa5558",
|
"oracle": "4bed514f853332b9fa35b388c3aa5558",
|
||||||
"ours": "807894b688ac0c7d06171e2a15ad2b4f"
|
"ours": "0cf5b0cfe7dd11ab248eb4df2a1ea828"
|
||||||
},
|
},
|
||||||
"baselineDiverging": 209,
|
"baselineDiverging": 209,
|
||||||
"divergingAfterTurn": 131,
|
"divergingAfterTurn": 128,
|
||||||
"closed": 78,
|
"closed": 81,
|
||||||
"regressed": 0,
|
"regressed": 0,
|
||||||
"closedPaths": [
|
"closedPaths": [
|
||||||
"/Sim/Frame",
|
"/Sim/Frame",
|
||||||
|
"/Sim/players/Player[16 \"re\"]/Sav",
|
||||||
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.",
|
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.",
|
||||||
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.[0]",
|
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.[0]",
|
||||||
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.[1]",
|
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.[1]",
|
||||||
|
|
@ -133,12 +134,14 @@
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/Eid",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/Eid",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/NVE",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/NVE",
|
||||||
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/Pop2/PopG/PopC",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/EPid",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/EPid",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/Eid",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/Eid",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/NVE",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/NVE",
|
||||||
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/Pop2/PopG/PopC",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev",
|
||||||
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/EFlags",
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/EFlags",
|
||||||
|
|
@ -205,7 +208,6 @@
|
||||||
"/Sim/players/Player[16 \"re\"]/Events/Events/.: only-in-A",
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.: only-in-A",
|
||||||
"/Sim/players/Player[16 \"re\"]/Events/Events/.[0]: only-in-B",
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.[0]: only-in-B",
|
||||||
"/Sim/players/Player[16 \"re\"]/Events/Events/.[EvTurn=2]: only-in-B",
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.[EvTurn=2]: only-in-B",
|
||||||
"/Sim/players/Player[16 \"re\"]/Sav: 289092 -> 289688",
|
|
||||||
"/Sim/players/Player[16 \"re\"]/Status: 0 -> 4",
|
"/Sim/players/Player[16 \"re\"]/Status: 0 -> 4",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/BnkEl: -1811273 -> -1815833",
|
"/Sim/players/Player[32 \"Fane Lao\"]/BnkEl: -1811273 -> -1815833",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/BnkPr: -896580 -> -898837",
|
"/Sim/players/Player[32 \"Fane Lao\"]/BnkPr: -896580 -> -898837",
|
||||||
|
|
@ -219,15 +221,16 @@
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/PvSav: 50000 -> 38100",
|
"/Sim/players/Player[32 \"Fane Lao\"]/PvSav: 50000 -> 38100",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/ResRate: 0.25 -> 0.800000011920929 [1.34218e+07 ulp]",
|
"/Sim/players/Player[32 \"Fane Lao\"]/ResRate: 0.25 -> 0.800000011920929 [1.34218e+07 ulp]",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/ResTNm: '' -> 'IND_Waldo'",
|
"/Sim/players/Player[32 \"Fane Lao\"]/ResTNm: '' -> 'IND_Waldo'",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/Sav: 297492 -> 92651",
|
"/Sim/players/Player[32 \"Fane Lao\"]/Sav: 298113 -> 92651",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 0 -> 1",
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 0 -> 1",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: only-in-B"
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: only-in-B",
|
||||||
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srbd: 0 -> 1"
|
||||||
],
|
],
|
||||||
"byteMatch": false,
|
"byteMatch": false,
|
||||||
"standalone": {
|
"standalone": {
|
||||||
"schema": "sots-standalone-metric/1",
|
"schema": "sots-standalone-metric/1",
|
||||||
"input": "/srv/re-lab/build/sre3/verify/results/saves/turn1-state.sav",
|
"input": "/home/alex/sots-re/verify/results/saves/turn1-state.sav",
|
||||||
"output": "/tmp/tmpkd8jx34g/post-turn1-state.sav",
|
"output": "/tmp/tmpfmmdz_by/post-turn1-state.sav",
|
||||||
"spine": {
|
"spine": {
|
||||||
"total": 44,
|
"total": 44,
|
||||||
"verified": 0,
|
"verified": 0,
|
||||||
|
|
@ -249,8 +252,8 @@
|
||||||
"committed": 3
|
"committed": 3
|
||||||
},
|
},
|
||||||
"run": {
|
"run": {
|
||||||
"leafWrites": 87,
|
"leafWrites": 89,
|
||||||
"blockedLeafWrites": 97,
|
"blockedLeafWrites": 98,
|
||||||
"rngWords": 16,
|
"rngWords": 16,
|
||||||
"rngLoaded": true,
|
"rngLoaded": true,
|
||||||
"rngCommitted": false,
|
"rngCommitted": false,
|
||||||
|
|
@ -397,7 +400,7 @@
|
||||||
"name": "SystemTurn",
|
"name": "SystemTurn",
|
||||||
"status": "partial",
|
"status": "partial",
|
||||||
"ran": 28,
|
"ran": 28,
|
||||||
"writes": 3,
|
"writes": 5,
|
||||||
"blockedWrites": 0,
|
"blockedWrites": 0,
|
||||||
"rng": 0
|
"rng": 0
|
||||||
},
|
},
|
||||||
|
|
@ -1038,7 +1041,7 @@
|
||||||
"status": "blocked",
|
"status": "blocked",
|
||||||
"ran": 8,
|
"ran": 8,
|
||||||
"writes": 0,
|
"writes": 0,
|
||||||
"blockedWrites": 1,
|
"blockedWrites": 2,
|
||||||
"rng": 0
|
"rng": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -1111,7 +1114,7 @@
|
||||||
"engineArgs": [],
|
"engineArgs": [],
|
||||||
"exit": 0,
|
"exit": 0,
|
||||||
"stdout": [
|
"stdout": [
|
||||||
"load: /srv/re-lab/build/sre3/verify/results/saves/turn2-state.sav",
|
"load: /home/alex/sots-re/verify/results/saves/turn2-state.sav",
|
||||||
" 603360 inflated bytes, 0 error(s), 0 warning(s)",
|
" 603360 inflated bytes, 0 error(s), 0 warning(s)",
|
||||||
" turn 2, frame 2, modCount 12, 8 player(s), 28 system(s), 7 fleet(s)",
|
" turn 2, frame 2, modCount 12, 8 player(s), 28 system(s), 7 fleet(s)",
|
||||||
"roundtrip (untouched): byte-identical (603360 bytes)",
|
"roundtrip (untouched): byte-identical (603360 bytes)",
|
||||||
|
|
@ -1124,8 +1127,8 @@
|
||||||
" verified 0 implemented 1 partial 2 blocked 2 stub 32",
|
" verified 0 implemented 1 partial 2 blocked 2 stub 32",
|
||||||
"",
|
"",
|
||||||
"this run",
|
"this run",
|
||||||
" leaves written 43",
|
" leaves written 45",
|
||||||
" leaves NOT written by a blocked phase 73",
|
" leaves NOT written by a blocked phase 74",
|
||||||
" generator words consumed 16 (state loaded, left untouched)",
|
" generator words consumed 16 (state loaded, left untouched)",
|
||||||
" generator words NOT accounted (never netted off the above):",
|
" generator words NOT accounted (never netted off the above):",
|
||||||
" - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled",
|
" - encounter detection draws one unit value and one bounded integer per turn on every turn measured (2 words), with no derived rule behind the count -- its bound is the product of the contact and detector counts, so it is left unmodelled",
|
||||||
|
|
@ -1134,8 +1137,8 @@
|
||||||
" ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)",
|
" ! the generator advanced during this run but the save keeps its original state (--commit-rng to write it)",
|
||||||
" ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's",
|
" ! the modelled words are a LOWER BOUND on the turn's cost, so a committed generator is short by the unaccounted sites below and its drawn VALUES are not the game's",
|
||||||
"",
|
"",
|
||||||
"wrote /tmp/tmpkd8jx34g/post-turn2-state.sav (66879 bytes gzipped, 603360 inflated)",
|
"wrote /tmp/tmpfmmdz_by/post-turn2-state.sav (66880 bytes gzipped, 603360 inflated)",
|
||||||
"metric -> /tmp/tmpkd8jx34g/metric-turn2-state.sav.json"
|
"metric -> /tmp/tmpfmmdz_by/metric-turn2-state.sav.json"
|
||||||
],
|
],
|
||||||
"coverage": {
|
"coverage": {
|
||||||
"input": true,
|
"input": true,
|
||||||
|
|
@ -1145,14 +1148,15 @@
|
||||||
"roots": {
|
"roots": {
|
||||||
"input": "4bed514f853332b9fa35b388c3aa5558",
|
"input": "4bed514f853332b9fa35b388c3aa5558",
|
||||||
"oracle": "e9c161e311f8ef8fad6f1aa1903dcf3f",
|
"oracle": "e9c161e311f8ef8fad6f1aa1903dcf3f",
|
||||||
"ours": "4527034695edf755dbbdbf3605334c3d"
|
"ours": "853380c5c55cd7208c60afc2486c7e74"
|
||||||
},
|
},
|
||||||
"baselineDiverging": 108,
|
"baselineDiverging": 108,
|
||||||
"divergingAfterTurn": 72,
|
"divergingAfterTurn": 69,
|
||||||
"closed": 36,
|
"closed": 39,
|
||||||
"regressed": 0,
|
"regressed": 0,
|
||||||
"closedPaths": [
|
"closedPaths": [
|
||||||
"/Sim/Frame",
|
"/Sim/Frame",
|
||||||
|
"/Sim/players/Player[16 \"re\"]/Sav",
|
||||||
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.[1]/lastally",
|
"/Sim/players/Player[496 \"Singularity\"]/dipstats/.[1]/lastally",
|
||||||
"/Sim/players/Player[512 \"Singularity\"]/dipstats/.[1]/lastally",
|
"/Sim/players/Player[512 \"Singularity\"]/dipstats/.[1]/lastally",
|
||||||
"/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[1]/lastnap",
|
"/Sim/players/Player[528 \"Alien Menace\"]/dipstats/.[1]/lastnap",
|
||||||
|
|
@ -1169,9 +1173,11 @@
|
||||||
"/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[2]/lastnap",
|
"/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[2]/lastnap",
|
||||||
"/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[3]/lastnap",
|
"/Sim/players/Player[576 \"Independent Colony\"]/dipstats/.[3]/lastnap",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ETS",
|
||||||
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/Pop2/PopG/PopC",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ltis",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/ntdev",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ETS",
|
||||||
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/Pop2/PopG/PopC",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ltis",
|
||||||
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev",
|
"/Sim/systems/Sys[288 \"Ke'Dolarra\"]/ntdev",
|
||||||
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ETS",
|
"/Sim/systems/Sys[304 \"Koa\u2019Vo\"]/ETS",
|
||||||
|
|
@ -1209,7 +1215,6 @@
|
||||||
"/Sim/players/Player[16 \"re\"]/Events/Events/.[0]: 1 -> 2",
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.[0]: 1 -> 2",
|
||||||
"/Sim/players/Player[16 \"re\"]/Events/Events/.[EvTurn=3]: only-in-B",
|
"/Sim/players/Player[16 \"re\"]/Events/Events/.[EvTurn=3]: only-in-B",
|
||||||
"/Sim/players/Player[16 \"re\"]/PvSav: 50000 -> 289688",
|
"/Sim/players/Player[16 \"re\"]/PvSav: 50000 -> 289688",
|
||||||
"/Sim/players/Player[16 \"re\"]/Sav: 531773 -> 532369",
|
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/BnkEl: -1815833 -> -1820206",
|
"/Sim/players/Player[32 \"Fane Lao\"]/BnkEl: -1815833 -> -1820206",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/BnkPr: -898837 -> -901002",
|
"/Sim/players/Player[32 \"Fane Lao\"]/BnkPr: -898837 -> -901002",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/Events/EvNxID: 2 -> 4",
|
"/Sim/players/Player[32 \"Fane Lao\"]/Events/EvNxID: 2 -> 4",
|
||||||
|
|
@ -1218,7 +1223,7 @@
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/FNG/FNGNum: 1 -> 3",
|
"/Sim/players/Player[32 \"Fane Lao\"]/FNG/FNGNum: 1 -> 3",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/Maint: 500 -> 1000",
|
"/Sim/players/Player[32 \"Fane Lao\"]/Maint: 500 -> 1000",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/PvSav: 38100 -> 80751",
|
"/Sim/players/Player[32 \"Fane Lao\"]/PvSav: 38100 -> 80751",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/Sav: 142259 -> 135486",
|
"/Sim/players/Player[32 \"Fane Lao\"]/Sav: 142379 -> 135486",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 1 -> 2",
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[0]: 1 -> 2",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: 1 -> 2",
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/srb[3]: 1 -> 2",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/sri[0]: 1 -> 2",
|
"/Sim/players/Player[32 \"Fane Lao\"]/ShipRecs/sri[0]: 1 -> 2",
|
||||||
|
|
@ -1228,15 +1233,16 @@
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/lboid: 1 -> 2",
|
"/Sim/players/Player[32 \"Fane Lao\"]/lboid: 1 -> 2",
|
||||||
"/Sim/players/Player[32 \"Fane Lao\"]/odes/.[1]/otnL: 2 -> 3",
|
"/Sim/players/Player[32 \"Fane Lao\"]/odes/.[1]/otnL: 2 -> 3",
|
||||||
"/Sim/players/Player[576 \"Independent Colony\"]/PvSav: 0 -> 98871",
|
"/Sim/players/Player[576 \"Independent Colony\"]/PvSav: 0 -> 98871",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/Pop2/PopG/PopC: 520000000 -> 540000000",
|
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/PvPop2/PopG/PopC: 500000000 -> 520000000",
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/PvPop2/PopG/PopC: 500000000 -> 520000000",
|
||||||
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/RepCur: 336360.0 -> 336840.0 [15360 ulp]"
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/RepCur: 336360.0 -> 336840.0 [15360 ulp]",
|
||||||
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/RepMax: 336360.0 -> 336840.0 [15360 ulp]",
|
||||||
|
"/Sim/systems/Sys[112 \"Gamma Cephei\"]/TShn: 2 -> 3"
|
||||||
],
|
],
|
||||||
"byteMatch": false,
|
"byteMatch": false,
|
||||||
"standalone": {
|
"standalone": {
|
||||||
"schema": "sots-standalone-metric/1",
|
"schema": "sots-standalone-metric/1",
|
||||||
"input": "/srv/re-lab/build/sre3/verify/results/saves/turn2-state.sav",
|
"input": "/home/alex/sots-re/verify/results/saves/turn2-state.sav",
|
||||||
"output": "/tmp/tmpkd8jx34g/post-turn2-state.sav",
|
"output": "/tmp/tmpfmmdz_by/post-turn2-state.sav",
|
||||||
"spine": {
|
"spine": {
|
||||||
"total": 44,
|
"total": 44,
|
||||||
"verified": 0,
|
"verified": 0,
|
||||||
|
|
@ -1258,8 +1264,8 @@
|
||||||
"committed": 3
|
"committed": 3
|
||||||
},
|
},
|
||||||
"run": {
|
"run": {
|
||||||
"leafWrites": 43,
|
"leafWrites": 45,
|
||||||
"blockedLeafWrites": 73,
|
"blockedLeafWrites": 74,
|
||||||
"rngWords": 16,
|
"rngWords": 16,
|
||||||
"rngLoaded": true,
|
"rngLoaded": true,
|
||||||
"rngCommitted": false,
|
"rngCommitted": false,
|
||||||
|
|
@ -1406,7 +1412,7 @@
|
||||||
"name": "SystemTurn",
|
"name": "SystemTurn",
|
||||||
"status": "partial",
|
"status": "partial",
|
||||||
"ran": 28,
|
"ran": 28,
|
||||||
"writes": 3,
|
"writes": 5,
|
||||||
"blockedWrites": 0,
|
"blockedWrites": 0,
|
||||||
"rng": 0
|
"rng": 0
|
||||||
},
|
},
|
||||||
|
|
@ -2047,7 +2053,7 @@
|
||||||
"status": "blocked",
|
"status": "blocked",
|
||||||
"ran": 8,
|
"ran": 8,
|
||||||
"writes": 0,
|
"writes": 0,
|
||||||
"blockedWrites": 1,
|
"blockedWrites": 2,
|
||||||
"rng": 0
|
"rng": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue