From 08895b161f51f9e01a4964d1846a52968ceeb2d3 Mon Sep 17 00:00:00 2001 From: "bors[bot]" Date: Mon, 7 Feb 2022 20:33:32 +0000 Subject: [PATCH] deploy: 0f9971ad94d5d137f1192fde2b02ccf1d2aca28c --- 404.html | 2 +- about_salsa.html | 2 +- common_patterns.html | 2 +- common_patterns/on_demand_inputs.html | 2 +- common_patterns/selection.html | 2 +- cycles.html | 2 +- cycles/fallback.html | 2 +- derived-query-maybe-changed-after.drawio.svg | 4 + derived-query-read.drawio.svg | 2 +- how_salsa_works.html | 2 +- how_to_use.html | 2 +- index.html | 2 +- meta.html | 6 +- plumbing.html | 2 +- plumbing/cycles.html | 2 +- plumbing/database.html | 7 +- plumbing/derived_flowchart.html | 2 +- plumbing/diagram.html | 2 +- plumbing/fetch.html | 2 +- plumbing/generated_code.html | 2 +- plumbing/maybe_changed_after.html | 2 +- plumbing/query_groups.html | 8 +- plumbing/query_ops.html | 2 +- plumbing/salsa_crate.html | 2 +- plumbing/terminology.html | 2 +- plumbing/terminology/LRU.html | 2 +- plumbing/terminology/backdate.html | 2 +- plumbing/terminology/changed_at.html | 2 +- plumbing/terminology/dependency.html | 2 +- plumbing/terminology/derived_query.html | 2 +- plumbing/terminology/durability.html | 2 +- plumbing/terminology/input_query.html | 2 +- plumbing/terminology/memo.html | 2 +- plumbing/terminology/query.html | 2 +- plumbing/terminology/query_function.html | 2 +- plumbing/terminology/revision.html | 2 +- plumbing/terminology/untracked.html | 2 +- plumbing/terminology/verified.html | 2 +- print.html | 271 ++++++++++- rfcs.html | 2 +- rfcs/RFC0001-Query-Group-Traits.html | 2 +- rfcs/RFC0002-Intern-Queries.html | 2 +- rfcs/RFC0003-Query-Dependencies.html | 2 +- rfcs/RFC0004-LRU.html | 2 +- rfcs/RFC0005-Durability.html | 2 +- rfcs/RFC0006-Dynamic-Databases.html | 2 +- rfcs/RFC0007-Opinionated-Cancelation.html | 2 +- rfcs/RFC0008-Remove-Garbage-Collection.html | 2 +- rfcs/RFC0009-Cycle-recovery.html | 6 +- rfcs/RFC0010-Slot-no-more.html | 457 +++++++++++++++++++ rfcs/template.html | 2 +- searchindex.js | 2 +- searchindex.json | 2 +- videos.html | 2 +- 54 files changed, 797 insertions(+), 56 deletions(-) create mode 100644 derived-query-maybe-changed-after.drawio.svg create mode 100644 rfcs/RFC0010-Slot-no-more.html diff --git a/404.html b/404.html index 9be2ebde..31638362 100644 --- a/404.html +++ b/404.html @@ -84,7 +84,7 @@ diff --git a/about_salsa.html b/about_salsa.html index f608e6d0..c6df5c52 100644 --- a/about_salsa.html +++ b/about_salsa.html @@ -83,7 +83,7 @@ diff --git a/common_patterns.html b/common_patterns.html index bd41c943..abba9528 100644 --- a/common_patterns.html +++ b/common_patterns.html @@ -83,7 +83,7 @@ diff --git a/common_patterns/on_demand_inputs.html b/common_patterns/on_demand_inputs.html index 92ebada8..1f5294df 100644 --- a/common_patterns/on_demand_inputs.html +++ b/common_patterns/on_demand_inputs.html @@ -83,7 +83,7 @@ diff --git a/common_patterns/selection.html b/common_patterns/selection.html index c2ff9452..b9a77088 100644 --- a/common_patterns/selection.html +++ b/common_patterns/selection.html @@ -83,7 +83,7 @@ diff --git a/cycles.html b/cycles.html index 324bc113..9cded8c7 100644 --- a/cycles.html +++ b/cycles.html @@ -83,7 +83,7 @@ diff --git a/cycles/fallback.html b/cycles/fallback.html index ab33a770..374a02c3 100644 --- a/cycles/fallback.html +++ b/cycles/fallback.html @@ -83,7 +83,7 @@ diff --git a/derived-query-maybe-changed-after.drawio.svg b/derived-query-maybe-changed-after.drawio.svg new file mode 100644 index 00000000..5f88bd52 --- /dev/null +++ b/derived-query-maybe-changed-after.drawio.svg @@ -0,0 +1,4 @@ + + + +
Memo with value exists:
last verified in Rv with durability D
Memo with value exists:...
No previous memo,
or memo has no value
No previous memo,...
Load memo_map[K]
Load memo_map[K]
Already
claimed
Already...
Claimed
Claimed
Claim sync_map[K]
Claim sync_map[K]
Thread completed
normally
Thread completed...
Cycle detected
or thread panicked
Cycle detected...
Block until other thread completes
Block until other th...
Load memo_map[K]
Load memo_map[K]
Push K onto stack
Push K onto stack
Release claim.
Release claim.
Pop stack frame.
Pop stack frame.
(Destructor)
(Destructo...
(Destructor)
(Destructo...
False
False
Panic
Panic
True
True
Deep verify memo
Deep verify memo
False
False
True
True
Shallow verify memo
Shallow verify memo
Return changed_at > revision
Return changed_at >...
Return changed_at > revision
Return changed_at >...
Panic
Panic
Execute
Execute
Yes
Yes
No
No
Have old memo?
Have old memo?
Return true (maybe changed)
Return true (maybe c...
maybe_changed_since(revision)
maybe_changed_since(revision)
maybe_changed_after_cold()
maybe_changed_after_cold()
Text is not SVG - cannot display
\ No newline at end of file diff --git a/derived-query-read.drawio.svg b/derived-query-read.drawio.svg index ccde18c8..72416823 100644 --- a/derived-query-read.drawio.svg +++ b/derived-query-read.drawio.svg @@ -1,4 +1,4 @@ -
Acquire read lock
on query Q
Acquire read lock...
Acquire read-upgrade lock on query Q
Acquire read-upgrade...
With read lock
In progress
by thread T
In progress...
Read value
of Q
Read value...
Up to date
Up to date
Block on T
Block on T
Return value
Return value
Thread T
completed
Thread T...
Execute Cycle Recovery
Execute Cycle...
Recoverable
cycle
detected
Recoverable...
Panic
Panic
Irrecoverable
cycle detected
Irrecoverable...
Other
value
Other...
With read-upgrade lock
In progress
by thread T
In progress...
Read value
of Q
Read value...
Up to date
Up to date
Block on T
Block on T
Return value
Return value
Thread T
completed
Thread T...
Execute Cycle Recovery
Execute Cycle...
Recoverable
cycle
detected
Recoverable...
Upgrade to
write lock on Q
Upgrade to...
Other
value
Other...
With write lock
Take memo M and set Q to InProgress
Take memo M and set...
Query is marked as in-progress
Pop query from
query stack
Pop query from...
Set Q to Not Computed
Set Q to Not Computed
Push panic guard
Push panic guard
Push query
on query stack
Push query...
Query has
memoized value?
Query has...
Salsa Event:
WillExecute
Salsa Event:...
No
No
Execute Query Function
Execute Query Functi...
Execute Cycle Recovery
Execute Cycle Recove...
Pop query from
query stack
Pop query from...
Unwound with
`CycleParticipant`
Unwound with...
Create memo M1
with recorded inputs
Create memo M1...
Returned
normally
Returned...
Backdate M1 to "changed at" from M
if value is the same
Backdate M1 to "chan...
Store `M` and
return value
Store `M` and...
For each input `Qin`...
For each input `Qin`...
Yes!
Yes!
No
No
...has `Qin` changed
since `M` was last verified?
...has `Qin` changed...
Yes
Yes
Mark `M` as verified
in current revision
Mark `M` as verified...
Salsa Event:
DidValidateMemoizedValue
Salsa Event:...
Store `M` and return value
Store `M` and return value
No more
inputs
No more...
Yes
Yes
Any inputs with durability D changed since M was verified?
Any inputs with durability...
No
No
Panic
Panic
Panic
Panic
Panic
Panic
Viewer does not support full SVG 1.1
\ No newline at end of file +
Memo with value exists:
last verified in Rv with durability D
Memo with value exists:...
No previous memo,
or memo has no value
No previous memo,...
Load memo_map[K]
Load memo_map[K]
No
No
Yes
Yes
Rv is current revision?
Rv is current revisi...
Yes
Yes
No
No
Inputs with durability D changed since Rv?
Inputs with durabili...
Return value
Return value
Already
claimed
Already...
Claimed
Claimed
Claim sync_map[K]
Claim sync_map[K]
Thread completed
normally
Thread completed...
Cycle detected
or thread panicked
Cycle detected...
Block until other thread completes
Block until other th...
No previous memo
No previous memo
Load memo_map[K]
Load memo_map[K]
Previous memo exists,
last verified in Rv
with durability D
Previous memo exists,...
Update verified_at to current revision
Update verified_at t...
No
No
Yes
Yes
Rv is current revision?
Rv is current revisi...
No
No
Inputs with durability D changed since Rv?
Inputs with durabili...
Return value
Return value
Update verified_at to current revision
Update verified_at t...
All inputs verified
All inputs verified
For each input I...
For each input I...
Push K onto stack
Push K onto stack
No
No
Input I maybe changed after Rv?
Input I maybe change...
Salsa Event:
Will Execute
Salsa Event:...
Cycle detected
Cycle detected
Execute query function
Execute query functi...
Backdate value if equal to old value.
Backdate value if eq...
Store memo with
new value.
Store memo with...
Execute cycle recovery
Execute cycle recove...
Fallback
Fallback
Panic
Panic
Check recovery strategy
Check recovery strat...
Flag is Some
Flag is Some
Flag is None
Flag is None
Check cycle flag on stack frame
Check cycle flag on...
Unwind with cycle
Unwind with cycle
Release claim.
Release claim.
Pop stack frame.
Pop stack frame.
(Destructor)
(Destructo...
(Destructor)
(Destructo...
shallow_verify_memo()
shallow_verify_memo()
fetch_hot()
fetch_hot()
fetch_cold()
fetch_cold()
sync_map.claim()
sync_map.claim()
execute()
execute()
deep_verify_memo()
deep_verify_memo()
shallow_verify_memo()
shallow_verify_memo()
Text is not SVG - cannot display
\ No newline at end of file diff --git a/how_salsa_works.html b/how_salsa_works.html index 5e422e96..2535fcaf 100644 --- a/how_salsa_works.html +++ b/how_salsa_works.html @@ -83,7 +83,7 @@ diff --git a/how_to_use.html b/how_to_use.html index cad68d1a..6f96bab5 100644 --- a/how_to_use.html +++ b/how_to_use.html @@ -83,7 +83,7 @@ diff --git a/index.html b/index.html index 0ff0ab07..e44f5b3e 100644 --- a/index.html +++ b/index.html @@ -83,7 +83,7 @@ diff --git a/meta.html b/meta.html index 9b358523..1c720440 100644 --- a/meta.html +++ b/meta.html @@ -83,7 +83,7 @@ @@ -162,7 +162,7 @@