objects
Endor 核心对象与对象存储包,零外部依赖,不依赖 core。包含 EndorObject、ObjectPayload、Value、ObjectRef、Number、字符串/字典/Cell/函数/异常载荷,以及代码对象与 wordcode 数据定义、编解码和静态验证。没有 Python type/元类或语言根类。
| 内容 | 职责 |
|---|---|
| Cargo.toml | objects 包元数据和工作区 lint;无依赖 |
| src | 对象定义、私有堆、ObjectStore、对象工厂、字节码数据与共享错误 |
| tests | 不依赖 VM 的对象存储、事务失败、回收和共享代码检查 |
ObjectStore 独立拥有空堆,负责对象分配、代际校验、引用计数、循环回收、属性与内置容器操作;底层 Heap、句柄字段和可变载荷替换仍为私有实现。代码对象只保存及验证执行数据,求值循环与调用帧属于 core。共享 VmError 定义在本包,保留现有名称以避免对象操作接口依赖 VM。
新代码可以直接从 objects 引用对象类型;endor_core 继续重导出现有类型,Vm 的对象方法委托给本包,原有宿主入口保持可用。复制句柄不增加引用;独立 ObjectStore 的对象句柄不能交给另一存储或 VM 使用。