Repository navigation
v0.2.3
Implements Synod 0.2, now complete. synod run draws the run: next to the
trace it writes scene.json, the animation the player will show. Programs
without their own look are drawn by the default look: node cards with their
state, messages flying between nodes, crashes, broken invariants and
captions.
Added
synod runwritesout/scene.json(synod-scene/1) next to the trace and printsscene <length>, <n> shapes -> out/scene.json(the length in seconds, such as147.98s) after the existing status lines. The scene is written for every run, also aftersim.Failed;--summaryprints the same text as before and writes the scene silently.--scene file(-for stdout, with the status lines on stderr;--trace -and--scene -together exit 2),--pace x(0.25 to 4, up to three decimals) and--mode ordered|proportional.--watchand--json-eventsstill exit 2.- The scene builder runs the observers of the program's looks over the facts of the run. A program that does not use
std/lookis drawn bystd/look/basic: node cards, state rows, message flights, thesim.Brokenborder and lesson captions. - A fault inside a look is a look failure, not part of the trace:
look failed at <time>: <pos>: error[<code>]: <message>, exit 1, and a partial scene with afailedmarker. trace.Decodereadstrace.jsonlback into facts;Build(facts)equalsBuild(Decode(Encode(facts))).- std:
look.Flight,net.Id,net.Type,sim.StateRows, andlook.Tweenof"x"and"y"to a shape;look.Travel,look.Removeandstd/look/basicare ordinary Synod. - Golden
scene.jsonfor every example, scene determinism over 20 seeds, scene hashes in the cross-OS CI job,FuzzScenein the weekly fuzz run, andBenchmarkScenePing5000. - The
runfuzz target and the generator now also build scenes, with generated looks.
Changed
- The status of a failed run is followed by the scene line, so the rich
failed at …goldens oftestdata/run/errorsend with it.