Aleksey Kladov
9c7ac995d8
Make salsa buildable on power
...
rust-analyzer fails in rust-lang/rust repo on the power target,
because it doesn't have `AtomicU64`. So, lets just use `AtomicUsize`
as a revision number.
Semantically this is wrong, as we are not using revision to address
arrays, but, practically, it's a nice compromise to build on targets
without AtomicU64 and to have large revision numbers on most relevant
targets.
2020-07-03 16:27:19 +02:00
Aleksey Kladov
a6b162aba1
Replace mpsc channels with hand-written future implementation
...
cargo llvm-lines shows that some amount of llvm lines is spend on
`std::mpsc`. Given that this is not the most loved standard library
module, and that our usage of mpsc is extremely limited, it seems
worth-while to implement oneshot channel using parking_lot.
2020-07-02 01:17:52 +02:00
Markus Westerlind
380306930b
feat: Prune unnecessary dependencies
...
Only AtomicCell is used from crossbeam and SmallRng from rand so we can
easily disable the default features
2020-07-01 22:42:07 +02:00
Laurențiu Nicola
cfb4e18eba
Remove workaround for parking_lot#101
2020-06-27 13:59:29 +03:00
Laurențiu Nicola
2bf383861b
Fix doctest
2020-06-27 12:46:24 +02:00
Laurențiu Nicola
bb1c308380
Revert "Bump parking_lot and remove workaround"
...
This reverts commit 025c882cbb
.
2020-06-27 12:46:24 +02:00
Laurențiu Nicola
c627cda525
Bump parking_lot and remove workaround
2020-06-27 12:46:24 +02:00
Niko Matsakis
dd60d91e75
disable fragile LRU tests for now
2020-06-24 14:16:32 +00:00
Michal Terepeta
97ed750a9d
Update some comments in slot.rs
...
Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
2020-01-13 12:10:26 +01:00
Declan Kelly
564fa155d4
Correct mutability in on demand example, fix doc links
...
Fix query_mut documentation link
Fix more documentation links
More doc links
2019-10-05 18:30:42 -07:00
Laurențiu Nicola
c99580ba14
implement QueryTable constructor manually
2019-10-03 19:26:20 +03:00
Niko Matsakis
b0710416d0
require &mut self
for with_incremented_revision
2019-09-27 05:54:42 -04:00
Niko Matsakis
236c2eae84
require &mut self
for QueryTableMut
methods (breaking)
2019-09-27 05:54:10 -04:00
Niko Matsakis
1715d44555
store &mut DB
in QueryTableMut
2019-09-27 05:53:16 -04:00
Niko Matsakis
0a94efeac3
emit WillChangeInputValue
before new revision (breaking change!)
...
Otherwise we need to borrow the `db` in `with_incremented_revision`
and it's a pain.
2019-09-27 05:51:27 -04:00
Niko Matsakis
8c133e7a4d
make synthetic_write
require &mut self
(breaking change!)
...
This was an oversight before -- the current type implies that
one introduce a synthetic write (and hence a new revision) from
a `Frozen<DB>`! Not cool.
2019-09-27 05:50:16 -04:00
Niko Matsakis
b9f00726da
introduce Database::salsa_runtime_mut
method (breaking change!)
2019-09-27 05:49:15 -04: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
2e9b418bbb
rework book a little bit
...
- extend some of the empty sections, add a new common pattern
- also, show how to use anchors and include so we can test the sources
for common patterns
2019-09-24 06:13:51 -04:00
Aleksey Kladov
3616014391
Apply suggestions from code review
...
Co-Authored-By: Niko Matsakis <niko@alum.mit.edu>
2019-09-24 12:08:13 +03:00
Aleksey Kladov
a798f1d918
Update src/runtime.rs
...
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
2019-09-22 18:31:38 +03:00
Aleksey Kladov
60a475202a
add add_synthetic_read method to allow tweaking of the durability
2019-09-20 12:24:46 +03:00
Aleksey Kladov
95d0392f9c
add invalidate method to queries
2019-09-20 10:40:26 +03: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
Guanqun Lu
5eb6c6f0bd
some random typo fixes
2019-08-23 00:54:29 +08:00
Markus Westerlind
360c78397b
nits
2019-08-21 10:18:01 +02:00
Markus Westerlind
897ee5f3d2
cargo fmt
2019-08-21 10:13:08 +02:00
Markus Westerlind
0e01067d55
feat: Allow queries to avoid panics on cycles
...
Quickest POC I could create to get some potentially cyclic queries to
not panic and instead return a result I could act on. (gluon's module
importing need to error on cycles).
```
// Causes `db.query()` to actually return `Result<V, CycleError>`
fn query(&self, key: K, key2: K2) -> V;
```
A proper implementation of this would likely return
`Result<V, CycleError<(K, K2)>>` or maybe larger changes are needed.
cc #6
2019-08-16 20:37:54 +02:00
Aleksey Kladov
dd2b6669cc
Merge pull request #182 from matklad/runtime_id
...
use AtomicU64 for RuntimeId
2019-08-15 14:38:34 +03:00
Aleksey Kladov
efa92fdc23
use AtomicU64 for RuntimeId
...
We don't use `RuntimeId` to index memory, so using usize is
not the best fit semantically
2019-08-15 14:06:26 +03:00
Niko Matsakis
89dcc0ca57
Merge pull request #181 from matklad/ptr
...
use ptr::eq/hash for readability
2019-08-15 07:04:07 -04:00
Niko Matsakis
c80f5ead1c
Merge pull request #185 from matklad/pl
...
⬆️ parking_lot
2019-08-15 07:02:30 -04:00
Niko Matsakis
ae9ab75384
Merge pull request #183 from matklad/no-clone
...
remove needless clone
2019-08-15 07:01:34 -04:00
Niko Matsakis
b272cc1321
Merge pull request #180 from nikomatsakis/durability
...
Durability
2019-08-15 07:01:00 -04:00
Niko Matsakis
b26a690ff3
remove an unnecessary &mut
2019-08-15 06:50:10 -04:00
Niko Matsakis
969a9c2fc8
re-use the database-key instead of recreating it
2019-08-15 06:39:17 -04:00
Niko Matsakis
4cae741768
inline probe_memoized_value
2019-08-15 06:36:37 -04:00
Aleksey Kladov
5c27b734cf
⬆️ parking_lot
2019-07-15 19:43:39 +03:00
Niko Matsakis
485df37e6f
make durability helper panic on an undefined key
2019-07-05 06:06:29 -04:00
Niko Matsakis
d4f7e4b2b4
improve comment
2019-07-05 06:05:18 -04:00
Niko Matsakis
346ce6bc16
remove set_common
helper and merge into set
2019-07-05 06:01:55 -04:00
Niko Matsakis
06ad8c7930
merge set and set_with_durability in plumbing trait
2019-07-05 06:01:17 -04:00
Niko Matsakis
8d30df0a0f
log durability
2019-07-05 06:00:21 -04:00
Niko Matsakis
e4b822cca4
s/verify_value/mark_value_as_verified/
2019-07-05 05:59:21 -04:00
Niko Matsakis
87f8517d75
remove max_durability
in favor of Durability::MAX
2019-07-05 05:58:23 -04:00
Niko Matsakis
e4cca9b8ff
disallow (and remove) dead-code
2019-07-05 05:58:10 -04:00
Niko Matsakis
6252430a91
Update src/input.rs
...
Co-Authored-By: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-07-05 05:52:36 -04:00
Aleksey Kladov
519bde621c
tiny simplification
2019-07-05 10:39:59 +03:00
Aleksey Kladov
1faa9d6016
remove needless clone
2019-07-04 15:20:27 +03:00
Niko Matsakis
5221e95ac4
correct out of date comments and typos
2019-07-04 06:32:08 -04:00