Objects 源码导航
公开导出集中在 lib.rs;本目录只负责对象与执行数据,不包含 VM 调度或取指分派。全局契约见 运行时文档。
| 文件 | 职责 |
|---|---|
| lib.rs | 包边界、对象类型/ObjectStore 公开导出与独立存储 rustdoc 示例 |
| object.rs | Value、CompareOp、ObjectPayload、ObjectHeader、EndorObject、Record、NativeFunction |
| types.rs | 托管名义类型、显式 Object/Type 引导、继承查询、受管方法表/接收者绑定、类字段与原生构造委托 |
| native.rs | NativeContext、上下文原生函数、作用域语言函数工厂、根与非递归委托调用 |
| changes.rs | 合并变更批次、变更键与有界通知额度 |
| number.rs | Integer/Decimal/Rational/BinaryFloat/Complex 的无损表示和装箱载荷 |
| builtins.rs | String、Dict、Cell、Function、BaseException 载荷与 trace 边 |
| heap.rs | 私有 Heap、不可伪造 ObjectRef、稳定 Box、引用事务、迭代释放、循环回收、只读变更屏障/读取跟踪及私有边界测试 |
| store.rs | ObjectStore、空堆创建、对象操作、retain/release 和回收入口 |
| store_builtins.rs | 载荷校验、代码/函数工厂、Dict/Cell 操作及键语义 |
| instruction.rs | Opcode、Instruction、wordcode 编解码、MakeFunction/比较参数与跳转读取接口 |
| code.rs | CodeLayout、EndorCode/EndorCodeObject、共享不可变代码和操作数/控制流/栈验证 |
| error.rs | 对象、代码与执行共用的 VmError,避免反向依赖 core |
对象操作变更同步 对象模型,内置载荷同步 基本对象。新增操作码需要同时修改本包 instruction.rs/code.rs 和 core 的 eval.rs 分派,见 字节码 VM。
Heap、ObjectRef 字段、对象头计数和可变容器字段不向包外开放;公开代码读取接口不允许改写已登记的常量和托管边。检查入口见 tests。返回 objects。