Niko Matsakis
6c75c57cd9
fix docs
2018-10-30 13:19:59 -04:00
Niko Matsakis
13ae45d441
remove input policies
2018-10-30 12:59:33 -04:00
Niko Matsakis
8a0f57d5c3
storage input
has its own section now
2018-10-27 06:44:28 -04:00
Niko Matsakis
e6d7cee501
no need for format!
in panic!
2018-10-27 06:44:19 -04:00
Niko Matsakis
042f89e7f8
add input policies to permit a wider range of inputs
2018-10-26 19:34:11 -04:00
Niko Matsakis
c21ea47cfc
introduce SweepStrategy
2018-10-25 05:48:37 -04:00
Niko Matsakis
74cecb6ea5
make sweep_all
public and document a *bit* better =)
2018-10-25 05:48:37 -04:00
Niko Matsakis
317281528a
adjust locking strategy to be more minimal
2018-10-25 05:48:37 -04:00
Niko Matsakis
7f1d1995aa
introduce ability to ask a table what keys it has
2018-10-25 05:48:37 -04:00
Niko Matsakis
649b1a6f99
introduce a sweep
routine
2018-10-25 05:48:37 -04:00
Niko Matsakis
d429926ddd
treat constants more uniformly
...
We used to ignore constant inputs entirely. We now track them, but if we
find that a value is constant, we discard ITS inputs. This means that
-- if we track dependencies -- we have an "outer rim" of constant
values.
Also take the opportunity to reshuffle how derived inputs represent
their state.
2018-10-25 05:48:36 -04:00
Niko Matsakis
1ab8d1a64e
refactor ChangedAt
into a struct
...
There are really two orthogonal things going on here.
2018-10-25 05:47:45 -04:00
Niko Matsakis
03751d3d5c
convert Tracked to a struct variant
2018-10-25 05:47:45 -04:00
Kevin Leimkuhler
7198902ebd
Simplify map
write to exclusive write access
2018-10-24 11:00:44 -07:00
Kevin Leimkuhler
917ca42f04
Panic safely in a single threaded context
2018-10-23 21:54:14 -07: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
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
2410a2242c
extend doc comment
2018-10-18 21:20:46 -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
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
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
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
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