Commit graph

1708 commits

Author SHA1 Message Date
Kevin Leimkuhler
917ca42f04 Panic safely in a single threaded context 2018-10-23 21:54:14 -07:00
Niko Matsakis
bfc56d2591
Merge pull request #57 from nikomatsakis/issue-53-frozen-revision
Issue 53 frozen revision
2018-10-22 11:40:08 -04:00
Niko Matsakis
c94db84945 add a test for the revision lock 2018-10-19 06:00:52 -04:00
Niko Matsakis
e348c21528 move signal into its own module 2018-10-19 06:00:44 -04:00
Niko Matsakis
e6f1f6b7fb replace with_frozen_revision with revision_guard 2018-10-19 06:00:15 -04:00
Niko Matsakis
2cf73b45c1 rename freeze_revision to start_query 2018-10-19 06:00:15 -04:00
Niko Matsakis
c327d08343 add a with_frozen_revision method that permits ad-hoc queries 2018-10-19 06:00:15 -04:00
Niko Matsakis
4a6a626f5d
Merge pull request #60 from nikomatsakis/master
add rust-toolchain, stop using `await`
2018-10-19 05:21:13 -04:00
Niko Matsakis
df320c71dd
Merge pull request #58 from kleimkuhler/issue-56-remove-eq-bound
[WIP] Removal of Eq bound on `Q::Val`
2018-10-19 05:20:44 -04:00
Niko Matsakis
e58702ebd0 replace use of await, which is a keyword in Rust 2018 2018-10-19 05:17:26 -04:00
Niko Matsakis
60e5221a69 add rust-toolchain file specifying beta 2018-10-19 05:17:19 -04:00
Niko Matsakis
d3bfbf0dba
Merge pull request #59 from nikomatsakis/variadic
Support variadic queries
2018-10-18 21:33:42 -04:00
Niko Matsakis
92ca4ade43 bump version to 0.6.0 2018-10-18 21:31:18 -04:00
Niko Matsakis
b046894de9 update readme 2018-10-18 21:30:55 -04:00
Niko Matsakis
120ba00f33 remove a lot of () keys 2018-10-18 21:30:55 -04:00
Niko Matsakis
2410a2242c extend doc comment 2018-10-18 21:20:46 -04:00
Niko Matsakis
85f2357ebe add a test showing what happens with inputs 2018-10-18 21:19:50 -04:00
Niko Matsakis
c0d8a08de9 permit provider fns to be variadic as well 2018-10-18 21:15:24 -04:00
Niko Matsakis
ed2cf2333f support variadic queries in the trait definition 2018-10-18 19:24:38 -04:00
Kevin Leimkuhler
7b20806417 Initial removal of Eq bound on Q::Val 2018-10-18 15:29:15 -07:00
Niko Matsakis
089f489df6
Merge pull request #55 from matklad/illigal-state
Refactor out some illegal states
2018-10-17 04:27:08 -04:00
Aleksey Kladov
5abd02097d Refactor out some illegal states
It's impossible to have an `InProgress` state here, so let's ensure
that!
2018-10-16 12:48:01 +03:00
Niko Matsakis
6a61233902
Merge pull request #51 from matklad/plumbing
Hide public impl detail in the plumbing module
2018-10-16 05:29:57 -04:00
Niko Matsakis
fd2d1fbe23
Merge pull request #52 from matklad/debug-runtime
impl fmt::Debug for Runtime
2018-10-16 05:28:09 -04:00
Aleksey Kladov
47e87e0bc2 impl fmt::Debug for Runtime 2018-10-16 11:47:40 +03:00
Aleksey Kladov
4401e88fba Hide public impl detail in the plumbing module 2018-10-16 11:24:51 +03:00
Niko Matsakis
a128861a2c
Merge pull request #50 from nikomatsakis/release-0.5.0
Release 0.5.0
2018-10-15 16:51:35 -04:00
Niko Matsakis
5ec9161598 warn about rust_2018_idioms, not deny
We are on beta so we sort of straddle this line.
2018-10-15 16:40:57 -04:00
Niko Matsakis
fbe0a83b0c release 0.5.0 2018-10-15 16:38:55 -04:00
Niko Matsakis
20c9fbf45c
Merge pull request #48 from nikomatsakis/cancellation
Cancellation and parallel queries
2018-10-15 12:37:00 -04:00
Niko Matsakis
de934274d1 block on other threads in maybe_changed_since 2018-10-15 11:55:01 -04:00
Niko Matsakis
cf72c98946 extract register_with_in_progress_thread helper 2018-10-15 11:49:14 -04:00
Niko Matsakis
29831a7430 remove ErrorDetected variant from ProbeState 2018-10-15 09:31:25 -04:00
Niko Matsakis
a8fd113636 merge read_probe and probe 2018-10-15 09:30:08 -04:00
Niko Matsakis
be983aacdf extract read_upgrade into a separate helper
And use it from `maybe_changed_since` where it makes sense.
2018-10-15 08:53:52 -04:00
Niko Matsakis
2ba9c97815 rewrite to thread a Vec<Receiver> to signal waiters
This is both more precise and the logic is simpler.
2018-10-15 08:28:55 -04:00
Niko Matsakis
373e1158f3 only acquire a read-lock when verifying inputs
We no longer use a placeholder.
2018-10-15 05:32:24 -04:00
Niko Matsakis
1799e12aa4 more debug! when executing from inputs 2018-10-15 05:25:05 -04:00
Niko Matsakis
04288dadef track whether a query is in progress more accurately 2018-10-15 05:24:36 -04:00
Niko Matsakis
9d60b1e1cd make query-descriptor-set cheaply cloneable 2018-10-14 20:15:27 -04:00
Niko Matsakis
2359d8aa0c add a test of computing sum("abc") twice in parallel 2018-10-14 14:58:31 -04:00
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
3318921717 show that executing queries on distinct keys can proceed in parallel 2018-10-13 05:45:28 -04:00
Niko Matsakis
e9fadfcfe7 add more knobs, and refactor to make that easier 2018-10-13 05:39:51 -04:00
Niko Matsakis
8da63ec029 move distinct tests into their own files to ease reading 2018-10-13 05:27:20 -04:00