Record the leftover minimum and the images in the trees
Two rounds past the ninth sweep: `b295c8b` reads a share under a parent that divides nothing as a minimum, which is what Bryan said it means and what a span already did, sharing one comparison with it; `2dba90b` grows images in the generated trees, which is the only widget here whose hint is a length in pixels and so the only one that reaches the case. The dump baseline is 34,571 boxes now that the trees carry images, and a seed no longer names the tree it used to -- the log says what that costs and where those defects live instead. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
da6b003a1e
commit
6a92857079
2 files changed
+68
-21
No files matched your search
+17
-11
@@ -6,8 +6,8 @@ found is in `docs/LAYOUT_LOG.md`.
|
||||
|
||||
## The Iris layout repair is submitted
|
||||
|
||||
**Iris PR #19** (`layout/one-ask`) replaces closed #18. The tip is `c2b8bf8`,
|
||||
and past the reviewed `cadfba0` it is eleven rounds, each described in
|
||||
**Iris PR #19** (`layout/one-ask`) replaces closed #18. The tip is `2dba90b`,
|
||||
and past the reviewed `cadfba0` it is twelve rounds, each described in
|
||||
`docs/LAYOUT_LOG.md`:
|
||||
|
||||
- **The repair**, `add6774` and `84dad21` -- collapsed-share placement,
|
||||
@@ -50,6 +50,11 @@ and past the reviewed `cadfba0` it is eleven rounds, each described in
|
||||
call sites, the helper the eighth sweep shared being unable to see the
|
||||
defect it had just fixed, two bare arrays where the framework names the
|
||||
pair, forty-five lines nothing references, and one word for two things.
|
||||
- **A leftover as a minimum, and images in the trees**, `b295c8b` and
|
||||
`2dba90b` -- a share under a parent that divides nothing losing the
|
||||
overflow its pixels asked for, said as the place the parent gives and
|
||||
sharing one comparison with the span; and `Image` grown in the generated
|
||||
trees, which is the only widget here whose hint is a length in pixels.
|
||||
|
||||
The settled design of the vocabulary rounds is in `docs/LAYOUT.md` under
|
||||
"Three names, and the one argument that says them". Bryan settled the API
|
||||
@@ -106,9 +111,9 @@ the name it is reachable by.
|
||||
**Always**, because they cost nothing: format, workspace clippy under
|
||||
`-D warnings` with and without `layout-diagnostics`, the workspace tests, and
|
||||
the **cold dump**. `layout_dump` over 400 depth-5 trees is **34,488** boxes
|
||||
-- counted again on 2026-09-20, the fourth through eighth sweeps having all
|
||||
repeated 34,492, which is a `wc -l` of the whole run rather than of its box
|
||||
lines -- and it is the only thing that catches two same-typed values being
|
||||
-- **34,571 since `2dba90b` grew images in the trees**; counted again on
|
||||
2026-09-20, the fourth through eighth sweeps having all repeated 34,492, which
|
||||
is a `wc -l` of the whole run rather than of its box lines -- and it is the only thing that catches two same-typed values being
|
||||
swapped, which is the failure mode of a rename or a move. Count the lines
|
||||
that are a box (`grep -cE '^[0-9]+ [0-9]+ '`), not the output. The repair moved 650 of those
|
||||
boxes, all from the collapsed-share correction; every commit since has been
|
||||
@@ -178,11 +183,10 @@ glyphs do not follow a shortened entry.
|
||||
- A span can overflow itself without bound, so boxes of negative length reach
|
||||
children and nothing states what a widget may assume about one.
|
||||
- A `leftover` under a parent that does not divide is a minimum size --
|
||||
`max(box, px + rel*box)` (Bryan, 2026-09-20). A span does that; the
|
||||
non-dividing path drops the overflow where the fixed part is longer than
|
||||
the box. Measured in `docs/LAYOUT_LOG.md` under the ninth sweep, with the
|
||||
window contract a fix needs. Nothing here mixes the two, so nothing is
|
||||
wrong on screen.
|
||||
`max(box, px + rel*box)` (Bryan, 2026-09-20), which is a `SizeRule::Min` of
|
||||
`rel(1.0)` and shares `Painter::longer_than` with the span. Done in
|
||||
`b295c8b` for a widget its parent asks; `root_layout` still reads the old
|
||||
way, for which see `docs/LAYOUT_LOG.md`.
|
||||
- `Fixed::div` by zero answers `MIN`/`MAX` while `ratio` answers `ZERO`; both
|
||||
are caller bugs under `debug_assert`, but the fallbacks differ.
|
||||
- `docs/LAYOUT.md` §4, §5 and the density section name `Painter::place`,
|
||||
@@ -191,7 +195,9 @@ glyphs do not follow a shortened entry.
|
||||
`OnResize::Translate` or `OrthoSize`.
|
||||
- `LazySpan`, then `SizeRule::{Min, Max, Clamp}`. A cap may not contain
|
||||
`leftover`; whether `Max` narrows the child's drawing box is a product
|
||||
decision.
|
||||
decision. `Min` is `Painter::longer_than` again -- a `leftover` where
|
||||
nothing divides it is already a `Min` of `rel(1.0)` -- so it belongs on
|
||||
that path rather than beside it.
|
||||
- `Scroll` taking a direction rather than one axis.
|
||||
|
||||
Other product work is in `docs/PLAN.md` and the focused documents it links.
|
||||
|
||||
Reference in new issue
Block a user