Niko Matsakis
|
c93868c9dc
|
make volatile queries memoize
This ensures consistency of results.
|
2018-10-09 12:41:56 -04:00 |
|
Niko Matsakis
|
7c65d07ea6
|
rename from WeakMemoizedStorage to DerivedStorage
|
2018-10-09 12:15:33 -04:00 |
|
Niko Matsakis
|
5ad0049b9f
|
merge volatile and memoized queries
|
2018-10-09 12:14:09 -04:00 |
|
Niko Matsakis
|
2d6e454638
|
add the idea of "untracked reads" and use it to optimize volatile
Now we won't be tracking the inputs to a volatile query, since we don't
care about them anyway.
|
2018-10-09 11:04:25 -04:00 |
|
Niko Matsakis
|
1e6bfc7fdd
|
introduce a callback into execute_query_implementation
|
2018-10-09 10:26:33 -04:00 |
|
Niko Matsakis
|
30236cc110
|
introduce a new helper, verify_inputs
|
2018-10-09 09:27:59 -04:00 |
|
Niko Matsakis
|
121821117d
|
Merge pull request #36 from matklad/weak-memoized
Merge Memoized and Dependency storages
|
2018-10-09 08:53:57 -04:00 |
|
Niko Matsakis
|
296d33aae7
|
factor out ChangedAt to record when something changed
|
2018-10-09 08:53:13 -04:00 |
|
Niko Matsakis
|
4efbd411fa
|
check with old_memo.value.is_some() before revalidating inputs
|
2018-10-09 08:40:53 -04:00 |
|
Niko Matsakis
|
f04d66fce4
|
rename to MemoizationPolicy
|
2018-10-09 08:39:41 -04:00 |
|
Niko Matsakis
|
067e478e48
|
correct spelling, add spacing between fields
|
2018-10-09 08:37:57 -04:00 |
|
Niko Matsakis
|
d3fdfad141
|
Merge pull request #42 from memoryruins/remove-send-bounds
Remove Send bounds on Query keys and values
|
2018-10-09 08:22:16 -04:00 |
|
Niko Matsakis
|
ac6f2a5689
|
Merge pull request #40 from matklad/reexport-runtime
Re-export runtime
|
2018-10-09 08:21:44 -04:00 |
|
memoryruins
|
4c7bd8745a
|
Remove bounds on Query keys and values
|
2018-10-07 15:14:26 -04:00 |
|
Aleksey Kladov
|
f14d846146
|
Re-export runtime
cc #17
|
2018-10-07 14:08:22 +03:00 |
|
Aleksey Kladov
|
6c09f40733
|
Remove DefaultKey trait
We no longer use `.get` function directly, so DefaultKey does not make
much sense
|
2018-10-07 14:01:58 +03:00 |
|
Aleksey Kladov
|
b411d51a05
|
Merge Memoized and Dependency storages
closes #18
|
2018-10-06 20:15:12 +03:00 |
|
Niko Matsakis
|
2f5c2f1b44
|
add a comment
|
2018-10-06 07:12:29 -04:00 |
|
Niko Matsakis
|
0225fc615c
|
add a set_unchecked method that can be used to do mocking in tests
|
2018-10-05 15:23:17 -04:00 |
|
Niko Matsakis
|
c75e7e44f7
|
add a test showing that you can write use fn
|
2018-10-05 10:39:55 -04:00 |
|
Niko Matsakis
|
8366b3a38b
|
rename query_prototype to query_group
|
2018-10-05 10:35:50 -04:00 |
|
Niko Matsakis
|
55ec1f51d3
|
switch to use fn
|
2018-10-05 10:30:17 -04:00 |
|
Niko Matsakis
|
1b98ecb7a8
|
change to db.query(Query).set(key, value)
|
2018-10-05 06:58:51 -04:00 |
|
Niko Matsakis
|
0ee6f3884d
|
make query_prototype also define queries, remove query_definition
|
2018-10-05 05:55:35 -04:00 |
|
Niko Matsakis
|
cd5622c6de
|
make query method get by default
Use `Query.set(db, key, value)` to set. Not sure about this.
|
2018-10-05 05:28:51 -04:00 |
|
Niko Matsakis
|
d6c7080877
|
introduce a GetQueryTable trait and use to get the query tables
|
2018-10-05 05:15:21 -04:00 |
|
Niko Matsakis
|
84dca313f7
|
factor out a QueryFunction trait -- inputs don't implement it
|
2018-10-05 04:59:33 -04:00 |
|
Niko Matsakis
|
a4fb4b7b13
|
rename query context to database
|
2018-10-05 04:54:51 -04:00 |
|
Niko Matsakis
|
89a0ff4221
|
Merge pull request #21 from nikomatsakis/docs
change `query_prototype` to take entire trait; update the docs
|
2018-10-02 06:01:57 -04:00 |
|
Niko Matsakis
|
2ddc8032ee
|
make query_prototype take trait, rename hello_world to compiler
|
2018-10-01 20:42:41 -04:00 |
|
Niko Matsakis
|
5472cfdbc8
|
simplify the logic by using changed_at and not verified_at
I think they are actually equivalent, as we have already fond that the
inputs did not change in the range `changed_at..=verified_at`.
|
2018-10-01 13:20:18 -04:00 |
|
Aleksey Kladov
|
981606a121
|
Assert inputs are not modified concurrently
|
2018-10-01 16:29:19 +03:00 |
|
Niko Matsakis
|
157e1e47f1
|
add support for "dependency only" tracking
|
2018-10-01 08:40:15 -04:00 |
|
Niko Matsakis
|
5a802ae05c
|
add a helper method overwrite_placeholder
|
2018-10-01 08:40:15 -04:00 |
|
Niko Matsakis
|
5849af83ac
|
track the "changed at" revision for every query read as well
|
2018-10-01 08:40:14 -04:00 |
|
Niko Matsakis
|
436d4d5084
|
combine changed_at and value into a stamped value in the Memo
|
2018-10-01 08:39:50 -04:00 |
|
Niko Matsakis
|
b5d1ba9000
|
extract StampedValue into the runtime module
|
2018-10-01 08:39:50 -04:00 |
|
Aleksey Kladov
|
e13187f747
|
Track cycles in volatile queries
|
2018-10-01 13:58:54 +03:00 |
|
Niko Matsakis
|
968149dc34
|
rename from of to get and use read in tests
|
2018-09-30 10:59:08 -04:00 |
|
Niko Matsakis
|
6b5871c5af
|
nicer macro syntax
we give bad error messages if misused, though
|
2018-09-30 10:55:59 -04:00 |
|
Niko Matsakis
|
0846e6ebba
|
write tests for input
|
2018-09-30 10:50:46 -04:00 |
|
Niko Matsakis
|
e2da42d36a
|
add "input" storage
|
2018-09-30 10:22:11 -04:00 |
|
Niko Matsakis
|
1fef80d659
|
expand incremental tests
|
2018-09-30 07:32:24 -04:00 |
|
Niko Matsakis
|
9bfd8ebbfa
|
add debugging, get incremental test working
|
2018-09-30 07:28:22 -04:00 |
|
Niko Matsakis
|
e134ffcdf4
|
add a public next_revision method and start on incremental test
|
2018-09-30 06:59:28 -04:00 |
|
Niko Matsakis
|
4f04f9335c
|
implement maybe_changed_since for volatile, fix comments
|
2018-09-30 06:09:06 -04:00 |
|
Niko Matsakis
|
7c78d60360
|
rename transparent to volatile
|
2018-09-30 06:05:42 -04:00 |
|
Niko Matsakis
|
b12b607db2
|
have query-descriptors invoke maybe_changed_since
|
2018-09-30 06:04:09 -04:00 |
|
Niko Matsakis
|
4449e97944
|
start threading through inputs and revision information
|
2018-09-29 10:19:10 -04:00 |
|
Niko Matsakis
|
907fe96628
|
add a Memoized struct
|
2018-09-29 07:24:53 -04:00 |
|
Niko Matsakis
|
738e285c5c
|
add a (unused) report_query_read to runtime to track deps
|
2018-09-29 07:23:45 -04:00 |
|
Niko Matsakis
|
5ed8cafe04
|
introduce active query and some (unused) fields
|
2018-09-29 07:15:41 -04:00 |
|
Niko Matsakis
|
dc94984a2b
|
introduce a LocalState type
|
2018-09-29 07:02:32 -04:00 |
|
Niko Matsakis
|
2e7e77516e
|
refactor to have a revision and shared state in runtime
Pare down our feature list to what we actually *use*
|
2018-09-29 06:52:56 -04:00 |
|
Niko Matsakis
|
36e2b9cdcc
|
checkpoint: weird rustc bug permitting extra members
|
2018-09-29 06:41:00 -04:00 |
|
Niko Matsakis
|
d7b1d194de
|
remove the pub use for runtime to keep the "main namespace" clean
Not sure which is better.
|
2018-09-29 06:20:12 -04:00 |
|
Niko Matsakis
|
8921a1bcde
|
introduce a QueryDescriptor trait
|
2018-09-29 06:04:02 -04:00 |
|
Niko Matsakis
|
c85edccc1e
|
remove the horrible dyn_descriptor and generate an enum
|
2018-09-29 06:01:44 -04:00 |
|
Niko Matsakis
|
d6821d1097
|
allow user to define link to storage/runtime entirely
This seems like a more consistent abstraction.
|
2018-09-29 05:52:14 -04:00 |
|
Niko Matsakis
|
4b4ab53cdb
|
improve comment
|
2018-09-29 05:48:28 -04:00 |
|
Niko Matsakis
|
4054817a96
|
add a comment
|
2018-09-29 05:45:58 -04:00 |
|
Niko Matsakis
|
5bee46108d
|
remove the need to manually specify the QueryDescriptor
The macro can handle it now.
|
2018-09-29 05:44:34 -04:00 |
|
Niko Matsakis
|
2e40e9d1e5
|
rename BaseQueryContext to just QueryContext
And use it like `salsa::QueryContext` elsewhere.
|
2018-09-29 05:34:29 -04:00 |
|
Niko Matsakis
|
288fe5b25f
|
add a "runtime" and use that from query context impls
|
2018-09-29 05:31:26 -04:00 |
|
Niko Matsakis
|
ac7b02b7ef
|
add some comments and one more test
|
2018-09-29 04:53:59 -04:00 |
|
Niko Matsakis
|
7dcbaf4f2f
|
add test for transparent queries
|
2018-09-29 04:50:08 -04:00 |
|
Niko Matsakis
|
1b873281a1
|
permit multiple queries in query_prototype
|
2018-09-29 04:34:19 -04:00 |
|
Niko Matsakis
|
fe21e28b8c
|
add transparent storage and ability to select it in macro
|
2018-09-29 04:27:45 -04:00 |
|
Niko Matsakis
|
ed92e0f408
|
keep QueryState private
|
2018-09-28 17:47:40 -04:00 |
|
Niko Matsakis
|
fcd8e97500
|
rename storage to memoized
|
2018-09-28 17:47:09 -04:00 |
|
Niko Matsakis
|
9b4267f7c1
|
add a boilerplate reducing macro
|
2018-09-28 14:26:46 -04:00 |
|
Niko Matsakis
|
302a89fea5
|
rewrite to use parking lot rw-locks and make everything threadsafe
|
2018-09-28 14:02:39 -04:00 |
|
Niko Matsakis
|
086005dc52
|
convert the example into a test
|
2018-09-28 13:54:40 -04:00 |
|
Niko Matsakis
|
abb4345c08
|
add a bunch of comments, some new bounds
|
2018-09-28 13:53:15 -04:00 |
|
Niko Matsakis
|
3646890b38
|
make the example build
|
2018-09-28 11:40:43 -04:00 |
|
Niko Matsakis
|
798a8a418c
|
add an example and get it building
|
2018-09-28 11:26:53 -04:00 |
|
Niko Matsakis
|
cae379fd06
|
import the code
|
2018-09-28 11:04:52 -04:00 |
|
Niko Matsakis
|
b26f0c17ea
|
add readme, license, etc
|
2018-09-28 11:01:27 -04:00 |
|