Files

2.0 KiB

objects

Endor 核心对象与对象存储包,零外部依赖,不依赖 core。包含 EndorObject、ObjectPayload、Value、ObjectRef、Number、字符串/字典/Cell/函数/异常载荷,以及代码对象与 wordcode 数据定义、编解码和静态验证。提供显式引导的 Object/Type 名义类型,已接入普通源码 class 和继承方法分派,已支持显式 NativeTyped 分配继承和可转移字段存储;显式/类型化Trait和保守效果查询已接入,正式trait语法与完整元类行为仍待实现。

内容 职责
Cargo.toml objects 包元数据和工作区 lint;无依赖
src 对象定义、私有堆、ObjectStore、对象工厂、字节码数据、保守只读调用图分析与共享错误
tests 不依赖 VM 的对象存储、事务失败、回收和共享代码检查

ObjectStore 独立拥有空堆,负责对象分配、代际校验、引用计数、循环回收、属性与内置容器操作;底层 Heap 与句柄字段保持私有。replace_payload 通过公开的受校验事务替换载荷及所有托管边;NativeContext 提供受限原生分配与变更能力。代码对象只保存及验证执行数据,求值循环与调用帧属于 core。共享 VmError 定义在本包,保留现有名称以避免对象操作接口依赖 VM。

新代码可以直接从 objects 引用对象类型;endor_core 继续重导出现有类型,Vm 的对象方法委托给本包,原有宿主入口保持可用。复制句柄不增加引用;独立 ObjectStore 的对象句柄不能交给另一存储或 VM 使用。

设计与所有权见 对象模型、基本对象 和 生命周期。本地不构建或测试,运行检查交给指定远端,见 验证。返回 工作区。