Expose the "skyline" shape inside before to external consumers - #36
Merged
Conversation
…biner, no genericization) The 2026-08-19 rulings from review of the shape-walk proposal: the method is shape() on Version/Party/Clock with no public coinage of "skyline"; Plateau/Rise stand; the Clock walk item is the tuple (Plateau, bool); the N-way combiner ships publicly with const-generic array arity; the magnitude genericization is deferred to the first constructed kernel re-expression rather than shipping with the feature. Doc-only change: the full gate is deferred to the implementation commits (gate-lints run clean here; design/ is outside every building gate leg).
Ruled 2026-08-19: Party::shape() yields Region { owned: bool, depth: u64 }
rather than sharing Plateau. At a binary codomain the absolute spelling is
cheaper than any delta, and it makes the magnitude-1 invariant
unrepresentable instead of policed prose. Consequence recorded: the public
combiner is version-only; a party combiner ([bool; N] cells) ships with
its first consumer.
Doc-only change; gate-lints clean at the prior doc commit, design/ is
outside every building gate leg.
…estly A dataset now accretes across measuring runs: a new operation's panel is measured alone rather than re-measuring the whole atlas (~5h). The dump and widget indexes carry only the run parameters every document must share (base_seed, samples_per_column), and each operation document carries its own measurement commit; the readers hold the parameters uniform and the commit present. Dump format v2, widget format v3; the committed dump and datasets are migrated in place (data untouched: fuelscape-verify byte-compares a fresh compaction clean), and the gallery stamp defers per-panel provenance to each figure's own caption. Ruled by owner 2026-08-19 (per-op commit provenance over re-stamping or a full re-measure). Verified: fuelscape-verify clean; the fuelscape suite and the full gate run green at the branch tip (the shape-walk feature commits), where the parity test's new-surface obligations are discharged.
…ctions
The shape surface ruled in design/version-skyline-iterator.md:
- Version::shape() yields Plateau { rise: Option<Rise>, depth } per
maximal constant run, delta-encoded (Rise::Up/Down carry nonzero Ticks;
the level step is spelled once, as None), left to right from height 0.
- Party::shape() yields its own absolute item, Region { owned, depth }:
at a binary codomain the absolute spelling is cheaper than any delta
and makes the magnitude-1 invariant unrepresentable.
- Clock::shape() yields (Plateau, bool): the version's plateaus refined
by the party's regions, the first fragment carrying the rise.
- shape::combine([Plateaus; N]) walks N version shapes as the coarsest
common refinement, Cell { depth, rises: [Option<Rise>; N] },
const-generic arity; N = 0 yields the trivial cell.
- Ticks::limbs() spells any count in base-2^64 (LSB first, canonical,
exact-size, allocation-free) and TryFrom<&Ticks> for u64 answers the
machine-range case (error::TooWide past it).
The walks are transliterations over the existing overlay cursors
(LeafCursor / IdLeafCursor) with the advance law restated once over a
Refine trait at arity N; no arithmetic runs in any walk, and draining is
linear in the encoded size.
Validation, through the public door: descriptors in the pointwise
differential table bind all three legs per walk (prod/tree directly, fs
by rebuilding row listings into normal oracle trees and scanning the
lifts); the shared row folds assert nonzero rises, nonnegative running
heights, and exact interval tiling on every population; public-door
witnesses hold join/meet to pointwise extrema and the causal order to
pointwise comparison over combined shapes; unit pins cover arity 0/1,
the started-input guard, fusing, and trivial values; limb tests pin the
respelling, canonicality, and exact-size honesty.
Estate integration: surface roster rows (Bound/Trans via the
descriptors; Ticks::limbs under the ratified NotAPaperObject carrier
family), surfacecheck census pins for every new trait impl, board
coverage dispositions (linear single-pass reads: no amplification axis),
fuelscape panels for all four walks (guest kernels digest full drains;
the combiner dispatches per arity to the declared cap of 16 over a
capped version-slice input space) with exemptions for the carrier
surfaces, and Ticks prose re-denominated for the new conversions out.
Gate: clean (all streams), including surface-totality and the fuelscape
parity suite. Panel measurements land in the follow-up commit.
The four new panels — version_shape, shape_combine, party_shape, clock_shape — measured on the Helios host at the committed run parameters (seed 0xa71a5, 4096 samples/column, 4096-byte grid; ~53k samples over 12-13 columns each) and stamped with the shape feature commit's provenance under the accreting dump format. The dump merge appends the four op documents and their index entries; the widget datasets re-derive from the merged dump (fuelscape-verify byte-clean), and each new operation's Complexity section pulls its island in, which the doc-attachment totality test now requires. Gate: clean, all streams.
Ruled 2026-08-19: shape::combine takes [&Version; N] rather than [Plateaus; N] — a mid-walk input is unrepresentable instead of guarded, by the same invalid-states-unrepresentable reasoning as the Region ruling. The Plateaus started flag, the documented panic, and its guard test dissolve with it; the guest kernel and the descriptor spellings simplify to match. Also fixes a four-slash doc-comment typo from the rustdoc editing pass (clippy::four_forward_slashes). The committed shape_combine fuelscape panel remains stamped with the commit it was measured at; this change moves only walk construction into combine (a few instructions per call, invisible at the panel's binning), and the accreting format records that provenance honestly. Gate: clean, all streams.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.