Dennis Kobert
9b92edc0e9
Write an attribute under a name the graph supplies
...
`Named<X>` in parameter position declares where a placeholder's name is
wired, and the macro gives that input constant text; `Attr<Named<X, V>>`
in the return writes under it. The kernel is handed the bare placeholder,
since the name is spent resolving the layout and a folded offset is all
the write needs, so the hot path matches a marker node's exactly.
A name-generic write names its value type through the wired generic,
which only an implementations row resolves, so those nodes emit their
layout meta per row rather than sharing one across rows.
`write_attribute` is the catalog's set half, restoring the identifier
master's documents carry with its input positions. Its name input is a
constant, so those documents resolve without migration, and the reset
marker that stood in for the missing node retires with it.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-09 09:26:17 +00:00
Dennis Kobert
348e9022a6
Fold attribute names out of their constant inputs when the graph compiles
...
`compute_layouts` resolves every name-from-input write against the text
its name input carries, so a folded meta is indistinguishable from a
marker node's and the layout holds a `&'static str` from there on. That
leaves nowhere for a name to be computed, which is the whole of the
rule: a name input that is not a constant is refused right here, per
node, with the path the editor pins its diagnostic to.
One name carries one value type, checked across the census and the
names a node folds together, so no graph can declare one field at two
widths. `compute_layouts` returns those refusals rather than panicking.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-09 08:51:05 +00:00
Dennis Kobert
b321c094d2
Keep the new assert messages inside the format width
2026-09-08 13:29:09 +00:00
Dennis Kobert
5e388cb38f
Assert the deep element glue is registered before the executor evaluates
2026-09-08 13:15:06 +00:00
Dennis Kobert
33f7257e47
Rename record_edge_type to record_source_type
2026-09-06 16:27:11 +00:00
Dennis Kobert
daf0231c0c
Rename the record_edge accessor to record_source
2026-09-06 16:26:33 +00:00
Dennis Kobert
92adc524ca
Rename EdgeHandle to SourceHandle
2026-09-06 16:26:03 +00:00
Dennis Kobert
9f0e0ebc96
Clear the remaining clippy warnings on the diff surface
2026-09-06 16:25:17 +00:00
Dennis Kobert
e92faf763d
Correct docs that misstate what the code does
2026-09-06 15:58:01 +00:00
Dennis Kobert
9d3abe385f
Sweep the data-flow wire and edge wording to input and source
2026-09-06 15:14:55 +00:00
Dennis Kobert
8f7d3936f8
Rename serve_edge to serve_input
2026-09-06 15:12:46 +00:00
Dennis Kobert
4e7d72d4b8
Flush the persistent region on its heap budget
2026-08-31 23:52:44 +00:00
Dennis Kobert
5a6192bbd6
Give the executor a persistent arena flushed between evaluations
2026-08-29 22:07:27 +00:00
Dennis Kobert
a955d6b458
Run cargo fmt
2026-08-29 18:40:02 +00:00
Dennis Kobert
97bc10e4c3
Pass frame space by argument and delete the record stack
2026-08-29 18:33:23 +00:00
Dennis Kobert
3af6834d3c
Flip the Node trait from eval onto the frame claim's serve
2026-08-29 12:26:46 +00:00
Dennis Kobert
277641d27e
Delete the plain edge kind
2026-08-29 10:07:10 +00:00
Dennis Kobert
f4d37524c8
Structure record stack rewinds as scope guards and make reserve unsafe
2026-08-28 18:02:50 +00:00
Dennis Kobert
50911a6a25
Recreate introspection data from the monitor's context snapshot
2026-08-27 13:53:25 +00:00
Dennis Kobert
dcc9059041
Give To Graphic a unit row so an unconnected content input renders as nothing
2026-08-24 12:02:46 +00:00
Dennis Kobert
aba941e81d
Collapse typed levels in To Graphic like the pre-flip list conversion
2026-08-24 01:35:32 +00:00
Dennis Kobert
c0eb2ee4ff
Remove the runtime-named attribute family and its type-erased bridges
2026-08-23 19:05:26 +00:00
Dennis Kobert
94b9d279a2
Retarget the palette executor test at the folded record wire
2026-08-23 17:29:43 +00:00
Dennis Kobert
5e918af371
Restore the sample_polyline test attribute and drop dead scaffolding
2026-08-23 08:31:40 +00:00
Dennis Kobert
58182bc2d3
Keep the executor arena at 128 MiB
2026-08-23 00:57:37 +00:00
Dennis Kobert
c33f8ae75b
Convert mirror to a fold emitter and bridge levels into the erased list
2026-08-22 22:15:03 +00:00
Dennis Kobert
3126a5b278
Convert copy to points, sample polyline, scatter, spline, jitter, and assign colors
2026-08-22 20:59:37 +00:00
Dennis Kobert
5f6c18893e
Grow the executor arena for per-copy paint parks
2026-08-22 20:59:37 +00:00
Dennis Kobert
6ab9d0360a
Convert flatten path and solidify stroke to fold kernels
2026-08-22 19:11:48 +00:00
Dennis Kobert
01da817f61
Grow the executor arena for fold snapshots
2026-08-22 19:11:48 +00:00
Dennis Kobert
3da7f6cea3
Drop the legacy fill and stroke rows for single-typed paint
2026-08-22 17:29:51 +00:00
Dennis Kobert
4bceae26f2
Add the leveled fill rows and the graphic coercion entries
2026-08-22 16:13:01 +00:00
Dennis Kobert
0b2aa3798a
Derive extent forwarding for level-preserving passthroughs
2026-08-22 15:34:22 +00:00
Dennis Kobert
fb71ea426d
Bridge legacy seams and convert the transform family
2026-08-22 14:25:31 +00:00
Dennis Kobert
7fb36123e9
Point the render wrapper at the leveled intermediate
2026-08-22 12:50:47 +00:00
Dennis Kobert
5821816228
Add the leveled boundary helpers and the deep group element copy
2026-08-22 11:48:26 +00:00
Dennis Kobert
fbba0cd037
Gate the gpu converter imports the sweep wrongly removed
2026-08-17 10:56:45 +00:00
Dennis Kobert
ae7c51a964
Drop stale imports left behind by the record-wire port
2026-08-17 10:28:29 +00:00
Dennis Kobert
99ce2ea565
Require a node registry to compile so the layout pass always runs
2026-08-15 14:49:25 +00:00
Dennis Kobert
214632c5ec
Reserve the record stack before direct edge evals in executor tests
2026-08-15 12:27:39 +00:00
Dennis Kobert
64fb4eda61
Fold the record-stack peak in the layout pass, not the executor
2026-08-15 12:20:52 +00:00
Dennis Kobert
f9e30c4c77
Install record layouts from the pass via set_layout
2026-08-15 11:20:01 +00:00
Dennis Kobert
bfa48439c8
Resolve coercion nodes and dynamic values in the layout pass
2026-08-15 08:48:29 +00:00
Dennis Kobert
fbc736e1cc
Verify computed layouts match construction at node construction
2026-08-13 10:25:00 +00:00
Dennis Kobert
d7da2ba9e7
Add the resolve_types and compute_layouts compiler passes
2026-08-13 10:24:59 +00:00
Dennis Kobert
b6f73b0691
Emit declarative LayoutMeta from the node macro into registry entries
2026-08-11 20:08:45 +00:00
Dennis Kobert
63cf0151e2
Change stack return to standart sret semantics
2026-08-08 07:33:33 +00:00
Dennis Kobert
9c7a633d5b
Adopt tuple attribute io and the carrier lowering, deleting the bridge adapters for record-only wires
2026-08-06 18:48:16 +00:00
Dennis Kobert
100f81c307
Retire the lend machinery and flip the clone node onto record wires
2026-08-06 11:57:18 +00:00
Dennis Kobert
886ff03ef2
Construct value nodes as native record sources
2026-08-06 10:24:44 +00:00