Commit graph

1040 commits

Author SHA1 Message Date
Niko Matsakis
49ccac5d3d track both inputs/outputs for each query
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.
2022-08-11 00:28:34 -04:00
Niko Matsakis
787480ffab record when specify is called by a user
We don't need to record it for pre-declared fields,
as they are always specified.
2022-08-10 03:55:04 -04:00
Niko Matsakis
cbe7d371c9 generalize list of "entities created" to "outputs"
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.
2022-08-10 03:54:04 -04:00
Niko Matsakis
de2fb22a1c track outputs for the active record 2022-08-10 03:46:27 -04:00
Niko Matsakis
87ff990774 add broken test for specify
We specify the value for the field in 1 rev but
fail to specify in the next revision. The old value
is (currently) never cleared.
2022-08-10 01:45:15 -04:00
bors[bot]
7d8b1881ad
Merge #341
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>
2022-08-10 04:46:08 +00:00
Niko Matsakis
d72803c027 don't mark specified values as volatile
This is what we want, but it's not a complete fix.
It does make these tests work, though!
Good enough to commit.
2022-08-10 00:42:32 -04:00
Niko Matsakis
eeb47a065c add a comment to TrackedStructInDb trait 2022-08-10 00:42:32 -04:00
Niko Matsakis
85d88b8df0 give each function a SalsaStruct assoc type 2022-08-10 00:42:32 -04:00
Niko Matsakis
27a240aa86 comment out red_herring tests
They do not pass (yet)
2022-08-10 00:42:32 -04:00
Niko Matsakis
940ed006cf add SalsaStructInDb impls for inputs, interned
Now all types have them.
2022-08-10 00:42:32 -04:00
Niko Matsakis
25e085fbdc add a SalsaStructInDb trait
Not currently used anywhere,
but will be implemented by all salsa structs.
2022-08-10 00:42:32 -04:00
Niko Matsakis
fc5e05fae0 introduce newtype wrappers for each salsa struct
This way they have separate namespaces for their inherent methods.
2022-08-10 00:42:32 -04:00
Niko Matsakis
4400c1b66a make constructing an Id private to salsa
This way we know that all Id instances came from salsa.

Not sure if that matters, but why not?
2022-08-10 00:42:32 -04:00
Niko Matsakis
ac837e2cdc rename set method to specify
That's the method name we use when exposing this to users.
2022-08-10 00:42:32 -04:00
Niko Matsakis
9229b1a23a rename Ingredients to Routes
The old name makes it sound like it contains the
actual ingredients, but really it just contains
the routes we use to find them at runtime.
2022-08-10 00:42:32 -04:00
Niko Matsakis
00d95436e0 more comments 2022-08-10 00:42:32 -04:00
Niko Matsakis
2547823a5f do not allow dead code anymore 2022-08-10 00:42:32 -04:00
Niko Matsakis
7e747f357c enable logging for tracked-fn-read-own-entity test 2022-08-10 00:42:32 -04:00
Niko Matsakis
f513f46380 add comments, remove dead-code lints 2022-08-10 00:42:32 -04:00
Niko Matsakis
323e677182 enable logging of salsa events by default
and add logging to tests
2022-08-10 00:42:27 -04:00
Niko Matsakis
395df47016 use DebugWithDb trait for the database key index 2022-08-10 00:42:05 -04:00
Niko Matsakis
00172efb19 add red-herring tests which modify distinct inputs 2022-08-10 00:42:05 -04:00
bors[bot]
9ff6fb3376
Merge #336
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>
2022-08-10 04:14:16 +00:00
XFFXFF
d32cff1bfb define Jar struct separately 2022-08-10 07:28:13 +08:00
XFFXFF
9feb0050e4 ports parallel related tests for cycle 2022-08-09 18:06:39 +08:00
bors[bot]
bd2992a621
Merge #334
334: test: expect reuse field X changes but fn depends on field Y r=nikomatsakis a=XFFXFF

ref: #328 

Co-authored-by: XFFXFF <1247714429@qq.com>
2022-08-09 05:16:40 +00:00
bors[bot]
4c3a5d339e
Merge #330
330: Fix some typos in the book r=nikomatsakis a=MihailMihov



Co-authored-by: Mihail Mihov <mmihov.personal@gmail.com>
2022-08-09 05:14:43 +00:00
XFFXFF
9fb5f7a366 add some comments 2022-08-09 08:43:44 +08:00
XFFXFF
80bfff8d7a port old tests for cycle in a single thread 2022-08-09 07:54:15 +08:00
XFFXFF
045f5186b3 modify tracked_fn macro to use it 2022-08-08 08:57:29 +08:00
XFFXFF
0f907dd3cd add recovery_fn option 2022-08-08 07:32:39 +08:00
XFFXFF
815bf6003b add a test 2022-08-08 07:20:39 +08:00
XFFXFF
1ec4e45a7f test: expect reuse field X changes but fn depends on field Y 2022-08-07 12:43:45 +08:00
Mihail Mihov
5d1ff35f6d
Merge branch 'salsa-rs:master' into master 2022-08-06 21:52:26 +03:00
Mihail Mihov
f1e6e54b57 Fix typos 2022-08-06 21:26:09 +03:00
bors[bot]
03a27a7054
Merge #326
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>
2022-08-06 15:04:25 +00:00
bors[bot]
1a54a631d4
Merge #324
324: Fix storage examples r=nikomatsakis a=brson



Co-authored-by: Brian Anderson <andersrb@gmail.com>
2022-08-06 14:46:10 +00:00
Niko Matsakis
3b3e0be981 make salsa-2022 tests into independent files
also add a few new tests
2022-08-06 10:43:43 -04:00
Niko Matsakis
e0c3109d6a add a test where we change the input 2022-08-06 02:27:20 -04:00
bors[bot]
8a06de0610
Merge #322
322: re-export from salsa_2022_macros r=nikomatsakis a=nikomatsakis

d'oh, why didn't this fail CI?

Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
2022-08-05 18:35:43 +00:00
Niko Matsakis
fa2d24a0be squash (some) warnings 2022-08-05 14:32:12 -04:00
Niko Matsakis
5efda5c21d run cargo check --all in CI 2022-08-05 14:29:54 -04:00
Niko Matsakis
974725a27d re-export from salsa_2022_macros
d'oh, why didn't this fail CI?
2022-08-05 14:26:13 -04:00
Brian Anderson
7e72c0c3df Fix storage examples 2022-08-05 12:17:22 -06:00
bors[bot]
022641c04a
Merge #321
321: rename salsa-entity-mock to salsa-2022 r=nikomatsakis a=nikomatsakis

cc #305 

Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
2022-08-05 17:26:33 +00:00
Niko Matsakis
66f1f1c50c rename salsa-entity to salsa-2022 2022-08-05 13:20:14 -04:00
bors[bot]
3ba3dbb19b
Merge #308
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>
2022-08-05 10:42:38 +00:00
Niko Matsakis
11fb9823cc remove blank line 2022-08-05 02:57:22 -04:00
Niko Matsakis
39c26b5ea6 update documentation to use new name, specify
override is a keyword, turns out
2022-08-05 02:53:40 -04:00