这是一份操作顺序,不是逐字稿,也不是已确认的面试议程。目标是你能解释自己的实现,并判断 AI 给出的补丁。运行前进入独立仓库根目录。
先记住三个入口
make demo # 真实 Wasm CPython + Host lookup,结果 47
make explain # 同例 PLM,显示 Guest 实际转换
make check # 现有真实 Guest 测试、文档例子、AST 单测和 go vet
可选背景:make prefix 演示文件分段输入;make prepared 演示私有内存全量复制。后者不是 COW,不占主要讲解时间。
不要在演示前自动更新工具链或下载新 artifact。当前 dist/spine.wasm 与 Guest 源码配套;若缺失,按 构建说明 解决,不能拿本机 Python 替代。make check 不会帮你部署、发布、下载 CPython 或测性能。
约十分钟讲解的顺序
先自己讲,不需要同时打开所有文件:
- 问题与范围:为什么让 Python 保留控制流,让 Host 持有外部工具?这份实现只保留了什么?
- 跑一个结果:从两行 lookup 到带运费的 order。明确输入、工具返回值与 Python 输出。
- 沿工具往返读:
bootstrap.tool → C python_call → bridge.hostCall,然后说明错误怎样回到原 Python 调用处。 - 看一次转换:执行
make explain;指出 prepare 和 resolve 的位置,而不是只念术语。 - 读最小状态:
future.go的 request/response/done/cancel,说明谁创建、谁消费、谁收尾。 - 说明限制:只有显式允许的稳定只读快照能提前;未知语法正常执行;没有失败自动重试。
- 按问题展开:对方关心流式输入才打开 prefix;对方问基线与隔离才讲 full-copy。
这只是练习的时间安排,不把论文性能数字或原系统全部能力带进来。不要把文件分段回放说成已接入 LLM provider,也不要把 full-copy 说成共享物理页。
五个边界例子 是备用材料,不要求逐个演示。对方问到哪个点,再开对应短文件。
新需求通常在哪一层
- 新增业务工具、改变固定演示数据:先看 CLI 的
demoTools,不是 C 或 AST pass。 - 调整 Python 结果/错误的呈现:先看 bootstrap 的 execute/decode 和 Go Output。
- 改提前位置或支持语法:看
guest/plm.py,先明确不会改变哪些依赖/控制流行为。 - 改流式输入来源:看
RunPrefix的 channel 接口;prefix 是否可提前解析是另一层问题。 - 改结果领取、取消、失配行为:看
future.go;不要复制第二套 Future。 - 改 Guest 初始化策略:看
prepared.go,一般与工具业务或 PLM 无关。
这是一张定位图,不是“任何新需求都只改一个文件”的承诺。Guest C/bootstrap/pass/prefix 有改动时必须重建实际 Wasm。
两个练习题:只留题目,不提前实现
练习 A:更有用的 Python 错误定位
需求草案:目前只有异常类型和消息,希望定位用户源码出错的位置。
你先决定:
- 哪些信息是必需的:用户行号、完整 Guest traceback,还是其他形式?
- 是否保留已有 error 文本?是否需要改变 Output?
- 应不应该显示 bootstrap 内部 frame?
- 被用户
try/except捕获的错误,要不要额外输出?
练习时先写一个失败例子和期望输出,再给 AI 修改任务。现阶段没有加入 traceback 功能,也没有替你选协议。
练习 B:Prefix 支持一种更丰富的参数形式
需求草案:当前 prefix 只识别一层输入下标,希望讨论 inputs["order"]["item"]。
你先决定:
- 支持几层、哪种索引?是否接受任意表达式?
- 缺失 key 或类型不符时,错误应该在哪里出现?
- 半条语句到达时应该做什么?
- 原有 whole-program PLM 和 prefix 是否需要完全相同的支持范围?
先预测要改哪里、哪些函数不该改。现阶段没有实现这项扩展。
协作规则
每题按这个顺序:你说需求与期望 → 你猜改动位置 → AI 查调用链并建议小补丁 → 确认行为 → 实现/验证 → 你解释 diff。
如果你解释不清某个条件,就记录这个缺口再回到对应章节;不要直接让 AI 把条件删掉。只要当前实现能完成这个题,就不扩成新的通用协议、调度器或证明框架。
本轮自动收尾完成了什么
- 对照 core 路径检查责任分布,没有因此重写 runtime、扩大优化语法或加入默认证据管线。
- 修复原有测试在单独筛选子用例时误用整组工具计数的问题。
- 将演示工具表提成小函数,五个文档例子直接复用它,不复制另一份假工具数据。
- 明确显示未转换/未启用状态,减少演示歧义;核心执行语义不变。
- 保留当前范围:快照只读工具、有限语法、配合 context 的可信工具、固定 Guest 的 full-copy。没有宣称全面安全审计或通用 Wasm checkpoint。
剩下不能由 AI 代替的是:你亲自讲一遍、选择练习中的行为、解释实现补丁。后续已按用户要求部署 Astro 文档站;练习题仍未提前实现。站点禁止索引,但不是需要登录才能访问的私有站。