Niko Matsakis
206af35e2b
release 0.8.0
...
- major refactoring to the database APIs for safer parallel
processing (#78 , #82 ):
- To set an input, you now write `db.query_mut(Query).set(...)`,
and you must declare your database as `mut`.
- To fork a thread, you now write `db.snapshot()`, which acquires
a read-lock that is only released when the snapshot is dropped
(note that this read-lock blocks `set` from occuring on the main
thread).
- Therefore, there can only be one mutable handle to the
database; all other handles are snapshots. This eliminates a variety
of complex and error-prone usage patterns.
- introduced the `salsa_event` callback that can be used for logging
and introspection (#63 )
2018-11-01 05:56:03 -04:00
Niko Matsakis
642df84ed6
Merge pull request #82 from nikomatsakis/query-mut
...
introduce `query_mut` which you must use to get `set` methods
2018-11-01 05:55:12 -04:00
Niko Matsakis
d689d02117
remove outdated note on atomicity; not a concern anymore
2018-11-01 05:03:09 -04:00
Niko Matsakis
341619d20e
reorganize to put "how to implement this" at the end
2018-11-01 05:02:33 -04:00
Niko Matsakis
5a88871b9a
improve snapshot docs
...
Using two snapshots from the same thread isn't really very easy to do,
so we don't have to warn about that really (it's really nested use of
snapshots that's a problem, and to do that you have to use thread-locals
or something just to get the snapshot *into* the database -- at that
point, something is really going wrong)).
2018-11-01 05:01:13 -04:00
Niko Matsakis
a8ca57c06d
document (and start warning on missing docs)
2018-11-01 04:57:52 -04:00
Niko Matsakis
49cc8abe43
introduce query_mut
which you must use to get set
methods
2018-11-01 04:53:56 -04:00
Niko Matsakis
981de0cac1
Merge pull request #78 from nikomatsakis/now-with-fewer-footguns
...
make `fork` give you a `Frozen<DB>`
2018-10-31 20:40:46 -04:00
Niko Matsakis
e070bf9809
s/Frozen/Snapshot/
2018-10-31 20:06:06 -04:00
Niko Matsakis
fc2a720ae2
s/fork/snapshot/
2018-10-31 20:05:31 -04:00
Niko Matsakis
5066726147
panic if you fork from inside a query for now
2018-10-31 16:03:03 -04:00
Niko Matsakis
2a6b8e07f9
remove the query_in_progress
field
2018-10-31 15:59:00 -04:00
Niko Matsakis
252132f9b4
remove the start_query
function, which is no longer needed
2018-10-31 13:31:29 -04:00
Niko Matsakis
b0171dbc11
remove fork_mut
and adopt new strategy
...
Required simplifying the various tests.
2018-10-31 12:01:36 -04:00
Niko Matsakis
38dc4c31dd
introduce fork
, which yields a frozen handle
2018-10-31 06:05:03 -04:00
Niko Matsakis
9cac418ac8
rename fork
to fork_mut
2018-10-31 06:03:33 -04:00
Niko Matsakis
2d8dbce6c1
Merge pull request #63 from nikomatsakis/logging
...
Simple logging methods
2018-10-31 04:41:48 -04:00
Niko Matsakis
2e3f8b1a3d
name the field runtime_id
2018-10-30 21:00:33 -04:00
Niko Matsakis
cf9db9cc7f
fix typo
2018-10-30 20:38:41 -04:00
Niko Matsakis
e355300554
use callbacks in parallel test
2018-10-30 20:19:25 -04:00
Niko Matsakis
59ab0bd7a2
introduce simple callbacks that can be used to build better logging
2018-10-30 20:19:25 -04:00
Niko Matsakis
87680f379d
Merge pull request #76 from nikomatsakis/release-v0.7.0
...
publish v0.7.0
2018-10-30 17:03:33 -04:00
Niko Matsakis
729904ddd3
publish v0.7.0
...
Changes:
- correct dead locks and add parallel stress test (#72 )
- we now panic if you `get` an input that has not been `set` and
we do not compare inputs for equality (thus dropped `Default` and `Eq`
bounds) (#69 )
- `PanicGuard` now detects internal salsa bugs (#71 )
2018-10-30 17:03:04 -04:00
Niko Matsakis
05223f2b7e
Merge pull request #72 from nikomatsakis/issue-70
...
be more careful when updating after a dependency check
2018-10-30 15:18:39 -04:00
Niko Matsakis
39dd71ff66
remove use of upgradable_read
from input queries
2018-10-30 15:08:09 -04:00
Aleksey Kladov
f4c00cfe97
Add a stress test
2018-10-30 14:41:56 -04:00
Niko Matsakis
7cfcbd73b8
remove unnecessary upgradable_read
2018-10-30 14:41:24 -04:00
Niko Matsakis
79e24cfa55
fix typo
2018-10-30 14:40:58 -04:00
Niko Matsakis
abeebfedc8
improve the error message here
2018-10-30 14:40:58 -04:00
Niko Matsakis
1c2b4d8d43
be more careful when updating after a dependency check
2018-10-30 14:40:58 -04:00
Niko Matsakis
aea746cb91
Merge pull request #69 from nikomatsakis/input-policies
...
add input policies to permit a wider range of inputs
2018-10-30 13:37:10 -04:00
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
b2c282ff6c
Merge pull request #71 from matklad/more-panics
...
Panic in PanicGuard if it's not explicitly forgotten
2018-10-29 13:15:56 -04:00
Aleksey Kladov
f66f1913b7
reexport revision guard
2018-10-29 17:09:50 +03:00
Aleksey Kladov
0f4d1e8320
Panic in PanicGuard if it's not explicitly forgotten
2018-10-29 15:53:11 +03: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
c018196ffb
Merge pull request #68 from nikomatsakis/release-0.6.2
...
release 0.6.2
2018-10-25 10:32:34 -04:00
Niko Matsakis
14437fe69a
release 0.6.2
...
- Includes GC (#64 )
- And a bug fix (#67 ) for cancellation
2018-10-25 10:23:02 -04:00
Niko Matsakis
cb272ae53e
Merge pull request #67 from matklad/transitive-cancelation-test
...
Add one more cancellation test
2018-10-25 10:22:00 -04:00
Aleksey Kladov
f709e64bd5
Add one more cancellation test
...
closes #66
2018-10-25 17:06:55 +03:00
Niko Matsakis
f56c341730
Merge pull request #64 from nikomatsakis/gc
...
introduce garbage collection
2018-10-25 08:50:55 -04:00
Niko Matsakis
a8e1e47a59
add simple test for SweepStrategy::discard_values()
2018-10-25 08:41:26 -04:00
Niko Matsakis
c15a50279a
Merge pull request #65 from nikomatsakis/release-0.6.1
...
release 0.6.1
2018-10-25 05:53:41 -04:00
Niko Matsakis
6d28ecd326
release 0.6.1
...
- we now offer a `lock_revision` API, though it is likely to change
- we are now panic safe, but only in a single threaded context
2018-10-25 05:51:26 -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