Record the request arena, which replaces the second expression shape
This commit is contained in:
1 parent
5f01dc65c8
commit
a7da12a8ff
2 files changed
+82
-4
No files matched your search
+21
-4
@@ -8,9 +8,8 @@ found is in `docs/LAYOUT_LOG.md`.
|
||||
|
||||
Bryan clarified that the built-in attribute should replace the wrapper.
|
||||
Work is in `/home/bob/repos/iris-deferred`, on `layout/one-ask`, at
|
||||
`ea1f836` (pushed), which is the eleventh sweep over `2ac0843`. Bounds now
|
||||
constrain the offer in `Placing::ask`; declarations are retained as resolved
|
||||
window lengths, so movement does not decide the bound again.
|
||||
`05e6ced` (pushed). Bounds now constrain the offer in `Placing::ask`;
|
||||
declarations are retained as resolved window lengths, so movement does not decide the bound again.
|
||||
`.max_width`/`.max_height` now edit the same widget, like the minimum
|
||||
helpers, and `MaxSize` is removed. Preferred lengths and bounds are
|
||||
independent, so either order of `.width` and `.max_width` works. The app pin
|
||||
@@ -38,6 +37,21 @@ widget; all three allocation fixtures remain allocation-free after warm-up.
|
||||
`docs/LAYOUT.md` records the contract and measurements. Artifacts are in
|
||||
`/tmp/attribute-bounds/`.
|
||||
|
||||
## A request is held in the arena its nodes are allocated in
|
||||
|
||||
`05e6ced`. `SizeRequest` was a second expression shape beside the one
|
||||
`RequestArena` already had -- the same three operators, the same constant fold
|
||||
written twice, and an `import` that walked a pointer tree rebuilding it as
|
||||
arena nodes. Bryan settled it on 2026-09-20: one node type, an arena, and no
|
||||
refcount, since nothing shares a request and nothing outside widget code holds
|
||||
one. A rule's expression now holds a small arena of the pass's own node type,
|
||||
and `import` grafts those nodes across. A plain length stays inline, so
|
||||
`size_of::<SizeRule>()` is 40 either way. `bounds_cost` `MODE=cap` is -1.34%
|
||||
and `revision_cost` resize -0.79% in release instruction medians.
|
||||
`docs/LAYOUT_LOG.md` has the full entry. Verified with all three seed scans,
|
||||
the three deferred corpora, 206 and 210 tests, and the cold dump byte-identical
|
||||
to `2ac0843` across all 34,986 boxes.
|
||||
|
||||
## A quality sweep of the bounds work is submitted on PR #19
|
||||
|
||||
The eleventh sweep landed at `ea1f836`. It is the first review of `2ac0843`
|
||||
@@ -166,6 +180,9 @@ comparison work above, its review rounds past `cadfba0` are described in
|
||||
- **The deferred request system's own sweep**, `4cb6f68` -- described at the
|
||||
top of this file and in full in `docs/LAYOUT_LOG.md`.
|
||||
- **The bounds work's own sweep**, `ea1f836` -- the same, over `2ac0843`.
|
||||
- **One node type for a request**, `05e6ced` -- the expression a rule holds
|
||||
and the expression the pass allocates were two shapes of one thing, with
|
||||
the fold written twice and an `Arc` where nothing shares.
|
||||
|
||||
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
|
||||
@@ -221,7 +238,7 @@ 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,986** boxes
|
||||
since `76aaf06` grew bounds in the trees, and is unchanged through `ea1f836`.
|
||||
since `76aaf06` grew bounds in the trees, and is unchanged through `05e6ced`.
|
||||
It was 34,571 from `2dba90b`, which grew the images, and 34,488 before those; the fourth through eighth sweeps all
|
||||
repeated 34,492, which is a `wc -l` of the whole run rather than of its box
|
||||
lines, so count the lines that are a box (`grep -cE '^[0-9]+ [0-9]+ '`). It is the only thing that catches two
|
||||
|
||||
Reference in new issue
Block a user