memoryruins
db24e677e3
convert tests to use generated set methods
2019-01-28 00:50:09 -05:00
Aleksey Kladov
9387fd2f4d
more orthogonal naming
2019-01-27 17:14:57 +03:00
Aleksey Kladov
d01d6ed511
Make GC API more orthogonal and flexible
...
Now, the effect of GC is a "product" of three parameters:
* what values are affected (everything/everything except used)
* are we removing values
* are we removing deps
SweepStrategy::default is now a no-op GC.
2019-01-26 21:38:15 +03:00
Niko Matsakis
9b5c7eeb5e
change #[salsa::query_group]
attribute to take a struct name
2019-01-25 10:26:39 -05:00
Niko Matsakis
a8d9fb2d6b
adopt salsa::database
attribute macro
2019-01-24 19:02:56 -05:00
Niko Matsakis
c0978fede8
remove the need to list individual queries in database_storage
2019-01-24 05:35:57 -05:00
Niko Matsakis
238be96432
introduce group storage structs to use from database_storage
macro
...
This also detected a bunch of crate visibility mismatches in the
tests.
2019-01-23 05:35:07 -05:00
Fabian Schuiki
93c30a953d
make query_group macro procedural
...
Switch to a procedural implementation of the `query_group!` macro,
residing in the `components/salsa_macros` subcrate.
Allow the user to override the invoked function via `salsa::invoke(...)`
and the name of the generated query type via `salsa::query_type(...)`.
In all tests, replace the `salsa::query_group! { ... }` invocations with
the new attribute-style `#[salsa::query_group]` macro, and change them
to the new naming scheme for query types (`...Query`).
Update README, examples, and documentation.
2019-01-17 07:24:18 +01:00
Aleksey Kladov
61e1d69fb5
preserve both cancellation strategies
2019-01-11 10:13:38 +03:00
Aleksey Kladov
88313c8030
test unwinding-based cancelation
2019-01-10 13:34:20 +03:00
Niko Matsakis
880681df49
make a test for transitive cancellation
2019-01-04 13:51:10 -05:00
Niko Matsakis
e5043a5644
make sum
invoke is_current_revision_canceled
deterministically
2019-01-04 13:51:09 -05:00
Niko Matsakis
da3be98295
extend cancellation test
2019-01-04 13:51:07 -05:00
Aleksey Kladov
a2198f1f8a
prevent untracked queries from moving brackwards in time
...
If a query observes an untracked read, it gets changed_at equal to the
current revision. When we re-validate the query later, if it doesn't
do an untracked read this time, it gets changed_at equal to the
maximum of the dependencies. Crucially, this new changed_at may
be **older** then the previous value of changed_at. That is, we break
the rule that `changed_at` monotonically increases.
This can lead to missed re-executions down the line (see the added
test).
closes #66
2018-12-30 10:54:34 +03:00
Kevin Leimkuhler
bc60b09fc7
Refactor overwrite_placeholder
into PanicGuard
2018-11-01 16:53:08 -07:00
Kevin Leimkuhler
461ab22822
Change uses of fork
to snapshot
2018-11-01 11:26:16 -07:00
Kevin Leimkuhler
83482293c6
Use Event API and add docs
2018-11-01 11:26:16 -07:00
Kevin Leimkuhler
5bface5bb9
Ensure parallel panic safety and add test
2018-11-01 11:26:16 -07:00
Niko Matsakis
49cc8abe43
introduce query_mut
which you must use to get set
methods
2018-11-01 04:53:56 -04:00
Niko Matsakis
e070bf9809
s/Frozen/Snapshot/
2018-10-31 20:06:06 -04:00
Niko Matsakis
fc2a720ae2
s/fork/snapshot/
2018-10-31 20:05:31 -04:00
Niko Matsakis
5066726147
panic if you fork from inside a query for now
2018-10-31 16:03:03 -04:00
Niko Matsakis
b0171dbc11
remove fork_mut
and adopt new strategy
...
Required simplifying the various tests.
2018-10-31 12:01:36 -04:00
Niko Matsakis
38dc4c31dd
introduce fork
, which yields a frozen handle
2018-10-31 06:05:03 -04:00
Niko Matsakis
9cac418ac8
rename fork
to fork_mut
2018-10-31 06:03:33 -04:00
Niko Matsakis
cf9db9cc7f
fix typo
2018-10-30 20:38:41 -04:00
Niko Matsakis
e355300554
use callbacks in parallel test
2018-10-30 20:19:25 -04:00
Aleksey Kladov
f4c00cfe97
Add a stress test
2018-10-30 14:41:56 -04:00
Aleksey Kladov
f709e64bd5
Add one more cancellation test
...
closes #66
2018-10-25 17:06:55 +03:00
Niko Matsakis
c94db84945
add a test for the revision lock
2018-10-19 06:00:52 -04:00
Niko Matsakis
e348c21528
move signal
into its own module
2018-10-19 06:00:44 -04:00
Niko Matsakis
e58702ebd0
replace use of await
, which is a keyword in Rust 2018
2018-10-19 05:17:26 -04:00
Niko Matsakis
2359d8aa0c
add a test of computing sum("abc")
twice in parallel
2018-10-14 14:58:31 -04:00
Niko Matsakis
3318921717
show that executing queries on distinct keys can proceed in parallel
2018-10-13 05:45:28 -04:00
Niko Matsakis
e9fadfcfe7
add more knobs, and refactor to make that easier
2018-10-13 05:39:51 -04:00
Niko Matsakis
8da63ec029
move distinct tests into their own files to ease reading
2018-10-13 05:27:20 -04:00
Niko Matsakis
fb5ba07290
move the test setup in setup.rs
2018-10-13 05:22:38 -04:00
Niko Matsakis
8f03f3bb76
move parallel tests into a directory
2018-10-13 05:03:34 -04:00