PPysolate SpineREAD THE CODE · UNDERSTAND THE SYSTEM
课程与章节
IMPLEMENTATION / 02

调用与状态图

区分 Guest 控制流、Host 任务与 Future。

本章目录

Guest 与 Host 的 prepare/resolve 流程

图:一次 PLM 调用的逻辑关系,不是耗时图。左列是 Guest 的 Python 控制流;右列是本轮工具任务与 Future。底部两条箭头分别是 Resolve 请求与结果/错误交付,不是再次执行工具。工具注册表属于 Runner,图中的 Host 边界只表示本轮任务。

从图跳回实现

图没有省略成“自动安全”的部分

  • 只有 Host opt-in 的稳定只读工具能提前启动;不是看名字像 read 就允许。
  • 依赖和分支限制由 AST pass 保留;图不表示允许跨任意 Python 语句移动。
  • 参数在原调用位置再次求值;失配不是领取旧结果的理由。
  • Prefix 只是把 Prepare 的机会延伸到源码接收期间;领取逻辑 仍复用同一个 Future。
  • Prepared full-copy 与 Linux COW 只改变新 Guest 的初始化方式,不共享本轮 Future,也不改变图中的控制流。