Skip to content

Add a prototype reactive graph with equality cutoff. - #553

Open
szagi3891 wants to merge 8 commits into
masterfrom
reactive_graph
Open

Add a prototype reactive graph with equality cutoff.#553
szagi3891 wants to merge 8 commits into
masterfrom
reactive_graph

Conversation

@szagi3891

Copy link
Copy Markdown
Collaborator

Dirty nodes are processed in topological order after a transaction; dependents are enqueued only when a node's value actually changed, so a stable Computed leaves its fan-out untouched.

@szagi3891
szagi3891 force-pushed the reactive_graph branch 4 times, most recently from 51029f1 to 1ea5a1f Compare August 19, 2026 19:13
@szagi3891
szagi3891 marked this pull request as ready for review August 20, 2026 05:54
@sfisol
sfisol force-pushed the reactive_graph branch 3 times, most recently from 44e7d71 to ecaeed8 Compare August 20, 2026 20:13
szagi3891 and others added 4 commits August 21, 2026 09:57
* Dirty nodes are processed in topological order after a transaction; dependents are enqueued only when a node's value actually changed, so a stable Computed leaves its fan-out untouched.
* Require PartialEq on Computed instead of a custom equality function.
* Cutoff uses T's PartialEq; from_always is gone, and event callbacks are plain closures.
* Drop always_notify.
* Dependents are enqueued only when a value changes, so subscribe_all is no longer needed.
* GraphInner no longer touches the depth and propagating cells directly; enter/leave and a Drop guard own that lifecycle.
* Unit tests for reactive graph bookkeeping and when_connect disconnects.
…nore on callback loops

refactor: optimize parent comparison by using HashSet equality and add verification tests
sfisol added 2 commits August 21, 2026 13:53
…d specific owned types, added missing CHANGELOG entries, bumped to 0.13
sfisol and others added 2 commits August 21, 2026 15:28
Graph callbacks log and ignore writes instead of joining the current pass.
when_connect runs after propagation so with_connect may still write. Drop
the per-node refresh budget so a settled graph is never left with a stale value.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants