Rename QueryInputs to QueryEdges and modify its fields
to track both inputs and outputs. The size of the struct
doesn't actually change, the separator comes out of padding.
We will record each thing that gets *output* by the query.
Use a btree-set so that we can get a sorted list.
That will allow us to easily compare what is output between revisions.
We will use that to clear stale values.
341: add comments, tests, and mild refactorings r=nikomatsakis a=nikomatsakis
This branch contains various bits of work I was doing towards fixing #338 and other such things. I'm opening it now to avoid merge conflicts and because the comments seem useful.
Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
336: Add options to tracked functions for cycle recovery r=nikomatsakis a=XFFXFF
closes#331
This pr ports the old salsa tests for cycle in a single thread, except for [cycle_disappears_durability](03a27a7054/tests/cycles.rs (L326)), since we don't have the api that permits setting durability.
~I haven't ported parallel related tests, which would be some work, wondering if we can merge this in first~
Co-authored-by: XFFXFF <1247714429@qq.com>
326: Salsa 2022 tests r=nikomatsakis a=nikomatsakis
Convert the `salsa-2022-tests` crate into a utility crate, and make a `tests` directory so that we can add tests one by one.
Fixes#325
Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
308: Tracked proposal r=nikomatsakis a=nikomatsakis
I sketched out a variation of the entity API that I am calling tracked (this is a hat-tip to Ember's terminology, cc `@wycats).` It is the mostly the same ideas, but repackaged in a way that I think is more intuitive. This was inspired by writing the previous tutorial and thinking how things could be a bit cleaner.
To read the proposal, check out the "overview" page on the netlify preview. The tutorial and code have not been fully updated to match yet.
cc #305
Co-authored-by: Niko Matsakis <niko@alum.mit.edu>