Skip to content

v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 29 Oct 12:23
· 1 commit to main since this release
cb8836c

Implements Synod 0.3. synod version prints language 0.3, synod new writes synod 0.3, and trace headers say "synod":"0.3". A synod.mod that says an older version (synod 0.2) is still accepted, and the version line does not gate features; a newer one (synod 0.4) is an error.

Changed

  • The embedded look/basic follows std: message tags show only mid-flight. Scene ids and goldens change; traces are unchanged.
  • look.Flight moves the flown shape from the edge of a to the edge of b, 8 clear of each box (the Place size model, group extents, proportional clamp when the cards are close, halfway between the clipped ends when dropped; straight up above the shape when both are at one position). Scenes with flights change; traces are unchanged. The embedded std follows std.
  • The ring layout is wider and sits higher: radii 380 and 170 (growth up to 1.4 in height), and the ring, row and grid layouts centre on (520, 315), 10 above the scene centre, since state rows hang below the cards. An even number of cards turns half a slot counter-clockwise, so n1 is at the left or top left. Scenes change; traces are unchanged.
  • sim.StateRows gives each row at most 24 characters (StateRowMax): a longer one keeps its first 23 and ends in …. Look-only, so traces keep full values. The embedded std and the vendored examples follow std and examples.
  • The fit test also checks a mid-scene key, that every state row has at most 24 characters, that rows clear other cards and icons by 8, and that no two labels overlap.
  • The embedded look/basic writes the lesson note at the top of the canvas (y 40). The fit test measures notes and reasons against cards, rows, heads, icons, counters and each other, with no exclusion, and counts a counter as a box.
  • The embedded and vendored paxos keeps its promise, accepted proposal and round on std/disk; only the paxos trace gains disk.Written events, every other trace is byte-identical.
  • Scenes use a 1040 by 650 canvas with its centre at (520, 325), look.Orbit has radius 200, and the ring layout is an ellipse (radii 300 and 150, turned half a slot for an even number of cards, growing up to 1.4 with the number of cards). Default-theme scenes change once; traces are unchanged. The embedded std and the vendored examples follow std and examples.
  • look.Place s beside t puts s on the right of t when its box lies inside the canvas there (t at the position it settles at) and on the left of t otherwise, with the same gap and sizes; the side is chosen when the Place runs. Scenes with a note beside a card at the right edge change; traces are unchanged. The fit test also checks every label at each of its own key times.

Fixed

  • synod new demo is refused like main, time and sim, with or without --lib: the package demo collided with demo/demo.synod, the main program, which overwrote the library.
  • synod check (and fmt, doc) over a folder that holds two module folders with the same module path, such as counter/synod.mod and proj/counter/synod.mod, panicked while lowering because both modules' packages shared one import path. It now reports error[duplicate-name]: module "counter" is declared by two folders, counter and proj/counter at the second synod.mod, with the hint to check one module folder at a time, and exits 1.