Niko Matsakis
42a653ca6f
use computed recovery strategy
...
Rather than checking return value of from `Q::cycle_fallback`, we
now consult the computed recovery strategy to decide whether to
panic or to recover. We can thus assume that we will successfully
recover and don't need to check for `None` results anymore.
2021-10-30 11:19:09 -04:00
Niko Matsakis
fc826b0689
add cycle_recovery_strategy function on database
2021-10-30 11:09:24 -04:00
Niko Matsakis
d082270610
introduce CYCLE_STRATEGY constant for queries
...
This allows us to figure out whether a query can recover
from a cycle (and how) without invoking the `recover`
function.
2021-10-30 11:09:24 -04:00
Jonas Schievink
cb38bb7066
Publish 0.17.0-pre.2
2021-10-06 22:33:30 +02:00
Jonas Schievink
7b39882deb
Remove dead code
2021-09-03 18:38:34 +02:00
Lukas Wirth
ea378103c3
Use format_ident!
when creating new identifiers in salsa-macros
2021-08-24 02:47:28 +02:00
Lukas Wirth
26b47e02e9
Keep parameter names of queries in query_group
attribute
2021-06-30 21:14:10 +02:00
Tim Robinson
fc6806a07c
CI runs Clippy
2021-06-17 15:21:51 +01:00
Niko Matsakis
d178d1b765
update a few comments that mention gc
2021-06-06 06:20:23 -04:00
Aleksey Kladov
a84ee62bd1
Publish 0.17.0-pre.1
...
- new cancellation API #265
2021-05-29 20:57:48 +03:00
Jonas Schievink
1fb660c33e
Use the more common spelling of cancell{ed,ation}
2021-05-25 15:08:23 +02:00
Jonas Schievink
223f87bb18
Canonicalize to US spelling of "cancelation"
2021-05-18 15:36:43 +02:00
Jonas Schievink
197b01fa4b
Implement "opinionated cancellation"
2021-05-17 18:59:28 +02:00
Aleksey Kladov
9e6adc9900
Publish v0.16.0
...
- #242 allow `dyn Database` to be non-'static
- #248 allow using borrowed keys for invalidation
- #250 upgrade crossbeam_utils
2020-10-14 12:33:39 +02:00
Aleksey Kladov
6b96a1e22f
Leverage Cargo defaults
2020-10-14 12:29:29 +02:00
Niko Matsakis
2e2239a307
Merge pull request #242 from Marwes/lift_static_restriction
...
feat: Allow the dynamic db to be non-static
2020-09-09 10:52:50 -04:00
Aleksey Kladov
590c037323
Release v0.15.2
...
* #243 , better error message from proc macro
* #240 , purge method for cleaning the database completely
2020-08-05 13:55:12 +02:00
Chase Wilson
78b32d69da
Made proc-macros panic less
...
Replaced the panics in query_group with syn errors for better user feedback and experience
2020-07-25 14:38:13 -05:00
Markus Westerlind
3a84a77ebc
Remove some unnecessary changes
2020-07-24 11:23:41 +02:00
Markus Westerlind
e2ab6c8bfa
feat: Allow the dynamic db to be non-static
2020-07-23 17:08:06 +02:00
Markus Westerlind
ce6428fbbd
Lift the static restriction on the traits
2020-07-23 11:34:20 +02:00
Aleksey Kladov
380c4c1dc8
Release v0.15.0
...
The single (but big) change is Dynamic Database RFC implementation:
https://github.com/salsa-rs/salsa/pull/231
2020-07-07 15:45:39 +02:00
Niko Matsakis
fd036a4f15
do not generate in_db_mut
when it is inappropriate
2020-07-06 21:48:14 +00:00
Niko Matsakis
d2e9f64bda
add shims for input queries
2020-07-06 21:48:07 +00:00
Niko Matsakis
9596c25b77
move the shims into private, hidden functions
2020-07-06 21:06:36 +00:00
Aleksey Kladov
a5626cd8a0
Force codegen in the query-defning crate
2020-07-06 21:04:07 +00:00
Niko Matsakis
b66eb81311
experiment: extract some Memo code to be independent from Q
...
This should enable more sharing and less monomorphization. There is
probably room for more radical restructing in this vein.
2020-07-06 00:55:01 +00:00
Niko Matsakis
8ca3ab56b5
update the mdbook documentation, introducing a diagram
2020-07-05 16:45:07 +00:00
Niko Matsakis
fad97eeb6a
remove the DB
parameter
...
This had two unexpected consequences, one unfortunate, one "medium":
* All `salsa::Database` must be `'static`. This falls out from
`Q::DynDb` not having access to any lifetimes, but also the defaulting
rules for `dyn QueryGroup` that make it `dyn QueryGroup + 'static`. We
don't really support generic databases anyway yet so this isn't a big
deal, and we can add workarounds later (ideally via GATs).
* It is now statically impossible to invoke `snapshot` from a query,
and so we don't need to test that it panics. This is because the
signature of `snapshot` returns a `Snapshot<Self>` and that is not
accessible to a `dyn QueryGroup` type. Similarly, invoking
`Runtime::snapshot` directly is not possible becaues it is
crate-private. So I removed the test. This seems ok, but eventually I
would like to expose ways for queries to do parallel
execution (matklad and I had talked about a "speculation" primitive
for enabling that).
* This commit is 99% boilerplate I did with search-and-replace. I also
rolled in a few other changes I might have preferred to factor out,
most notably removing the `GetQueryTable` plumbing trait in favor of
free-methods, but it was awkward to factor them out and get all the
generics right (so much simpler in this version).
2020-07-04 14:17:11 +00:00
Niko Matsakis
d64dfa1727
make for_each_query
dyn-safe
2020-07-04 14:17:11 +00:00
Niko Matsakis
0e5366df5d
move to QueryType.in_db(&db)
instead of db.query(QueryType)
...
This will be more compatible once we move to having queries have an
associated `DynDb` type. It also reads nicely.
2020-07-04 14:17:11 +00:00
Niko Matsakis
67687376ed
implement the Storage<DB> change
2020-07-04 14:17:10 +00:00
Niko Matsakis
b3ffaec3b0
remove salsa::requires
feature
2020-07-04 14:16:50 +00:00
Niko Matsakis
64f3eb96a1
remove GroupKey associated type
2020-07-04 14:16:50 +00:00
Niko Matsakis
1a07944efe
remove DatabaseKey associated type
2020-07-04 14:16:50 +00:00
Niko Matsakis
799ddce157
remove unused GroupData
associated type
2020-07-04 14:16:50 +00:00
Niko Matsakis
1b778760ae
track and report cycles using DatabaseKeyIndex
2020-07-04 14:16:50 +00:00
Niko Matsakis
7b5ac6e717
implement ability to get readable debug output for DatabaseKeyIndex
2020-07-04 14:16:50 +00:00
Niko Matsakis
5a1bf10ba6
add a query_name
associated constant
2020-07-04 14:16:50 +00:00
Niko Matsakis
07623fb962
remove the DatabaseData
and associated unsafe code
2020-07-04 14:16:50 +00:00
Niko Matsakis
f7a14f2309
use DatabaseKeyIndex
instead of Dependency
2020-07-04 14:16:49 +00:00
Niko Matsakis
206c086bac
thread group index to storage initializers
2020-07-04 14:16:14 +00:00
Niko Matsakis
9bd9f8b202
use new
with index to create group storage
2020-07-04 14:16:14 +00:00
Niko Matsakis
ebb3769ad2
document the database macro
2020-06-26 22:21:54 +00:00
Edwin Cheng
38e708b68b
Fix typo
2020-05-08 14:35:48 +02:00
Veetaha
2c44b6e3a3
Fix typo
...
Fix typo
2020-02-24 12:50:39 +01:00
Aleksey Kladov
37a3650aef
Publish 0.14.1
...
0.14.0 is broken, as it didn't bump salsa-macros crate.
2019-11-26 11:24:23 +03:00
Niko Matsakis
c789219bc5
move query-storage into an Arc
...
This way, we can hold a reference to it without borrowing the database.
2019-09-27 05:34:33 -04:00
Niko Matsakis
a9860bf37f
Merge pull request #147 from Marwes/cycles
...
feat: Allow queries to avoid panics on cycles
2019-09-19 05:56:39 -04:00
Aleksey Kladov
04ecedd6ec
⬆️ syn, quote, proc_macro2
2019-08-22 16:21:46 +03:00