Commit graph

342 commits

Author SHA1 Message Date
Niko Matsakis
4a8b264b7f add a revision lock 2018-10-11 08:18:16 -04:00
Niko Matsakis
12deacbbb5
Merge pull request #45 from nikomatsakis/constants
Constants
2018-10-11 08:07:57 -04:00
Niko Matsakis
a353ffb13c add back implied outlives bounds
Those were reverted on beta.
2018-10-11 05:49:05 -04:00
Niko Matsakis
a0c983403d add some tests about setting with same value 2018-10-11 05:49:05 -04:00
Niko Matsakis
5e381f314b add test where we become constant but do not change value 2018-10-11 04:56:34 -04:00
Niko Matsakis
6778898a34 track when a value *became* constant
Turns out we need this, as demonstrated by the included test =)
2018-10-11 04:53:49 -04:00
Niko Matsakis
efa8b0f307 add some simple tests using is_constant 2018-10-11 04:53:24 -04:00
Niko Matsakis
16d151e4c8 add debugging APIs -- just is_constant for now 2018-10-11 04:37:29 -04:00
Niko Matsakis
15faf43071 add some tests for constants (check for invalidation) 2018-10-09 20:49:26 -04:00
Niko Matsakis
42b88fe7e6 rewrite map to just grab a write lock, and fix some latent bugs 2018-10-09 20:36:29 -04:00
Niko Matsakis
a7317084dc support set_constant in inputs
FIXME: Need test for the `panic!` case etc
2018-10-09 20:36:29 -04:00
Niko Matsakis
032b269113 extract a set_common helper 2018-10-09 20:36:29 -04:00
Niko Matsakis
1afca5d505 add a Constant for ChangedAt 2018-10-09 20:36:29 -04:00
Niko Matsakis
3ffd166f2c check if input has changed before incrementing revision
WIP -- needs test
2018-10-09 20:36:29 -04:00
Niko Matsakis
6a0ed30d73 rename MutQueryStorageOps to InputQueryStorageOps 2018-10-09 20:36:29 -04:00
Niko Matsakis
bf44ef35d4
Merge pull request #44 from matklad/beta
Switch to beta from nightly
2018-10-09 18:03:19 -04:00
Niko Matsakis
a45d482a97
more descriptive assertion failure for overflow 2018-10-09 18:00:27 -04:00
Aleksey Kladov
e42c68913e check revision for overflow 2018-10-10 00:48:19 +03:00
Aleksey Kladov
74486afdec elide some lifetimes 2018-10-10 00:44:26 +03:00
Aleksey Kladov
2714730c9d Switch travis & readme to beta 2018-10-09 22:42:07 +03:00
Aleksey Kladov
46c55a1e5b Disable underscore_imports
Builds with beta now!
2018-10-09 22:40:03 +03:00
Aleksey Kladov
f28e8c1be5 disable in-band lifetimes 2018-10-09 22:39:03 +03:00
Aleksey Kladov
c3fb7a1f24 disable nll 2018-10-09 22:37:55 +03:00
Aleksey Kladov
69b9dff557 Use AtomicUsize instead of AtomicU64 2018-10-09 22:37:38 +03:00
Aleksey Kladov
1c349d4229 Switch crate to pub(crate) 2018-10-09 22:34:30 +03:00
Niko Matsakis
3b5f16cbcb
Merge pull request #43 from nikomatsakis/derived-storage
Combine memoized and volatile to make "derived storage"
2018-10-09 15:19:14 -04:00
Niko Matsakis
0dd96865c7 refactor to unwrap less 2018-10-09 15:11:57 -04:00
Niko Matsakis
6658a47a36 rename is_volatile to should_track_inputs 2018-10-09 13:28:33 -04:00
Niko Matsakis
c93868c9dc make volatile queries memoize
This ensures consistency of results.
2018-10-09 12:41:56 -04:00
Niko Matsakis
7c65d07ea6 rename from WeakMemoizedStorage to DerivedStorage 2018-10-09 12:15:33 -04:00
Niko Matsakis
5ad0049b9f merge volatile and memoized queries 2018-10-09 12:14:09 -04:00
Niko Matsakis
2d6e454638 add the idea of "untracked reads" and use it to optimize volatile
Now we won't be tracking the inputs to a volatile query, since we don't
care about them anyway.
2018-10-09 11:04:25 -04:00
Niko Matsakis
1e6bfc7fdd introduce a callback into execute_query_implementation 2018-10-09 10:26:33 -04:00
Niko Matsakis
30236cc110 introduce a new helper, verify_inputs 2018-10-09 09:27:59 -04:00
Niko Matsakis
121821117d
Merge pull request #36 from matklad/weak-memoized
Merge Memoized and Dependency storages
2018-10-09 08:53:57 -04:00
Niko Matsakis
296d33aae7 factor out ChangedAt to record when something changed 2018-10-09 08:53:13 -04:00
Niko Matsakis
4efbd411fa check with old_memo.value.is_some() before revalidating inputs 2018-10-09 08:40:53 -04:00
Niko Matsakis
f04d66fce4 rename to MemoizationPolicy 2018-10-09 08:39:41 -04:00
Niko Matsakis
067e478e48 correct spelling, add spacing between fields 2018-10-09 08:37:57 -04:00
Niko Matsakis
d3fdfad141
Merge pull request #42 from memoryruins/remove-send-bounds
Remove Send bounds on Query keys and values
2018-10-09 08:22:16 -04:00
Niko Matsakis
ac6f2a5689
Merge pull request #40 from matklad/reexport-runtime
Re-export runtime
2018-10-09 08:21:44 -04:00
Niko Matsakis
b2f3d7a70f
Merge pull request #39 from matklad/no-default-key
Remove DefaultKey trait
2018-10-09 08:20:40 -04:00
memoryruins
4c7bd8745a Remove bounds on Query keys and values 2018-10-07 15:14:26 -04:00
Aleksey Kladov
f14d846146 Re-export runtime
cc #17
2018-10-07 14:08:22 +03:00
Aleksey Kladov
6c09f40733 Remove DefaultKey trait
We no longer use `.get` function directly, so DefaultKey does not make
much sense
2018-10-07 14:01:58 +03:00
Aleksey Kladov
b411d51a05 Merge Memoized and Dependency storages
closes #18
2018-10-06 20:15:12 +03:00
Niko Matsakis
e5c97040f1
Merge pull request #35 from nikomatsakis/set-unchecked
add a comment to `set_unchecked`
2018-10-06 07:22:31 -04:00
Niko Matsakis
2f5c2f1b44 add a comment 2018-10-06 07:12:29 -04:00
Niko Matsakis
1e5f409027
Merge pull request #33 from nikomatsakis/set-unchecked
add a `set_unchecked` method that can be used to do mocking in tests
2018-10-06 06:53:07 -04:00
Niko Matsakis
6a2a5bc695 add some tests of set_unchecked in use 2018-10-05 15:36:50 -04:00