Niko Matsakis
|
d2c3025009
|
refactor probe to be more generic
|
2018-10-14 07:23:38 -04:00 |
|
Niko Matsakis
|
be08029f8c
|
[WIP] introduce blocking/notification
|
2018-10-14 06:59:43 -04:00 |
|
Niko Matsakis
|
da94299f19
|
[WIP] restructure to handle blocking (which we do not yet initiate)
|
2018-10-13 06:28:05 -04:00 |
|
Niko Matsakis
|
975eaf58d7
|
change InProgress to a struct form
|
2018-10-13 06:08:29 -04:00 |
|
Niko Matsakis
|
ea0b196a5d
|
[WIP] await_other_guard fn
|
2018-10-13 06:04:57 -04:00 |
|
Niko Matsakis
|
00c76be635
|
refactor derived read to only require read lock
The old setup acquired `upgradable_read` even when the value was cached.
At that point you might as well just a mutex.
|
2018-10-13 05:45:57 -04:00 |
|
Niko Matsakis
|
a0e14e1806
|
runtime: dependency graph (wip)
|
2018-10-12 13:41:55 -04:00 |
|
Niko Matsakis
|
ca329ddd10
|
store the runtime-id in the InProgress indicator
|
2018-10-12 12:11:49 -04:00 |
|
Niko Matsakis
|
36f72c0b58
|
give each forked runtime a unique id
|
2018-10-12 12:11:49 -04:00 |
|
Niko Matsakis
|
e7e9c1bebb
|
rename revision_lock to query_lock and update comments
|
2018-10-12 12:11:49 -04:00 |
|
Niko Matsakis
|
4f4676df60
|
remove a bunch of unused imports
|
2018-10-12 11:21:40 -04:00 |
|
Niko Matsakis
|
be62e8c7a1
|
add runtime log
|
2018-10-12 11:21:40 -04:00 |
|
Niko Matsakis
|
890207346f
|
do not hold input write lock while incrementing revision
|
2018-10-12 05:28:17 -04:00 |
|
Niko Matsakis
|
d11a15aff9
|
add debugging methods on input::set
|
2018-10-12 05:27:42 -04:00 |
|
Niko Matsakis
|
f7d6ebe76a
|
introduce a ParallelDatabase trait
|
2018-10-11 20:22:38 -04:00 |
|
Niko Matsakis
|
c6f78d5f27
|
have queries freeze the revision
|
2018-10-11 16:48:20 -04:00 |
|
Niko Matsakis
|
41b36da054
|
tracking pending increments and add is_current_revision_canceled
|
2018-10-11 08:37:15 -04:00 |
|
Niko Matsakis
|
4a8b264b7f
|
add a revision lock
|
2018-10-11 08:18:16 -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
|
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
|
16d151e4c8
|
add debugging APIs -- just is_constant for now
|
2018-10-11 04:37:29 -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
|
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
|
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 |
|