1.
关于 salsa
如何使用 Salsa
2.
概述
3.
教程:calc 语言
3.1.
基础结构
3.2.
定义数据库结构体
3.3.
定义 IR:各种 Salsa 结构体
3.4.
定义解析器:记忆化函数与输入
3.5.
定义解析器:报告错误
3.6.
定义解析器:Debug 实现与测试
3.7.
定义 checker
3.8.
定义 interpreter
4.
参考
4.1.
持久性(Durability)
4.2.
算法
5.
常见模式
5.1.
按需(惰性)输入
6.
调优
7.
循环处理
Salsa 内部如何工作
8.
Salsa 如何工作
9.
视频
10.
底层机制(Plumbing)
10.1.
数据库与运行时
10.2.
跟踪/驻留结构体上的 'db 生命周期
10.3.
跟踪结构体
10.4.
查询操作
10.4.1.
maybe changed after
10.4.2.
Fetch
10.4.3.
派生查询流程图
10.4.4.
循环处理
10.5.
术语
10.5.1.
Backdate
10.5.2.
Changed at
10.5.3.
Dependency
10.5.4.
Derived query
10.5.5.
Durability
10.5.6.
Input query
10.5.7.
Ingredient
10.5.8.
LRU
10.5.9.
Memo
10.5.10.
Query
10.5.11.
Query function
10.5.12.
Revision
10.5.13.
Salsa item
10.5.14.
Salsa struct
10.5.15.
Untracked dependency
10.5.16.
Verified
附录
11.
元信息:关于这本书
Light
Rust
Coal
Navy
Ayu
Salsa(中文)
底层机制(Plumbing)
这一章介绍 Salsa 生成的代码及其“内部工作方式”。 我们把这部分称为“底层机制”(plumbing)。
概览
管道部分分为以下章节:
数据库与运行时
:介绍运行期使用的数据结构,包括如何协调 worker、触发取消、跟踪活跃函数及其累积依赖等。
查询操作
:介绍函数配料上的主要操作。虽然这部分文字最初针对更早版本的 Salsa 编写,但核心逻辑相同。
maybe changed after
:判断某个 tracked 函数的 memoized 值是否已过期。
fetch
:计算最新值。
派生查询流程图
:以流程图形式展示逻辑。
循环处理
:说明出现循环时会发生什么。
术语
:解释本章反复出现的术语。