Commit graph

153 commits

Author SHA1 Message Date
Lukas Wirth
e1a44b5d1d Add missing db param in book example 2022-08-18 13:00:43 +02:00
Niko Matsakis
b6aec13b20 explain databases, runtimes, etc 2022-08-18 05:37:22 -04:00
Niko Matsakis
a1a8533cef define how routes are created 2022-08-18 05:15:12 -04:00
Niko Matsakis
5b7dff908d create chapters 2022-08-18 05:02:07 -04:00
Niko Matsakis
5b9da4a9c0 start documenting plumbing 2022-08-17 21:43:06 -04:00
Niko Matsakis
85ea35932c update reference chapter
I'm mostly adding this commit to see if I can trick
git into behaving better.
2022-08-13 01:21:45 -04:00
Mihail Mihov
5d1ff35f6d
Merge branch 'salsa-rs:master' into master 2022-08-06 21:52:26 +03:00
Mihail Mihov
f1e6e54b57 Fix typos 2022-08-06 21:26:09 +03:00
Brian Anderson
7e72c0c3df Fix storage examples 2022-08-05 12:17:22 -06:00
Niko Matsakis
66f1f1c50c rename salsa-entity to salsa-2022 2022-08-05 13:20:14 -04:00
Niko Matsakis
39c26b5ea6 update documentation to use new name, specify
override is a keyword, turns out
2022-08-05 02:53:40 -04:00
Niko Matsakis
b4053ad76b rename references to memoized to tracked 2022-08-04 01:42:42 -04:00
Niko Matsakis
e222cce854 rework the tutorial with the new paradigm 2022-08-04 01:31:13 -04:00
Niko Matsakis
a96cb03a05 remove #[salsa::entity], and #[salsa::tracked] 2022-08-03 09:09:22 -04:00
Niko Matsakis
41f9ca6462 update tutorial with newer input structs in mind 2022-08-03 03:50:57 -04:00
Niko Matsakis
0880be0b79 remove support for interned enums
It's nicer to just define a struct with a data field.
2022-08-03 03:43:39 -04:00
Niko Matsakis
db75a1a510 write up a new API proposal, tracked 2022-08-02 10:24:38 +03:00
Niko Matsakis
8e348f0bc8 clarify jars a bit, hopefully
Some folks were thinking that Jars were something
more complex than they are.
2022-08-02 07:57:23 +03:00
Niko Matsakis
5aabd4014d add a caveat to avoid confusion 2022-08-02 06:37:12 +03:00
Niko Matsakis
985650523e entity-based salsa preview 2022-08-01 09:24:49 +03:00
Niko Matsakis
f91923c189 switch to Option<StampedValue> for efficiency 2022-06-03 06:44:16 -04:00
Niko Matsakis
b7ac12758b update RFC 2022-06-03 06:28:23 -04:00
Niko Matsakis
1f561023cd draft RFC 2022-06-03 06:08:52 -04:00
Yifei
9abfe4f9de fix misleading type 2022-05-31 09:14:32 +00:00
Maxwell Elliot Heiber
7fba34afd9 Document how to tune Salsa 2022-02-12 10:34:11 +00:00
Niko Matsakis
796ca0fd27 move to book directory 2022-02-07 15:44:29 -05:00
bors[bot]
0f9971ad94
Merge #296
296: Slot no more: overhauled internal algorithm r=nikomatsakis a=nikomatsakis

This is the overhauled implementation that avoids slots, is more parallel friendly, and paves the way to fixed point and more expressive cycle handling.

