1.5 KiB
1.5 KiB
Core VM 源码导航
本目录只实现 VM、内部执行帧和 wordcode 求值循环。核心对象、对象堆、内置载荷、指令与代码对象数据属于独立 objects/src。
| 文件 | 职责 |
|---|---|
| lib.rs | VM 类型导出、objects 类型兼容重导出、宿主调用与字节码 rustdoc 示例 |
| vm.rs | Vm 拥有 ObjectStore 与错误位置记录;对象操作显式委托给 objects |
| frame.rs | EndorFrame、栈条目、执行位置元数据、ExecutionLimits |
| eval.rs | execute/call、参数绑定、帧切换、取指分派、MakeFunction、结果根转移与失败清理 |
常见修改入口
| 要修改什么 | 涉及位置 | 同步说明 |
|---|---|---|
| 对象表示、分配、引用或内置对象行为 | objects/src;兼容方法需要时同步 vm.rs 委托 | 对象模型、基本对象 |
| 新操作码或代码布局 | objects 的 instruction.rs/code.rs、core 的 eval.rs | 字节码 VM、execution 检查 |
| 调用、闭包或返回值根管理 | frame.rs、eval.rs、objects 的函数 trace | 生命周期 |
| 新 VM 公开 API | vm.rs/eval.rs 与 lib.rs 导出 | 所属主题、示例、tests 导航 |
core 不访问对象私有字段或 Heap;执行器只通过受校验的对象存储操作维护帧根。返回 core。