Dennis Kobert
d32caeab52
Add a generic lazy repeat that evaluates its content at each copy index
2026-08-16 11:28:11 +00:00
Dennis Kobert
15f4aa8f98
Strip IList nesting from kernel returns at parse time
2026-08-16 11:27:13 +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
87200f3c2a
Gate a flipped shader node's layout metadata out of the GPU build
2026-08-15 14:49:19 +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
a717403db8
Diagnose a materializing node's missing InjectIndex and Copy bounds
2026-08-14 21:31:14 +00:00
Dennis Kobert
fdf13f91cb
Materialize a reducer's ranked input into a List and fold it
2026-08-14 21:19:20 +00:00
Dennis Kobert
65e0969721
Recognize a reducer's IList input level in build
2026-08-14 10:13:53 +00:00
Dennis Kobert
8f265e7660
Report a creator's pushed-level extent from its count
2026-08-14 09:56:31 +00:00
Dennis Kobert
98e6b97072
Reshape the extent trait to a written extent_at and a derived composite
2026-08-14 09:10:04 +00:00
Dennis Kobert
a3e9074955
Scatter a creator's per-copy attribute from the copy index
2026-08-14 08:24:44 +00:00
Dennis Kobert
04afada5b3
Lower a creator's IList return to a level-pushing record
2026-08-14 08:22:29 +00:00
Dennis Kobert
3e183fbd28
Read a creator's IList return level in build
2026-08-14 08:11:59 +00:00
Dennis Kobert
849d6a17be
Delete the Class taxonomy in favor of the intent IR
2026-08-13 23:46:07 +00:00
Dennis Kobert
20ba069fe0
Derive record-io construction wiring from the intent IR
2026-08-13 23:26:22 +00:00
Dennis Kobert
c82093f153
Derive codegen node-kind predicates from the intent IR
2026-08-13 23:09:48 +00:00
Dennis Kobert
010785d8db
Derive single-row registry entries from the intent IR
2026-08-13 22:08:04 +00:00
Dennis Kobert
69774d445c
Derive the eval tail from the intent IR
2026-08-13 21:08:41 +00:00
Dennis Kobert
b42c632474
Derive input bindings from the intent IR
2026-08-13 19:32:25 +00:00
Dennis Kobert
f195e363a5
Emit layout metadata from the intent IR
2026-08-13 16:11:58 +00:00
Dennis Kobert
40f99152ce
Bridge-verify build against the resolved class
2026-08-13 15:35:07 +00:00
Dennis Kobert
3b1170b148
Derive inputs, output, and monomorphizations in build
2026-08-13 15:18:35 +00:00
Dennis Kobert
3a20091d3a
Derive the node-level intent axes in build
2026-08-13 14:19:49 +00:00
Dennis Kobert
e5206c3b50
Add the node intent IR types
2026-08-13 14:00:15 +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
a5784c8f0b
Port the create_context render test onto record wires
2026-08-12 13:11:48 +00:00
Dennis Kobert
83fbaca6f2
Unify the layout metadata model and collapse the single-row entry emitters
2026-08-12 13:11:48 +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
557f8020bb
Add the leveled extent_at/depth trait surface and the push_level context helper
2026-08-11 20:08:45 +00:00
Dennis Kobert
fb94d99807
Port the stale math-nodes and raster-nodes tests onto record wires
2026-08-11 09:54:48 +00:00
Dennis Kobert
264601c5f7
Return records from eval_batch through a RecordBatch view
2026-08-11 09:26:36 +00:00
Dennis Kobert
5db7e1816a
Make Node::layout non-optional, defaulting to a shared empty layout
2026-08-11 09:20:02 +00:00
Dennis Kobert
5b02edfd9a
Split the node macro codegen into classify, entries, and metadata modules
2026-08-10 16:15:31 +00:00
Dennis Kobert
7c0a4073e9
Select the eval tail form by class and dialect through an explicit Tail step
2026-08-10 15:57:58 +00:00
Dennis Kobert
275100eab0
Model the eval body as an EvalStep sequence with a structural stack discipline
2026-08-10 15:34:12 +00:00
Dennis Kobert
42cd2a4303
Resolve the dialect and input-role axes as node-model sum types
2026-08-10 15:21:59 +00:00
Dennis Kobert
e4f81fc947
Drive the node macro from a single analyze pass, NodePlan, and shared NodeFields
2026-08-10 13:33:58 +00:00
Dennis Kobert
492cf18cb0
Flip the passthrough node onto record wires by dropping its dead lifetime
2026-08-10 13:33:58 +00:00
Dennis Kobert
05630bab6e
Port the repeat node tests onto record-wire lazy inputs
2026-08-10 10:41:40 +00:00
Dennis Kobert
a465948ad4
Always-spill records, retiring inline-16 and reclaiming read-out record frames
2026-08-10 10:29:22 +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
166241b0e8
Flip nested-generic nodes onto record wires by unifying row types against field types
2026-08-06 13:36:46 +00:00
Dennis Kobert
ea49f3c2fc
Delete the Ref wire type and its lend edge surface
2026-08-06 12:24:50 +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
Dennis Kobert
7a1d1f3238
Define the frame memo through the record-opaque class over same-frame byte copies
2026-08-06 09:57:21 +00:00
Dennis Kobert
612afb7ebb
Capture the input context snapshot on the monitor io record
2026-08-06 09:37:48 +00:00
Dennis Kobert
daf3f25d21
Define the monitor through the record-opaque class and move introspection to element reads
2026-08-06 09:07:57 +00:00
Dennis Kobert
a2de2a9c09
Add the record-opaque kernel class to the node macro and define memoize through it
2026-08-06 08:28:52 +00:00
Dennis Kobert
98be2b8c79
Carry erased element and re-park glue on layouts and collapse memoize to a generic record row
2026-08-06 08:01:19 +00:00
Dennis Kobert
83fda4f08c
Update the core-types runtime tests to record wires
2026-08-06 06:46:28 +00:00
Dennis Kobert
20c6ba19d3
Flip async source nodes onto record wires by lifting their slot values
2026-08-05 23:54:42 +00:00
Dennis Kobert
7eeb7d84cd
Flip poll kernels and derived-context lazy nodes onto record wires and land record roots at the host rim
2026-08-05 23:42:24 +00:00
Dennis Kobert
7ddc66adbe
Flip lazy-input nodes onto record wires through the element lazy input
2026-08-05 23:12:43 +00:00
Dennis Kobert
c20a243fc2
Flip lend-parameter nodes onto record wires and keep the clone adapter plain
2026-08-05 22:57:51 +00:00
Dennis Kobert
3eecc31bfd
Flip generic value nodes onto record wires through phantom struct parameters
2026-08-05 22:39:25 +00:00
Dennis Kobert
7099f056dc
Flip concrete value nodes onto record wires with bridge rows for every value type
2026-08-05 22:18:50 +00:00
Dennis Kobert
9680d34abf
Carry record elements by the drop-glue rule and unify the lift and extract adapters
2026-08-05 22:17:50 +00:00
Dennis Kobert
592b2fbe32
Turn context modification into a generic record routing node and park droppable elements as arena references
2026-08-05 19:25:17 +00:00
Dennis Kobert
60f80682c5
Collapse duplicate proto nodes when assigning stable ids
2026-08-05 19:25:17 +00:00
Dennis Kobert
9fc4fcc7a0
Inline records of at most 16 bytes into the two-word RecordValue with layout-resolved storage
2026-08-05 17:23:09 +00:00
Dennis Kobert
7915800d73
Add per-field erased-read glue, the record monitor with introspection capture, and rename record constructors to new
2026-08-05 15:22:20 +00:00
Dennis Kobert
c91be74a55
Add the Record wire type, record registry rows, lift and extract adapters, and executor stack reservation
2026-08-05 12:24:20 +00:00
Dennis Kobert
abe2a565d1
Drop the list driver, make attribute values Copy over arena references, and land record-tier offset io on a per-thread record stack
2026-08-05 09:47:03 +00:00
Dennis Kobert
6154e4d219
Add the attribute census, node macro attribute io over list wires, and the rank-0 record tier
2026-08-04 22:05:02 +00:00
Dennis Kobert
62b7ccf40c
Support bare reference parameters and lending outputs in the node macro and make the clone node the clone-out adapter
2026-08-03 18:29:16 +00:00
Dennis Kobert
9b45af854a
Emit Ref wire types for lending rows and splice lend/clone_out adapters in the type checker
2026-08-03 16:33:27 +00:00
Dennis Kobert
562e6602eb
Poll source tasks once at spawn and land inline completions in the first eval
2026-08-03 10:21:46 +00:00
Dennis Kobert
8fb18012cf
Remove unuse allow dead code
2026-08-02 19:35:43 +02:00
Dennis Kobert
2b3161773f
Propagate tokio runtime creation failure in graphene-cli
2026-08-02 19:29:33 +02:00
Dennis Kobert
167d733f02
Wire the async source runtimes into the hosts
2026-08-02 19:24:51 +02:00
Dennis Kobert
ee499be31f
Add test coverage for the repeat nodes
2026-08-02 16:18:07 +00:00
Dennis Kobert
d385f3c69b
Fix warnings
2026-08-02 15:06:11 +00:00
Dennis Kobert
e372f78b7e
Address pr review
2026-08-02 14:31:13 +00:00
Dennis Kobert
8686b2c891
Export the async-source flag from the macro and dispatch superseded type deltas in tests
2026-08-02 14:09:27 +00:00
Dennis Kobert
e3aa32bc83
Fix wireing of async sources
2026-08-02 14:02:53 +02:00
Dennis Kobert
77d439ec35
Silence the dead-code warnings for groundwork the host wiring will use
2026-08-01 00:59:26 +02:00
Dennis Kobert
c30054579f
Adapt the cutover to the reviewed core-types API
2026-07-31 23:39:39 +02:00
Dennis Kobert
81a319430b
Cut over to the graphene execution model
2026-07-31 23:19:42 +02:00
Dennis Kobert
1fb6fcb447
Remove the unused CtxSnapshot scope reconstruction
2026-07-31 22:55:53 +02:00
Dennis Kobert
32d244e700
Make the sources fields private and normalize them on every mutation
2026-07-31 22:00:22 +02:00
Dennis Kobert
0877f9d50e
Park the arena during drop glue, guard filled batches, and normalize deserialized sources
2026-07-31 20:09:46 +02:00
Dennis Kobert
14c1dd0397
Guard the shared generation counter in tests and reject oversized batch ranges
2026-07-31 19:30:59 +02:00
Dennis Kobert
daf7b3e7b9
Make arena generation exhaustion fallible with an unsafe counter rewind
2026-07-31 19:08:09 +02:00
Dennis Kobert
bdf53070f2
Forward serialize through node wrappers and free abandoned frame table reservations
2026-07-31 18:12:53 +02:00
Dennis Kobert
0d0ec96709
Draw arena generations from a global counter so foreign handles never upgrade
2026-07-31 17:48:09 +02:00
Dennis Kobert
6feaf4ec9d
Drop arena entries in reverse allocation order and require Send + Sync payloads
2026-07-31 17:21:11 +02:00
Dennis Kobert
5541769dc5
Fix frame table key aliasing and arena handle offset truncation
2026-07-31 16:46:20 +02:00
Dennis Kobert
1fccb112cb
Add the core execution types, the borrowed context, and the seeded u64 fx hasher
2026-07-31 13:11:36 +00:00
Dennis Kobert
0f0f62c2e9
Enforce unwind safety on all public executor entry points ( #4356 )
2026-07-24 09:34:40 +00:00
Dennis Kobert and Timon
540a4ff273
Integrate document-format storage into the editor ( #4265 )
...
* Integrate document-format storage into the editor
* Address review feedback: drop redundant clones and dedupe metadata traversal
* Extract DocumentHistory and move storage-metadata tests to their own file
* Extract storage diffing/IO, gate validation and .gdd save behind preferences, restructure tests
* Address PR review: save-format/path consistency, autosave persistence, and view-settings/diff fixes
* Skip storage remount on .gdd open and split value/timestamp drift in attribute diff
* Rename storage tests module and surface .gdd open failures with per-resource diff detail
* Add debug-menu toggle to hide the storage preferences section
* Hopefully fix async tests
* Shorten comments
* Fix tests
* Review
* Review
* Review
* Block on future mesages in tests
* Review
* Shorten comments
---------
Co-authored-by: Timon <me@timon.zip >
2026-07-04 19:27:00 +00:00
Dennis Kobert
a979ccd5bd
Add document-format RFC draft ( #4264 )
...
* Add document-format RFC draft
* Align document-format RFC with graph-storage implementation
* Update writing style
* Recharacterize resource source chain as LWW-element-set, not add-wins OR-set
* Add Rev identity rationale framed against Git, plus patch-id future item
* Correct RFC inaccuracies found in implementation audit
* Mark unimplemented retirement coarsening and leader election as future; fix resurrection mechanism
* Add hot-log to the on-disk payload list in the architecture diagram
2026-06-28 19:05:30 +00:00
Dennis Kobert
03c33dc784
Fix error from running cargo check with a system global Cargo config.toml rustflags override ( #4277 )
...
Fix error caused by running cargo check in the workspace
2026-06-23 09:09:19 +00:00
Dennis Kobert
b45cc312dd
Add support for opening GDD documents from the CLI ( #4262 )
...
* Wire document-format into graphene-cli
* Support loading both legacy and new graphite files in the cli
* Address PR review: propagate CLI errors and use dyn resolver
* Fix CLI network wrap + preprocessor ordering
* Cleanup preprocessor
* Remove unused import
2026-06-21 18:17:01 +02:00
Dennis Kobert
de11d29d8e
Add document-format crate ( #4234 )
...
* Add document-format crate
* Adapt document-format to merged graph-storage and consolidate errors
* Fix resource write ordering, codec error masking, and export docs
* Remove document-format RFC; tracked in a dedicated PR
* Restructure document-format into gdd/persist/export/resource modules
Split the 963-line lib.rs by responsibility: persist path into persist.rs, resource I/O into resource.rs, export engine into export.rs. Rename the GddV1 layout struct to GddV1Layout and add a GddV1 = Gdd<GddV1Layout> alias.
* Feature-split document-format and graph-storage for minimal builds
* Address PR review: O(1) history-delta lookup and no-default-features test build
* Address PR review: propagate apply_hot_op persist error and assert resource hash
* Make decompression from archive streaming
* Share archive export body between export and export_to_bytes
* Review cleanup
* Export documents with un-retired hot ops losslessly
* Persist last_broadcast_rev in session.json, drop unused last_retired_at
* Move peer_id from manifest to session.json
* Rename gesture to interaction in document-format storage layer
2026-06-21 12:35:47 +00:00