We just spent 90 minutes going over it. [Some rough notes are available here,](https://hackmd.io/6x9f6mavTRS2imfG96tP5A) and a video will be posted soon.

You may find the [flowgraph useful](https://raw.githubusercontent.com/nikomatsakis/salsa/slot-no-more/book/src/derived-query-read.drawio.svg).



Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
2022-02-07 20:30:07 +00:00
Maxwell Elliot Heiber
d80d10d0c4 Fix mdbook warning re "Potential incomplete link"
In cycle.md, change `[salsa::Cycle]`
to `salsa::Cycle` so mdbook doesn't get confused
and think there is a broken Markdown link.

The warning was as follows:

```
warning: Potential incomplete link
  ┌─ cycles.md:3:131
  │
3 │ By default, when Salsa detects a cycle in the computation graph, Salsa will panic with a [`salsa::Cycle`] as the panic value. The [`salsa::Cycle`] structure that describes the cycle, which can be useful for diagnosing what went wrong.
  │                                                                                                                                   ^^^^^^^^^^^^^^^^ Did you forget to define a URL for ``salsa::Cycle``?
  │
  = hint: declare the link's URL. For example: `[`salsa::Cycle`]: http://example.com/`
```

After fixing this problem, there are no more mdbook warnings.
2022-01-23 19:55:02 +00:00
Niko Matsakis
d4a6b24358 Update derived-query-maybe-changed-after.drawio.svg 2022-01-21 15:14:10 -05:00
Niko Matsakis
416884bdfa Update derived-query-maybe-changed-after.drawio.svg 2022-01-21 15:14:04 -05:00
Niko Matsakis
ff5c6137ac Update derived-query-maybe-changed-after.drawio.svg 2022-01-21 15:12:01 -05:00
Niko Matsakis
d69bddea9e Update derived-query-maybe-changed-after.drawio.svg 2022-01-21 15:06:47 -05:00
Niko Matsakis
be7a6ed06c Added derived-query-maybe-changed-after.drawio.svg 2022-01-21 14:58:26 -05:00
Niko Matsakis
b3242064a2 Update derived-query-read.drawio.svg to indicate fn boundaries 2022-01-21 14:55:46 -05:00
Niko Matsakis
2e0301f043 "maybe changed AFTER" in diagram 2022-01-21 13:58:15 -05:00
Niko Matsakis
1f5d701075 tweak SVG to rename "maybe changed after" 2022-01-21 13:58:15 -05:00
Niko Matsakis
e5f59cb7c9 add RFC that describes the new scheme 2022-01-21 13:58:15 -05:00
Niko Matsakis
08be38ae62 Update derived-query-read.drawio.svg 2022-01-21 13:58:15 -05:00
Niko Matsakis
fc020de9c4 s/maybe_changed_since/maybe_changed_after/ 2021-11-13 16:39:41 -05:00
Niko Matsakis
ff71d77a24 avoid overloading the term "participant" 2021-11-13 11:58:18 -05:00
Niko Matsakis
7081fe428c move the RFC contents to salsa book 2021-11-12 19:16:04 -05:00
Niko Matsakis
db2daf03e3 describe implementation in RFC 2021-11-12 09:02:40 -05:00
Niko Matsakis
b8f628d664 improve RFC guide description 2021-11-11 09:07:45 -05:00
Niko Matsakis
7c02d1910b add cycle recovery 2021-11-06 07:59:20 -04:00
Niko Matsakis
b9d748a2ae move content from rfc into book,d ocs 2021-11-06 05:29:31 -04:00
Niko Matsakis
cc2f8870c1 Cleanup edges, panics for diagram 2021-11-04 05:35:55 -04:00
Niko Matsakis
accde0ad70 doc "maybe changed since" and terminology 2021-11-04 05:29:43 -04:00
Niko Matsakis
7d66224319 start expanding the book (wip!) 2021-11-03 10:53:39 -04:00
Niko Matsakis
2f5e1d15d7 add diagram of derived query reads
Created in draw.io, should be editable from there.
2021-11-03 07:49:08 -04:00
Niko Matsakis
072184f486 FetchMaybeChanged.drawio 2021-11-03 04:23:37 -04:00
Niko Matsakis
33d47cc747 throw Cycle value directly
Do not wrap in Cancelled.
2021-11-02 12:45:42 -04:00
Niko Matsakis
ff7f5b60b0 first RFC draft 2021-11-02 07:07:22 -04:00
Niko Matsakis
f659e1d2dd docs: improve diagram, split gen. code and runtime 2021-10-31 04:30:11 -04:00
Matthijs Brobbel
b94a5f166c
Update book workflow 2021-09-28 22:03:05 +02:00
armoha
ec7a3ae3c3 Add bilibili videos links into book 2021-09-10 05:39:10 +09:00
Niko Matsakis
11c55b804d
Update RFC0008-Remove-Garbage-Collection.md 2021-06-15 15:29:42 -04:00
Niko Matsakis
1bf5757255 link RFC to PR 2021-06-06 06:08:45 -04:00
Niko Matsakis
f7dd6b3219 remove tracing garbage collection support
It is not widely used and it makes it harder to evolve Salsa.
2021-06-06 06:06:03 -04:00
Niko Matsakis
67207d8d0d update with links to implementation 2021-05-27 20:24:38 -04:00
Niko Matsakis
08cc09f7e3 nits, sp 2021-05-15 09:35:09 -04:00
Niko Matsakis
be39f5d870
Apply suggestions from code review
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-05-15 09:26:28 -04:00
Niko Matsakis
54e092b984 fix title 2021-05-15 06:07:02 -04:00
Niko Matsakis
2b8ee2043d add RFC: Opinionated cancelation 2021-05-15 05:46:34 -04:00
bors[bot]
9a17f01d1b
Merge #261
261: modify RFC template to use FAQ format r=nikomatsakis a=nikomatsakis



Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
2021-05-15 09:28:54 +00:00
Niko Matsakis
ecf693e481 modify RFC template to use FAQ format 2021-05-15 05:28:02 -04:00
Christopher Biscardi
c17778e358 add links 2020-11-01 12:23:17 -08:00
Christopher Biscardi
5c1ebc22af update on_demand_inputs invalidation 2020-09-13 00:17:39 -07:00
Markus Westerlind
ce6428fbbd Lift the static restriction on the traits 2020-07-23 11:34:20 +02:00
Niko Matsakis
4974d649ec mention the plumbing 2020-07-07 10:07:47 +00:00
Niko Matsakis
da7c8b30db fix mdbook tests 2020-07-07 09:55:04 +00:00
Niko Matsakis
f7071dd137 RFC: remove RFC text about DependencySlot
It's simpler to just store a DatabaseKeyIndex. It may be somewhat
slower, we'll have to measure.  But we can add back in this other
design later if we want.
2020-07-05 20:13:29 +00:00
Niko Matsakis
8ca3ab56b5 update the mdbook documentation, introducing a diagram 2020-07-05 16:45:07 +00:00
Niko Matsakis
0a8c2038b5 RFC: remove link, linkcheck doesn't like it 2020-07-05 10:52:49 +00:00
Niko Matsakis
b1e3003c1e RFC: describe new bounds 2020-07-05 10:52:47 +00:00
Niko Matsakis
0b82d24514 RFC: describe 'static requirement 2020-07-05 10:52:43 +00:00
Niko Matsakis
b59dcc9145 RFC: describe in_db functions 2020-07-05 10:34:15 +00:00
Niko Matsakis
fad97eeb6a remove the DB parameter
This had two unexpected consequences, one unfortunate, one "medium":

* All `salsa::Database` must be `'static`. This falls out from
`Q::DynDb` not having access to any lifetimes, but also the defaulting
rules for `dyn QueryGroup` that make it `dyn QueryGroup + 'static`. We
don't really support generic databases anyway yet so this isn't a big
deal, and we can add workarounds later (ideally via GATs).

* It is now statically impossible to invoke `snapshot` from a query,
and so we don't need to test that it panics. This is because the
signature of `snapshot` returns a `Snapshot<Self>` and that is not
accessible to a `dyn QueryGroup` type. Similarly, invoking
`Runtime::snapshot` directly is not possible becaues it is
crate-private. So I removed the test. This seems ok, but eventually I
would like to expose ways for queries to do parallel
execution (matklad and I had talked about a "speculation" primitive
for enabling that).

* This commit is 99% boilerplate I did with search-and-replace. I also
rolled in a few other changes I might have preferred to factor out,
most notably removing the `GetQueryTable` plumbing trait in favor of
free-methods, but it was awkward to factor them out and get all the
generics right (so much simpler in this version).
2020-07-04 14:17:11 +00:00
Niko Matsakis
4bf46f5f24 RFC: describe new approach to runtime 2020-07-04 14:16:50 +00:00
Niko Matsakis
6e813441cb RFC: update to mention that salsa::requires is removed 2020-07-04 14:16:50 +00:00
Niko Matsakis
cc7bc54409 RFC: adjust because DatabaseKeyIndex are not part of public API 2020-07-04 14:16:50 +00:00
Niko Matsakis
0da53151c5 RFC: update to use index triples 2020-07-04 14:16:14 +00:00
Niko Matsakis
d1347d8854 RFC 6: Dynamic databases
Update book/src/rfcs/RFC0006-Dynamic-Databases.md

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>

Update book/src/rfcs/RFC0001-Query-Group-Traits.md

Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>

Update book/src/rfcs/RFC0006-Dynamic-Databases.md

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>

fix lint warnings on RFC
2020-07-04 14:16:14 +00:00
Niko Matsakis
59ec6482e1 update the template and randomly adapt RFC0001 only 2020-07-04 14:16:14 +00:00
Niko Matsakis
b953732981 add RFC 4, 5 2020-06-27 10:25:20 +00:00
Niko Matsakis
baee86bc25 move the accepted RFCs to the book and describe a new process 2020-06-27 01:46:39 +00:00
Niko Matsakis
ebb3769ad2 document the database macro 2020-06-26 22:21:54 +00:00
Niko Matsakis
4b0c8a6368 move query groups to its own chapter 2020-06-26 22:21:53 +00:00
Matthijs Brobbel
a4d05c8c4b
Update plumbing.md
Fixed a small typo.
2020-06-26 16:40:32 +02:00
Niko Matsakis
1e33157648 fix mdbook tests 2020-06-24 15:12:02 +00:00
Niko Matsakis
6184b1df54 address matklad's points 2020-06-24 13:41:55 +00:00
Niko Matsakis
550c0c3db6 document the code we generate for a query group 2020-06-24 11:13:39 +00:00
Niko Matsakis
4643beee05 integrate mermaid support into the book 2020-06-24 09:53:33 +00:00
Geoff Shannon
294b12f719 Fix doc typos 2020-05-16 13:41:25 -07:00
Vlad-Shcherbina
fecec6bab2 Fix doc typo 2020-04-11 13:43:00 +02:00
Declan Kelly
564fa155d4 Correct mutability in on demand example, fix doc links
Fix query_mut documentation link

Fix more documentation links

More doc links
2019-10-05 18:30:42 -07:00
Niko Matsakis
25b54aa0b3 remove mention of the im crate 2019-09-24 06:51:17 -04:00
Niko Matsakis
8b2219c1e1 fix weird sentence 2019-09-24 06:29:30 -04:00
Niko Matsakis
2e9b418bbb rework book a little bit
- extend some of the empty sections, add a new common pattern
- also, show how to use anchors and include so we can test the sources
  for common patterns
2019-09-24 06:13:51 -04:00
Aleksey Kladov
3616014391
Apply suggestions from code review
Co-Authored-By: Niko Matsakis <niko@alum.mit.edu>
2019-09-24 12:08:13 +03:00
Aleksey Kladov
a798f1d918 Update src/runtime.rs
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
2019-09-22 18:31:38 +03:00