1.
About salsa
How to use Salsa
2.
Overview
3.
Tutorial: calc language
3.1.
Basic structure
3.2.
Jars and databases
3.3.
Defining the database struct
3.4.
Defining the IR: the various "salsa structs"
3.5.
Defining the parser: memoized functions and inputs
3.6.
Defining the parser: reporting errors
3.7.
Defining the parser: debug impls and testing
3.8.
Defining the checker
3.9.
Defining the interpreter
4.
Reference
4.1.
Algorithm
5.
Common patterns
5.1.
Selection
5.2.
On-demand (Lazy) inputs
6.
Tuning
7.
Cycle handling
7.1.
Recovering via fallback
How Salsa works internally
8.
How Salsa works
9.
Videos
10.
Plumbing
10.1.
Jars and ingredients
10.2.
Databases and runtime
10.3.
Query operations
10.3.1.
maybe changed after
10.3.2.
Fetch
10.3.3.
Derived queries flowchart
10.3.4.
Cycle handling
10.4.
Terminology
10.4.1.
Backdate
10.4.2.
Changed at
10.4.3.
Dependency
10.4.4.
Derived query
10.4.5.
Durability
10.4.6.
Input query
10.4.7.
Ingredient
10.4.8.
LRU
10.4.9.
Memo
10.4.10.
Query
10.4.11.
Query function
10.4.12.
Revision
10.4.13.
Salsa item
10.4.14.
Salsa struct
10.4.15.
Untracked dependency
10.4.16.
Verified
Salsa RFCs
11.
RFCs
11.1.
Template
11.2.
RFC 0001: Query group traits
11.3.
RFC 0002: Intern queries
11.4.
RFC 0003: Query dependencies
11.5.
RFC 0004: LRU
11.6.
RFC 0005: Durability
11.7.
RFC 0006: Dynamic database
11.8.
RFC 0007: Opinionated cancelation
11.9.
RFC 0008: Remove garbage collection
11.10.
RFC 0009: Cycle recovery
11.11.
RFC 0010: Slot no more
Appendices
12.
Meta: about the book itself
Light (default)
Rust
Coal
Navy
Ayu
Salsa
Defining the interpreter