Commit graph

272 commits

Author SHA1 Message Date
Aleksey Kladov
229c0b944d make Snapshot Debug 2018-11-01 15:16:57 +03:00
Niko Matsakis
bfcca3059c
Merge pull request #84 from nikomatsakis/master
release 0.8.0
2018-11-01 06:06:28 -04:00
Niko Matsakis
4a8b9123e6 update hello-world 2018-11-01 05:59:33 -04:00
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