lane CV: Rung B on a rich turn -- the replay runs, 1092 leaves, ranked worklist

Replays lane BR's deep command block for ad-turn27-two-raiders.sav through
sots_turn --turn-commands and compares with bp-pinB-turn28.sav (724528ff).

Verdict: outcome 3. DIVERGED: 1092 leaf difference(s) against a 1166-leaf
do-nothing baseline; 80 closed, 6 regressed; the stream's whole contribution to
the state is /Sim/ModCount (1430 -> 1500, target 1502, residual 2).

Two blockers upstream of the turn: the typed writer drops one usp item in
Game::SpecialProjectNameGen (12 of 43 corpus saves, exactly 12 bytes each), and
--relabel-new-ids refuses by guard G3 because the engine mints no client fleet
ids. The tail's tscr gate is TRUE on this save (253, not 252).

tools/aiorders_to_tcb.py now reads the deep dump's aivec/aistr rows, only at a
word the field map already types as a vector, with the followed count
cross-checked against the begin/end pair.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ARBgSooAfokKUy6wKUKEyZ
This commit is contained in:
alex 2026-09-09 09:28:50 -04:00
parent fb5a4148b3
commit 0d0b6dcfae
9 changed files with 4601 additions and 6 deletions

File diff suppressed because one or more lines are too long

View file

