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

Salsa

Defining the checker