Niko Matsakis
03e64254e9
do not store database_key
in the slot
2019-07-02 06:49:24 -04:00
Niko Matsakis
7988b5e295
switch to the "random LRU" strategy
2019-07-02 06:49:22 -04:00
Niko Matsakis
d80b3dd879
integrate lru logic into derived table
2019-07-02 06:49:02 -04:00
Niko Matsakis
e9f91f03a5
roll our own lru list
...
We could use e.g. intrusive-collections but from reading the docs and
surveying the source it wasn't *obvious* to me that it had the right
semantics.
2019-07-02 06:48:59 -04:00
Niko Matsakis
4e5a23b9d7
rewrite derived table to use Slot
(LRU not yet supported)
2019-07-02 06:48:32 -04:00
Niko Matsakis
848233c59c
Merge pull request #174 from matklad/no-volatile
...
Replace volatile query type with report_untracked_read fn
2019-06-26 06:32:25 -04:00
Aleksey Kladov
caa8dcfb06
Update src/runtime.rs
...
Co-Authored-By: Niko Matsakis <niko@alum.mit.edu>
2019-06-26 13:28:12 +03:00
Aleksey Kladov
6d60798eb8
Replace volatile query type with report_untracked_read fn
2019-06-26 13:10:44 +03:00
Niko Matsakis
3534d18c64
Merge pull request #178 from matklad/authors
...
Change authors to Salsa developers
2019-06-26 06:07:35 -04:00
Aleksey Kladov
10500c8a24
Change authors to Salsa developers
...
Salsa is a team effort, and builds on a mountain of pre-existing
knowledge!
2019-06-25 13:49:20 +03:00
Niko Matsakis
4084c2c6c2
Merge pull request #175 from matklad/doc-requires
...
Actually document salsa::requires
2019-06-21 00:12:56 -04:00
Aleksey Kladov
149b5faf8a
Actually document salsa::requires
2019-06-19 20:12:02 +03:00
Aleksey Kladov
c375b8fe09
Merge pull request #173 from matklad/release-0.12.3
...
publish v0.12.3
2019-06-12 13:16:03 +03:00
Aleksey Kladov
f34ae2dd0a
publish v0.12.3
...
- Allow to limit the number of values in a table by using LRU (#171 ).
RFC: https://github.com/salsa-rs/salsa-rfcs/pull/5
2019-06-12 12:57:04 +03:00
Niko Matsakis
efa4696ab7
Merge pull request #171 from matklad/lru
...
Add LRU to derived storage
2019-06-12 05:43:46 -04:00
Niko Matsakis
abbb92d6e0
Merge pull request #172 from matklad/AtomicU64
...
switch to AtomicU64
2019-06-12 05:11:46 -04:00
Aleksey Kladov
88fed8d6d6
Fix correctness bug when LRU evicted volatile query
2019-06-11 12:59:53 +03:00
Aleksey Kladov
7660277d8e
switch to atomic usize
2019-06-10 10:54:17 +03:00
Aleksey Kladov
0827c88259
use single lock for LRU
2019-06-09 16:47:51 +03:00
Aleksey Kladov
3d89c0d817
Add LRU to derived storage
...
LRU allows to bound the maximum number of *values* that are present in
the table.
2019-06-07 14:26:21 +03:00
Aleksey Kladov
f9468e2ac4
Merge pull request #170 from matklad/release-0.12.2
...
publish v0.12.2
2019-06-06 20:02:20 +03:00
Aleksey Kladov
bbae342b14
publish v0.12.2
...
- Don't remove query from storage if its dependency panics (#169 )
2019-06-06 18:34:12 +03:00
Niko Matsakis
8d0f5ffd95
Merge pull request #169 from matklad/strong-panic-safety
...
implement strong panic safety
2019-06-06 10:57:53 -04:00
Aleksey Kladov
fcc7058e9c
implement strong panic safety
...
Previosly, panicking query would remove in-progress memos from the
table.
However, we use panic for cancellation, so it's reasonable to **not**
remove the old result after panic. This is also known as string
exception safety guarantee: not only database is in *some* consistent
state after a panic, it is in the same state it was before the panic!
2019-06-01 23:19:15 +03:00
Aleksey Kladov
7dd31a46f8
Merge pull request #168 from matklad/release-0.12.1
...
publish v0.12.1 (second try)
2019-05-30 12:59:21 +03:00
Aleksey Kladov
ee88fdc08b
publish v0.12.1 (second try)
...
* Introduce `salsa::transparent` query type(#163 )
* Improve salsa proc macro (#160 , #162 )
* Update parking lot to 0.8.0 (#166 )
* Add `salsa::requires` attribute for private deps (#165 )
2019-05-30 12:57:11 +03:00
Niko Matsakis
e9c787e2b6
Merge pull request #165 from matklad/requires
...
allow private requirements in query groups
2019-05-30 11:49:41 +02:00
Aleksey Kladov
ccc01cc189
fix test doc comment
2019-05-30 12:32:24 +03:00
Aleksey Kladov
2485cb69a0
Merge pull request #167 from matklad/release-0.12.1
...
publish v0.12.1
2019-05-30 11:57:08 +03:00
Aleksey Kladov
df92fb794e
publish v0.12.1
...
- Introduce `salsa::transparent` query type(#163 )
- Improve salsa proc macro (#160 , #162 )
- Update parking lot to 0.8.0 (#166 )
2019-05-30 11:45:56 +03:00
Aleksey Kladov
9b2d754ea6
Merge pull request #166 from matklad/pl
...
⬆️ parking_lot
2019-05-30 11:42:52 +03:00
Aleksey Kladov
e1792463f4
⬆️ parking_lot
2019-05-30 11:36:03 +03:00
Aleksey Kladov
6ea5413ef5
switch requires syntax to an attribute
2019-05-21 18:49:18 +03:00
Aleksey Kladov
c816df7208
extract attribute filtering
2019-05-21 18:30:19 +03:00
Aleksey Kladov
940eed92a6
allow private requirements in query groups
2019-05-21 18:04:01 +03:00
Niko Matsakis
8aa01bcccb
Merge pull request #163 from matklad/transparent
...
Add transparent query type
2019-05-07 11:51:30 -04:00
Niko Matsakis
7b52f1ea39
Merge pull request #162 from Phrohdoh/fix-query_group-first-arg-message
...
Remove mention of unsupported '&mut self' in a query group panic
2019-05-05 08:24:01 -04:00
Aleksey Kladov
fe295c1b6e
Add transparent query type
...
Transparent queries are not really queries: they are just plain
uncached functions without any backing storage.
Making a query transparent can be useful to figure out if caching it
at all is a win
2019-04-30 23:42:17 +03:00
Taryn
9913b0300e
Remove mention of unsupported '&mut self' for in a query group panic
2019-04-12 16:27:24 -05:00
Aleksey Kladov
e7223f480a
Merge pull request #160 from jrvidal/doc_comments
...
Improve doc comments generation
2019-04-11 11:36:22 +03:00
Roberto Vidal
01c03b85b1
Improve doc comments
2019-04-06 14:23:02 +02:00
Niko Matsakis
c39ce43050
Merge pull request #159 from nikomatsakis/release-0.12.0
...
publish v0.12.0
2019-04-03 16:19:02 -03:00
Niko Matsakis
30b95dcc24
publish v0.12.0
...
- Introduce `InternId` as the basis for interned keys, replacing
`u32` (#157 , #158 )
- Support keys/values that are not `Send/Sync` (#153 )
2019-04-03 16:03:41 -03:00
Niko Matsakis
1a06fd8b29
Merge pull request #158 from nikomatsakis/intern-id
...
rename RawId to InternId
2019-04-03 15:57:12 -03:00
Niko Matsakis
dbc9d27d16
squash some warnings
2019-04-03 11:01:38 -03:00
Niko Matsakis
74294f71f3
s/RawId/InternId/
2019-04-03 11:01:20 -03:00
Niko Matsakis
40d0c8d21a
Merge pull request #157 from nikomatsakis/raw-id
...
adopt raw-id for interned keys
2019-03-31 07:53:38 -03:00
Niko Matsakis
4402338908
Revert "do not expose that RawId is stored in a u32"
...
This reverts commit 9b106e9279
.
2019-03-31 07:34:10 -03:00
Niko Matsakis
d6934ac247
adopt NonZeroU32
2019-03-31 06:49:41 -03:00
Niko Matsakis
9b106e9279
do not expose that RawId is stored in a u32
2019-03-31 06:46:29 -03:00