Markus Westerlind
897ee5f3d2
cargo fmt
2019-08-21 10:13:08 +02:00
Markus Westerlind
0e01067d55
feat: Allow queries to avoid panics on cycles
...
Quickest POC I could create to get some potentially cyclic queries to
not panic and instead return a result I could act on. (gluon's module
importing need to error on cycles).
```
// Causes `db.query()` to actually return `Result<V, CycleError>`
fn query(&self, key: K, key2: K2) -> V;
```
A proper implementation of this would likely return
`Result<V, CycleError<(K, K2)>>` or maybe larger changes are needed.
cc #6
2019-08-16 20:37:54 +02:00
Niko Matsakis
4815e14796
Merge pull request #190 from nikomatsakis/0.13.0
...
publish 0.13.0
2019-08-15 08:08:52 -04:00
Niko Matsakis
6fbce09585
highlight breaking changes
2019-08-15 08:08:00 -04:00
Niko Matsakis
a1bd7106a2
publish 0.13.0
...
also, create a release notes file for future reference
2019-08-15 07:59:05 -04:00
Aleksey Kladov
dd2b6669cc
Merge pull request #182 from matklad/runtime_id
...
use AtomicU64 for RuntimeId
2019-08-15 14:38:34 +03:00
Aleksey Kladov
efa92fdc23
use AtomicU64 for RuntimeId
...
We don't use `RuntimeId` to index memory, so using usize is
not the best fit semantically
2019-08-15 14:06:26 +03:00
Niko Matsakis
89dcc0ca57
Merge pull request #181 from matklad/ptr
...
use ptr::eq/hash for readability
2019-08-15 07:04:07 -04:00
Niko Matsakis
c80f5ead1c
Merge pull request #185 from matklad/pl
...
⬆️ parking_lot
2019-08-15 07:02:30 -04:00
Niko Matsakis
ae9ab75384
Merge pull request #183 from matklad/no-clone
...
remove needless clone
2019-08-15 07:01:34 -04:00
Niko Matsakis
b272cc1321
Merge pull request #180 from nikomatsakis/durability
...
Durability
2019-08-15 07:01:00 -04:00
Niko Matsakis
b26a690ff3
remove an unnecessary &mut
2019-08-15 06:50:10 -04:00
Niko Matsakis
969a9c2fc8
re-use the database-key instead of recreating it
2019-08-15 06:39:17 -04:00
Niko Matsakis
4cae741768
inline probe_memoized_value
2019-08-15 06:36:37 -04:00
Aleksey Kladov
5c27b734cf
⬆️ parking_lot
2019-07-15 19:43:39 +03:00
Aleksey Kladov
4c09786285
Merge pull request #184 from matklad/or_default
...
tiny simplification
2019-07-05 17:49:28 +03:00
Niko Matsakis
485df37e6f
make durability helper panic on an undefined key
2019-07-05 06:06:29 -04:00
Niko Matsakis
d4f7e4b2b4
improve comment
2019-07-05 06:05:18 -04:00
Niko Matsakis
346ce6bc16
remove set_common
helper and merge into set
2019-07-05 06:01:55 -04:00
Niko Matsakis
06ad8c7930
merge set and set_with_durability in plumbing trait
2019-07-05 06:01:17 -04:00
Niko Matsakis
8d30df0a0f
log durability
2019-07-05 06:00:21 -04:00
Niko Matsakis
e4b822cca4
s/verify_value/mark_value_as_verified/
2019-07-05 05:59:21 -04:00
Niko Matsakis
87f8517d75
remove max_durability
in favor of Durability::MAX
2019-07-05 05:58:23 -04:00
Niko Matsakis
e4cca9b8ff
disallow (and remove) dead-code
2019-07-05 05:58:10 -04:00
Niko Matsakis
6252430a91
Update src/input.rs
...
Co-Authored-By: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-07-05 05:52:36 -04:00
Aleksey Kladov
519bde621c
tiny simplification
2019-07-05 10:39:59 +03:00
Aleksey Kladov
1faa9d6016
remove needless clone
2019-07-04 15:20:27 +03:00
Niko Matsakis
5221e95ac4
correct out of date comments and typos
2019-07-04 06:32:08 -04:00
Aleksey Kladov
a7a8309c95
use ptr::eq/hash for readability
2019-07-03 22:24:11 +03:00
Niko Matsakis
e190a291f5
Update src/debug.rs
2019-07-03 06:28:09 -04:00
Niko Matsakis
ac93c950be
make interned keys have durability high
2019-07-02 08:22:25 -04:00
Aleksey Kladov
76f153e35e
Merge pull request #179 from matklad/bump-rand
...
⬆️ rand
2019-07-02 15:21:09 +03:00
Niko Matsakis
9d474363fc
s/next_revision/synthetic_write/
...
Also write some docs explaining its side-effects.
2019-07-02 07:49:01 -04:00
Niko Matsakis
a0a6bac5af
modify public API to set_foo_with_durability
2019-07-02 07:49:01 -04:00
Niko Matsakis
09c9bd9761
adjust public api from is_constant
to durability
2019-07-02 07:49:01 -04:00
Niko Matsakis
880b29a640
move durability
to its own module and make part of public API
2019-07-02 07:49:01 -04:00
Niko Matsakis
8b7808c6ae
eliminate a built-in notion of constant durability
2019-07-02 07:49:01 -04:00
Niko Matsakis
ccb85989bc
rename durability_last_changed_revision
to last_changed_revision
...
The old name was really awkward.
2019-07-02 07:49:01 -04:00
Niko Matsakis
e796af2e7a
update comment on durability_last_changed_revision
2019-07-02 07:49:01 -04:00
Niko Matsakis
25ce7ab47b
move revisions into a vector indexed by durability
2019-07-02 07:49:01 -04:00
Niko Matsakis
c756d98fbb
move revision
code to its own module, introduce AtomicRevision
...
pure refactoring
2019-07-02 07:49:01 -04:00
Niko Matsakis
86dfdd1fda
permits things to become *more* durable without a "change"
...
This will be important if we want to automatically upgrade the
durability of inputs.
2019-07-02 07:49:01 -04:00
Niko Matsakis
7bf4f9dc4f
silence rng deprecation warning
2019-07-02 07:49:01 -04:00
Niko Matsakis
5bbd500c64
switch internally from IsConstant
to Durability
2019-07-02 07:49:01 -04:00
Niko Matsakis
21a70b6eb0
use a newtype'd IsConstant
for better readability
...
Random bool constants are just so gauche.
2019-07-02 07:49:01 -04:00
Niko Matsakis
e480e08013
simplify slot constant tracking
2019-07-02 07:49:01 -04:00
Niko Matsakis
30714022fd
kill the ChangedAt
struct
...
It didn't seem like it was buying us much.
2019-07-02 07:49:01 -04:00
Niko Matsakis
0a5b6b0451
permit constants to be modified
...
We now track the last revision in which constants were modified. When
we see a constant query result, we record the current revision as
well. Then later we can check if the result is "still" constant. This
lets us cut out a lot of intermediate work.
2019-07-02 07:49:01 -04:00
Aleksey Kladov
89237e85f7
⬆️ rand
2019-07-02 14:40:43 +03:00
Niko Matsakis
636e48d45d
Merge pull request #176 from nikomatsakis/arc-all-the-things
...
introduce slots
2019-07-02 06:58:45 -04:00