@ -81,6 +81,13 @@ BLK_RE = re.compile(
r"f3=(\d):(\S+),(\S+),(\S+) civ=(\d)")
LISTS_RE = re.compile(r"^ailists seq=(\d+) blk=(\d+) pid=(-?\d+) nonEmpty=\d+ sizes\(1\.\.27\)=\[([^\]]*)\]")
ELEM_RE = re.compile(r"^aielem blk=(\d+) pid=(-?\d+) list=(\d+) idx=(\d+) .*? hex=\[([^\]]*)\]")
# The two records a DEEP dump adds (`aiorders.deep=on`). Each says which WORD of the fixed
# element window it followed, so it lands on exactly the field the map already calls a `v` or a
# string -- it is not a second, parallel field map.
VEC_RE = re.compile(r"^aivec blk=(\d+) pid=(-?\d+) list=(\d+) idx=(\d+) at=w(\d+) "
r"first=\S+ cap=(\d+) count=(\d+) ints=\[([^\]]*)\]")
STR_RE = re.compile(r"^aistr blk=(\d+) pid=(-?\d+) list=(\d+) idx=(\d+) at=w(\d+) "
r"sso=\d+ len=(\d+) text=\"(.*)\"\s*$")
def f32(word):
@ -112,6 +119,8 @@ def parse_log(path):
"civ": m.group(19) == "1",
"sizes": [0] * 27,
"elems": {},
"vecs": {},
"strs": {},
}
continue
m = LISTS_RE.match(line)
@ -131,11 +140,41 @@ def parse_log(path):
blk = batch(seq)["blocks"].get(idx)
if blk is not None:
blk["elems"].setdefault(listno, {})[elemidx] = words
continue
m = VEC_RE.match(line)
if m:
seq = max(batches) if batches else 0
idx, listno, elemidx = int(m.group(1)), int(m.group(3)), int(m.group(4))
at, count = int(m.group(5)), int(m.group(7))
ints = [int(x) for x in m.group(8).split()]
blk = batch(seq)["blocks"].get(idx)
if blk is not None:
# `count` is what the dump says it followed; `ints` is what it printed. A
# disagreement is a defect in the record and this tool refuses to guess which
# half is right -- the element keeps its shallow (length-only) form.
if len(ints) == count:
blk["vecs"].setdefault(listno, {}).setdefault(elemidx, {})[at] = ints
continue
m = STR_RE.match(line)
if m:
seq = max(batches) if batches else 0
idx, listno, elemidx = int(m.group(1)), int(m.group(3)), int(m.group(4))
at, text = int(m.group(5)), m.group(7)
blk = batch(seq)["blocks"].get(idx)
if blk is not None:
blk["strs"].setdefault(listno, {}).setdefault(elemidx, {})[at] = text
return batches
def element_fields(listno, words):
"""The wire fields of one element, as `.tcb` tokens."""
def element_fields(listno, words, deep=None, problems=None):
"""The wire fields of one element, as `.tcb` tokens.
`deep` is {word index -> [values]} from a deep dump's `aivec` rows. It is consulted ONLY at
a word the shallow map already types as a vector: the deep rows say which word they followed,
so a row that lands anywhere else is a disagreement between the two records and is reported,
never silently used to invent a field the map does not have.
"""
deep = deep or {}
spec = LIST_MAP.get(listno)
if spec is None:
# An unmapped list: record that the element exists and nothing about it. The command
@ -156,14 +195,29 @@ def element_fields(listno, words):
elif kind == "v":
if k + 1 >= len(words):
out.append("?")
continue
n = (words[k + 1] - w) // 4
values = deep.get(k)
if values is None:
out.append("v%d" % n)
elif len(values) != n:
# The begin/end pair and the followed contents disagree. Keep the length-only
# form: a route whose hops we are not sure of must stay unapplied.
if problems is not None:
problems.append("list %d elem %d word %d: begin/end says %d hop(s), the deep "
"row printed %d -- kept as length-only"
% (listno, k, k, n, len(values)))
out.append("v%d" % n)
else:
out.append("v%d" % ((words[k + 1] - w) // 4))
out.append("v%d:%s" % (n, ",".join(str(v) for v in values)))
else:
out.append("?")
return out
def emit(batch, seq, source, names, seeds, input_name):
def emit(batch, seq, source, names, seeds, input_name, problems=None):
if problems is None:
problems = []
lines = ["tcb 1",
"meta source %s" % source,
"meta input %s" % input_name,
@ -194,10 +248,35 @@ def emit(batch, seq, source, names, seeds, input_name):
continue
lines.append("list %d %d %d" % (idx, listno, n))
have = b["elems"].get(listno, {})
vecs = b.get("vecs", {}).get(listno, {})
strs = b.get("strs", {}).get(listno, {})
spec = LIST_MAP.get(listno) or []
vecwords = {k for kind, k in spec if kind == "v"}
for e in range(n):
words = have.get(e)
fields = element_fields(listno, words) if words is not None else ["?"]
deep = vecs.get(e, {})
fields = (element_fields(listno, words, deep, problems)
if words is not None else ["?"])
lines.append("elem %d %d %d %s" % (idx, listno, e, " ".join(fields)))
# A deep row the field map has no vector at. It is a real observation and it is
# NOT a field: recording it as one would be inventing a mapping the dump does not
# justify. It goes in as a comment so the record keeps it and the parser does
# not read it, and it is counted as a followed payload this tool cannot place.
for at in sorted(deep):
if at in vecwords:
continue
problems.append(
"list %d elem %d: a followed vector at word %d, which the field map does "
"not type as a vector -- recorded as a comment, not applied" % (listno, e, at))
lines.append("# observed list %d elem %d word %d vector: [%s]"
% (listno, e, at, ",".join(str(v) for v in deep[at])))
for at in sorted(strs.get(e, {})):
problems.append(
"list %d elem %d: a followed string at word %d, which the field map types "
"as part of an object it cannot read -- recorded as a comment, not applied"
% (listno, e, at))
lines.append("# observed list %d elem %d word %d string: %s"
% (listno, e, at, strs[e][at]))
return "\n".join(lines) + "\n"
@ -241,7 +320,10 @@ def main(argv=None):
return 2
seeds.append((netid, value))
text = emit(batches[seq], seq, a.log.split("/")[-1], names, seeds, a.input)
problems = []
text = emit(batches[seq], seq, a.log.split("/")[-1], names, seeds, a.input, problems)
for p in problems:
print("deep: %s" % p, file=sys.stderr)
if a.out:
with open(a.out, "w") as f:
f.write(text)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,160 @@
total leaves compared-and-differing: 1092
539 morale event ring (per-system cme2)
130 /Sim/systems/Sys[]/cme2/.[]/mid
111 /Sim/systems/Sys[]/cme2/.[]/mtr
80 /Sim/systems/Sys[]/cme2/.[]/mdsc
79 /Sim/systems/Sys[]/cme2/.[]/mtp
72 /Sim/systems/Sys[]/cme2/.[]/mn
67 /Sim/systems/Sys[]/cme2/.[]/mfx/mv
154 colony growth + repair + bonuses (per system)
18 /Sim/systems/Sys[]/PvInfra
17 /Sim/systems/Sys[]/RepCur
17 /Sim/systems/Sys[]/RepMax
16 /Sim/systems/Sys[]/PvPop
10 /Sim/systems/Sys[]/pbon
10 /Sim/systems/Sys[]/ibon
6 /Sim/systems/Sys[]/Pop
6 /Sim/systems/Sys[]/Infra
5 /Sim/systems/Sys[]/Suit
5 /Sim/systems/Sys[]/PvSuit
5 /Sim/systems/Sys[]/ntdev
4 /Sim/systems/Sys[]/PvCM/mv
4 /Sim/systems/Sys[]/PvRes
4 /Sim/systems/Sys[]/Rts/SRt
4 /Sim/systems/Sys[]/Rts/SRsc
4 /Sim/systems/Sys[]/Pop2/PopG/PopC
3 /Sim/systems/Sys[]/cm/mv
3 /Sim/systems/Sys[]/PvPop2/PopG/PopC
3 /Sim/systems/Sys[]/haltv[]
1 /Sim/systems/Sys[]/Pop2/PopG
1 /Sim/systems/Sys[]/Pop2/PopNG
1 /Sim/systems/Sys[]/Rts/SRtf
1 /Sim/systems/Sys[]/Rts/SRi
1 /Sim/systems/Sys[]/dcs/PopG
1 /Sim/systems/Sys[]/dcs/PopNG
1 /Sim/systems/Sys[]/Rts/SRoh
1 /Sim/systems/Sys[]/TnsOH
1 /Sim/systems/Sys[]/PvCM/msp
1 /Sim/systems/Sys[]/PvCM/mnsp
150 fleet objects: position, route, range, layout
29 /Sim/fleets/Flt[]/ships/Ship[]/Range
24 /Sim/fleets/Flt[]/Pos/.[]
24 /Sim/fleets/Flt[]/PrvPos/.[]
11 /Sim/fleets/Flt[]
11 /Sim/fleets/Flt[]/Lay/.[]
11 /Sim/fleets/Flt[]/ships/Ship[]
7 /Sim/fleets/Flt[]/FtFlg
4 /Sim/fleets/Flt[]/Ftpae
4 /Sim/fleets/Flt[]/FPlan
4 /Sim/fleets/Flt[]/LocID
4 /Sim/fleets/Flt[]/HFPlan
4 /Sim/fleets/Flt[]/NShips
4 /Sim/fleets/Flt[]/FPlan/FPeta2
3 /Sim/fleets/Flt[]/ships/Ship[]/Health/.[]
3 /Sim/fleets/Flt[]/FtOrig/.[]
2 /Sim/fleets/Flt[]/ships/Ship[]/RefCap
1 /Sim/fleets/Flt[]/ships/Ship[]/Act
79 observed designs / techs / weapons (per player)
21 /Sim/players/Player[]/odes/.[]/otnL
17 /Sim/players/Player[]/odes/.[]/otnF
17 /Sim/players/Player[]/odes/.[]/odid
17 /Sim/players/Player[]/otch/.[]/otnL
5 /Sim/players/Player[]/owep/.[]/otnL
2 /Sim/players/Player[]/otch/.[]
30 other player leaves
4 /Sim/players/Player[]/Events/Events/.[]
3 /Sim/players/Player[]/designs/Des[]
2 /Sim/players/Player[]/Sav
2 /Sim/players/Player[]/Events/EvNxID
2 /Sim/players/Player[]/BnkPr
2 /Sim/players/Player[]/BnkEl
2 /Sim/players/Player[]/nmeid
1 /Sim/players/Player[]/OwnId[]
1 /Sim/players/Player[]/TechTree/St[]
1 /Sim/players/Player[]/TechTree/TResDone[]
1 /Sim/players/Player[]/TechTree/TAcq[]
1 /Sim/players/Player[]/TechTree/TiAcq[]
1 /Sim/players/Player[]/TerraMod
1 /Sim/players/Player[]/Maint
1 /Sim/players/Player[]/FNG/FNGNum
1 /Sim/players/Player[]/PvSav
1 /Sim/players/Player[]/lboid
1 /Sim/players/Player[]/ResTNm
1 /Sim/players/Player[]/NumOwn
1 /Sim/players/Player[]/NumDes
23 visibility remainder (TShn)
15 /Sim/systems/Sys[]/TShn[]
8 /Sim/systems/Sys[]/TShn
23 system<->fleet membership
12 /Sim/systems/Sys[]/Flt[]
7 /Sim/systems/Sys[]/NumFlts
4 /Sim/systems/Sys[]/Flt
20 ship census records (ShipRecs)
7 /Sim/players/Player[]/ShipRecs/sri[]
6 /Sim/players/Player[]/ShipRecs/srb[]
2 /Sim/players/Player[]/ShipRecs/srd[]
2 /Sim/players/Player[]/ShipRecs/src[]
2 /Sim/players/Player[]/ShipRecs/srl[]
1 /Sim/players/Player[]/ShipRecs/srbd
20 build queues (ship construction)
10 /Sim/systems/Sys[]/BQ/ords/.[]
4 /Sim/systems/Sys[]/BQ/ords/.
3 /Sim/systems/Sys[]/BQ/ords/.[]/ordID
1 /Sim/systems/Sys[]/BQ
1 /Sim/systems/Sys[]/BQ/ords
1 /Sim/systems/Sys[]/BQ/ords/.[]/conleft
15 other system leaves
7 /Sim/systems/Sys[]/Bats2
3 /Sim/systems/Sys[]/DefF
1 /Sim/systems/Sys[]/RfRFlags
1 /Sim/systems/Sys[]/TAcq
1 /Sim/systems/Sys[]/PID[]
1 /Sim/systems/Sys[]/OID[]
1 /Sim/systems/Sys[]/FFlags
13 combat reports (crep) and CD
6 /Sim/crep[]/prep/.[]/nshp[]
2 /CD[]/CmbR[]
2 /CD[]/apr/.[]
1 /CD[]/NCmbR
1 /CD[]/NPrvVa
1 /CD[]/apr/.
10 master id lists + counters + generator
1 /Sim/Act
1 /Sim/NMnx
1 /Sim/DesignIDs[]
1 /Sim/FleetIDs[]
1 /Sim/ShipIDs[]
1 /Sim/ModCount
1 /Sim/RNG/.
1 /Sim/cmbtid
1 /Sim/NumFlts
1 /Sim/NumActs
8 turn record archive (turnstats)
8 /Sim/turnstats/history/hist[]/stats[]
6 trade manager
2 /Sim/trdmgr/trades/Trade[]/fwarn/.[]
2 /Sim/trdmgr/trades/Trade[]/tsflt[]
1 /Sim/trdmgr/trades/Trade[]/fwarn/.
1 /Sim/trdmgr/trades/Trade[]/fwarn/.[]/ntrns
1 save-writer defect (sprjs/usp)
1 /Sim/sprjs/usp
1 derived checksum
1 /Summary/Checksum
UNGROUPED (0):

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,206 @@
load: /home/alex/sots-re/verify/results/saves/ad-turn27-two-raiders.sav
1052300 inflated bytes, 0 error(s), 1 warning(s)
turn 27, frame 27, modCount 1428, 8 player(s), 28 system(s), 54 fleet(s)
data: ./sotsdata -- 885 section(s) over 7 race(s), 5196 string(s), 46 load problem(s)
turn-commands: br2-deep.tcb -- 8 block(s), 3 seed(s)
source: BR2-deep-aiorders.txt
input: ad-turn27-two-raiders.sav
batch: seq=2 n=8
note: the load-time batch is excluded; this is the End-Turn submission
turn commands: 8 block(s), 4 submitting, 85 command(s)
ModCount bumps charged 70
applied 4 transcribed 0 declined 36 incomplete 45
leaves written by commands 0
step blk player cost disposition command
6 1 32 1 incomplete list 5 system rates [0]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [1]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [2]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [3]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [4]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [5]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [6]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [7]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [8]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [9]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [10]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [11]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [12]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [13]
the capture does not carry all eight fields of the rates frame
6 1 32 1 incomplete list 5 system rates [14]
the capture does not carry all eight fields of the rates frame
7 1 32 0 incomplete list 23 population [0]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [1]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [2]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [3]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [4]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [5]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [6]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [7]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [8]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [9]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [10]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [11]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [12]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [13]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
7 1 32 0 incomplete list 23 population [14]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
9 0 16 1 applied gate loop A (group5, research target, research rate) / research rate
the empire research/savings slider; the applier is a small handler and only this field write is modelled from it
9 1 32 1 applied gate loop A (group5, research target, research rate) / research rate
the empire research/savings slider; the applier is a small handler and only this field write is modelled from it
9 2 496 1 applied gate loop A (group5, research target, research rate) / research rate
the empire research/savings slider; the applier is a small handler and only this field write is modelled from it
9 3 512 1 applied gate loop A (group5, research target, research rate) / research rate
the empire research/savings slider; the applier is a small handler and only this field write is modelled from it
10 1 32 1 incomplete list 1 new designs [0]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
10 1 32 1 incomplete list 1 new designs [1]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
10 1 32 1 incomplete list 1 new designs [2]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
12 1 32 1 declined list 3 build orders [0]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [1]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [2]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [3]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [4]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [5]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [6]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [7]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [8]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [9]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [10]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [11]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [12]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [13]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [14]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [15]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [16]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [17]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
12 1 32 1 declined list 3 build orders [18]
ship construction: no phase in this engine builds a ship, so the build queue's ordinal, the maintenance charge, the savings debit and the hull's id allocation all have no model
17 1 32 1 declined list 10 [0]
an unnamed command; its three words fit 'assign these ships to this fleet at this system' and that reading has never been tested
17 1 32 1 declined list 10 [1]
an unnamed command; its three words fit 'assign these ships to this fleet at this system' and that reading has never been tested
17 1 32 1 declined list 10 [2]
an unnamed command; its three words fit 'assign these ships to this fleet at this system' and that reading has never been tested
17 1 32 1 declined list 10 [3]
an unnamed command; its three words fit 'assign these ships to this fleet at this system' and that reading has never been tested
18 1 32 1 incomplete list 12 fleet layouts [0]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [1]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [2]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [3]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [4]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [5]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [6]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [7]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [8]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [9]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [10]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
18 1 32 1 incomplete list 12 fleet layouts [11]
the capture recorded this element's presence but not all of its payload; the command is counted and deliberately not applied
20 1 32 1 declined list 14 fleet tasks [0]
a fleet task keyed on (fleet, mode); the two modes' effects are unread, and the fleet it names is the client-allocated one from list 8
20 1 32 1 declined list 14 fleet tasks [1]
a fleet task keyed on (fleet, mode); the two modes' effects are unread, and the fleet it names is the client-allocated one from list 8
20 1 32 1 declined list 14 fleet tasks [2]
a fleet task keyed on (fleet, mode); the two modes' effects are unread, and the fleet it names is the client-allocated one from list 8
20 1 32 1 declined list 14 fleet tasks [3]
a fleet task keyed on (fleet, mode); the two modes' effects are unread, and the fleet it names is the client-allocated one from list 8
20 1 32 1 declined list 14 fleet tasks [4]
a fleet task keyed on (fleet, mode); the two modes' effects are unread, and the fleet it names is the client-allocated one from list 8
20 1 32 1 declined list 14 fleet tasks [5]
a fleet task keyed on (fleet, mode); the two modes' effects are unread, and the fleet it names is the client-allocated one from list 8
20 1 32 1 declined list 14 fleet tasks [6]
a fleet task keyed on (fleet, mode); the two modes' effects are unread, and the fleet it names is the client-allocated one from list 8
20 1 32 1 declined list 14 fleet tasks [7]
a fleet task keyed on (fleet, mode); the two modes' effects are unread, and the fleet it names is the client-allocated one from list 8
23 1 32 1 declined list 7 colonize [0]
colonisation from a named colony ship: the colony formulas exist but the ship-to-planet resolution the command relies on does not
23 1 32 1 declined list 7 colonize [1]
colonisation from a named colony ship: the colony formulas exist but the ship-to-planet resolution the command relies on does not
24 1 32 1 declined list 8 fleet moves [0]
the order names a fleet the input save does not contain -- the client allocates the fleet object AND its id before it submits, and that allocator is unread, so applying a route would move a fleet that does not exist
24 1 32 1 declined list 8 fleet moves [1]
the order names a fleet the input save does not contain -- the client allocates the fleet object AND its id before it submits, and that allocator is unread, so applying a route would move a fleet that does not exist
24 1 32 1 declined list 8 fleet moves [2]
the order names a fleet the input save does not contain -- the client allocates the fleet object AND its id before it submits, and that allocator is unread, so applying a route would move a fleet that does not exist
phases
turn drivers (the milestone's denominator): 16 of 44 modelled, 12 committed
verified 0 implemented 4 partial 8 blocked 4 stub 28
post-combat tail (written to the autosave, tracked separately): 6 of 37 modelled
verified 0 implemented 1 partial 4 blocked 1 stub 31
this run
leaves written 96
leaves NOT written by a blocked phase 119
generator words consumed 16 (state loaded, left untouched)
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
- two draws are downstream of the budget's research allocation -- ProcessResearch's completion Chance and the tech-effect callback's own roll (0 or 1 word each). The allocation needs ComputeBudget's per-system money, which is ComputeOutput with the system's OWN rate sliders; the max-income form of that money is now modelled and self-checked (see T31), but it is NOT the one this path takes
- a successful raid roll may draw one further word to pick its target; no roll succeeded on any measured turn, so the cost of a success is 0 or 1 and undetermined
! 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
wrote r1-deep.sav (100615 bytes gzipped, 1052288 inflated)
metric -> r1.json

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,141 @@
tcb 1
meta source BR2-deep-aiorders.txt
meta input ad-turn27-two-raiders.sav
meta batch seq=2 n=8
meta note the load-time batch is excluded; this is the End-Turn submission
seed 32 0x156ebbbd
seed 496 0xfe7b2826
seed 512 0x0ed341d1
block 0 16
gate 0 rate 1
block 1 32
gate 1 rate 0.8
list 1 1 3
elem 1 1 0 ?
# observed list 1 elem 0 word 2 string: Egg Thief Mk 4
elem 1 1 1 ?
# observed list 1 elem 1 word 2 string: Egg Thief Mk 5
elem 1 1 2 ?
# observed list 1 elem 2 word 2 string: Bravestar Mk 3
list 1 3 19
elem 1 3 0 i291 i962 i384 i0
elem 1 3 1 i292 i962 i384 i0
elem 1 3 2 i293 i962 i384 i0
elem 1 3 3 i294 i962 i384 i0
elem 1 3 4 i295 i962 i384 i0
elem 1 3 5 i296 i962 i384 i0
elem 1 3 6 i297 i962 i272 i0
elem 1 3 7 i298 i962 i272 i0
elem 1 3 8 i299 i962 i272 i0
elem 1 3 9 i300 i962 i272 i0
elem 1 3 10 i301 i962 i272 i0
elem 1 3 11 i302 i962 i368 i0
elem 1 3 12 i303 i962 i368 i0
# observed list 3 elem 12 word 6 vector: []
elem 1 3 13 i304 i1490 i368 i0
elem 1 3 14 i305 i1474 i368 i0
elem 1 3 15 i306 i1826 i464 i0
elem 1 3 16 i307 i1826 i464 i0
elem 1 3 17 i308 i1826 i464 i0
elem 1 3 18 i309 i1522 i80 i0
list 1 5 15
elem 1 5 0 i464 ? ? ? ? ? ? ?
elem 1 5 1 i80 ? ? ? ? ? ? ?
elem 1 5 2 i160 ? ? ? ? ? ? ?
elem 1 5 3 i192 ? ? ? ? ? ? ?
elem 1 5 4 i272 ? ? ? ? ? ? ?
elem 1 5 5 i288 ? ? ? ? ? ? ?
elem 1 5 6 i304 ? ? ? ? ? ? ?
elem 1 5 7 i336 ? ? ? ? ? ? ?
elem 1 5 8 i352 ? ? ? ? ? ? ?
elem 1 5 9 i368 ? ? ? ? ? ? ?
elem 1 5 10 i384 ? ? ? ? ? ? ?
elem 1 5 11 i400 ? ? ? ? ? ? ?
elem 1 5 12 i416 ? ? ? ? ? ? ?
elem 1 5 13 i432 ? ? ? ? ? ? ?
elem 1 5 14 i448 ? ? ? ? ? ? ?
list 1 7 2
elem 1 7 0 i5904 i0
elem 1 7 1 i6016 i1
list 1 8 3
elem 1 8 0 i2002 v1:256
elem 1 8 1 i1970 v1:384
elem 1 8 2 i1538 v1:240
list 1 10 4
elem 1 10 0 i80 i1970 v1:5264
elem 1 10 1 i384 i1986 v1:6976
elem 1 10 2 i384 i2002 v1:6992
elem 1 10 3 i816 i7072 v11:2992,3456,4304,4912,5680,3184,5856,6000,6256,6464,2720
list 1 12 12
elem 1 12 0 ?
# observed list 12 elem 0 word 6 vector: [2544,2896,2528]
elem 1 12 1 ?
# observed list 12 elem 1 word 6 vector: [2128,2144,3072,1872,1888,1904,2400,2800,3008,3040,3056,2384,2752,2416,2160]
elem 1 12 2 ?
# observed list 12 elem 2 word 6 vector: [2288]
elem 1 12 3 ?
# observed list 12 elem 3 word 6 vector: [2080,2672,2704,2320,1856]
elem 1 12 4 ?
# observed list 12 elem 4 word 6 vector: [3152,3136,2960,3408]
elem 1 12 5 ?
# observed list 12 elem 5 word 6 vector: [3504,3472,3488,3216,3264,3520]
elem 1 12 6 ?
# observed list 12 elem 6 word 6 vector: [2224,4000,4400,3536,3552,3568,1664,1920,3280,3296,3312,3968,3984,1952,2832,2864,3104,3120,2848,2880]
elem 1 12 7 ?
# observed list 12 elem 7 word 6 vector: [4240,4864,4640,4544,4560,4576,4592,4624,4160,4880,4896,3920,3952,4368,4384,4192,4224,4848,4608,4208,4656,4784]
elem 1 12 8 ?
# observed list 12 elem 8 word 6 vector: [6368,6384,4416,4432,4464,4768,3632,4016,4048,4032,3616]
elem 1 12 9 ?
# observed list 12 elem 9 word 6 vector: [3696,4512,4816,4080,3712,4112,4800]
elem 1 12 10 ?
# observed list 12 elem 10 word 6 vector: [6272]
elem 1 12 11 ?
# observed list 12 elem 11 word 6 vector: [6432,6224,6400,6192,6240,6448,6416]
list 1 14 8
elem 1 14 0 i1970 i0 b1
elem 1 14 1 i1970 i1 b1
elem 1 14 2 i1986 i0 b1
elem 1 14 3 i1986 i1 b1
elem 1 14 4 i2002 i0 b1
elem 1 14 5 i2002 i1 b1
elem 1 14 6 i7072 i0 b1
elem 1 14 7 i7072 i1 b1
list 1 23 15
elem 1 23 0 i464 ?
# observed list 23 elem 0 word 2 vector: [12422480,1,2,0,1000000000,0]
elem 1 23 1 i80 ?
# observed list 23 elem 1 word 2 vector: [12422480,1,2,1,600000000,0]
elem 1 23 2 i160 ?
# observed list 23 elem 2 word 2 vector: [12422480,1,2,80,800000000,0]
elem 1 23 3 i192 ?
# observed list 23 elem 3 word 2 vector: [12422480,1,2,272,300000000,0]
elem 1 23 4 i272 ?
# observed list 23 elem 4 word 2 vector: [12422480,1,2,0,400000000,0]
elem 1 23 5 i288 ?
# observed list 23 elem 5 word 2 vector: [12422480,1,2,384,700000000,0]
elem 1 23 6 i304 ?
# observed list 23 elem 6 word 2 vector: [12422480,1,2,464,100000000,0]
elem 1 23 7 i336 ?
# observed list 23 elem 7 word 2 vector: [12422480,1,2,0,200000000,0]
elem 1 23 8 i352 ?
# observed list 23 elem 8 word 2 vector: [12422480,1,2,272,500000000,0]
elem 1 23 9 i368 ?
# observed list 23 elem 9 word 2 vector: [12422480,1,2,368,700000000,0]
elem 1 23 10 i384 ?
# observed list 23 elem 10 word 2 vector: [12422480,1,2,368,800000000,0]
elem 1 23 11 i400 ?
# observed list 23 elem 11 word 2 vector: [12422480,1,2,0,400000000,0]
elem 1 23 12 i416 ?
# observed list 23 elem 12 word 2 vector: [12422480,1,2,0,500000000,0]
elem 1 23 13 i432 ?
# observed list 23 elem 13 word 2 vector: [12422480,1,2,368,400000000,0]
elem 1 23 14 i448 ?
# observed list 23 elem 14 word 2 vector: [12422480,1,2,368,500000000,0]
block 2 496
gate 2 rate 0.8
block 3 512
gate 3 rate 0.8
block 4 0
block 5 0
block 6 0
block 7 0

View file

@ -0,0 +1,110 @@
tcb 1
meta source BR2-deep-aiorders.txt
meta input ad-turn27-two-raiders.sav
meta batch seq=2 n=8
meta note the load-time batch is excluded; this is the End-Turn submission
seed 32 0x156ebbbd
seed 496 0xfe7b2826
seed 512 0x0ed341d1
block 0 16
gate 0 rate 1
block 1 32
gate 1 rate 0.8
list 1 1 3
elem 1 1 0 ?
elem 1 1 1 ?
elem 1 1 2 ?
list 1 3 19
elem 1 3 0 i291 i962 i384 i0
elem 1 3 1 i292 i962 i384 i0
elem 1 3 2 i293 i962 i384 i0
elem 1 3 3 i294 i962 i384 i0
elem 1 3 4 i295 i962 i384 i0
elem 1 3 5 i296 i962 i384 i0
elem 1 3 6 i297 i962 i272 i0
elem 1 3 7 i298 i962 i272 i0
elem 1 3 8 i299 i962 i272 i0
elem 1 3 9 i300 i962 i272 i0
elem 1 3 10 i301 i962 i272 i0
elem 1 3 11 i302 i962 i368 i0
elem 1 3 12 i303 i962 i368 i0
elem 1 3 13 i304 i1490 i368 i0
elem 1 3 14 i305 i1474 i368 i0
elem 1 3 15 i306 i1826 i464 i0
elem 1 3 16 i307 i1826 i464 i0
elem 1 3 17 i308 i1826 i464 i0
elem 1 3 18 i309 i1522 i80 i0
list 1 5 15
elem 1 5 0 i464 ? ? ? ? ? ? ?
elem 1 5 1 i80 ? ? ? ? ? ? ?
elem 1 5 2 i160 ? ? ? ? ? ? ?
elem 1 5 3 i192 ? ? ? ? ? ? ?
elem 1 5 4 i272 ? ? ? ? ? ? ?
elem 1 5 5 i288 ? ? ? ? ? ? ?
elem 1 5 6 i304 ? ? ? ? ? ? ?
elem 1 5 7 i336 ? ? ? ? ? ? ?
elem 1 5 8 i352 ? ? ? ? ? ? ?
elem 1 5 9 i368 ? ? ? ? ? ? ?
elem 1 5 10 i384 ? ? ? ? ? ? ?
elem 1 5 11 i400 ? ? ? ? ? ? ?
elem 1 5 12 i416 ? ? ? ? ? ? ?
elem 1 5 13 i432 ? ? ? ? ? ? ?
elem 1 5 14 i448 ? ? ? ? ? ? ?
list 1 7 2
elem 1 7 0 i5904 i0
elem 1 7 1 i6016 i1
list 1 8 3
elem 1 8 0 i2002 v1
elem 1 8 1 i1970 v1
elem 1 8 2 i1538 v1
list 1 10 4
elem 1 10 0 i80 i1970 v1
elem 1 10 1 i384 i1986 v1
elem 1 10 2 i384 i2002 v1
elem 1 10 3 i816 i7072 v11
list 1 12 12
elem 1 12 0 ?
elem 1 12 1 ?
elem 1 12 2 ?
elem 1 12 3 ?
elem 1 12 4 ?
elem 1 12 5 ?
elem 1 12 6 ?
elem 1 12 7 ?
elem 1 12 8 ?
elem 1 12 9 ?
elem 1 12 10 ?
elem 1 12 11 ?
list 1 14 8
elem 1 14 0 i1970 i0 b1
elem 1 14 1 i1970 i1 b1
elem 1 14 2 i1986 i0 b1
elem 1 14 3 i1986 i1 b1
elem 1 14 4 i2002 i0 b1
elem 1 14 5 i2002 i1 b1
elem 1 14 6 i7072 i0 b1
elem 1 14 7 i7072 i1 b1
list 1 23 15
elem 1 23 0 i464 ?
elem 1 23 1 i80 ?
elem 1 23 2 i160 ?
elem 1 23 3 i192 ?
elem 1 23 4 i272 ?
elem 1 23 5 i288 ?
elem 1 23 6 i304 ?
elem 1 23 7 i336 ?
elem 1 23 8 i352 ?
elem 1 23 9 i368 ?
elem 1 23 10 i384 ?
elem 1 23 11 i400 ?
elem 1 23 12 i416 ?
elem 1 23 13 i432 ?
elem 1 23 14 i448 ?
block 2 496
gate 2 rate 0.8
block 3 512
gate 3 rate 0.8
block 4 0
block 5 0
block 6 0
block 7 0