From f3e1670c580a6985262311847b16752df2129b21 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 24 Oct 2026 02:17:02 +0800 Subject: [PATCH] docs: describe synchronous precise read results and compatibility --- crates/core/src/README.md | 2 ++ crates/core/tests/README.md | 2 ++ docs/README.md | 2 ++ docs/runtime/native-calls.md | 2 ++ 4 files changed, 8 insertions(+) diff --git a/crates/core/src/README.md b/crates/core/src/README.md index 2cc2717..7573d04 100644 --- a/crates/core/src/README.md +++ b/crates/core/src/README.md @@ -23,3 +23,5 @@ core 不访问对象私有字段或 Heap;执行器只通过受校验的对象 独立托管调用帧:frame.rs 定义 CoroutineProgress 和私有可追踪帧载荷;eval.rs 提供 new_coroutine/resume_coroutine/cancel_coroutine,暂停帧以托管边保活,恢复时转回执行根。与跨量子只读续算分开,所有权及边界见 docs/runtime/bytecode.md。 eval.rs的LoadGlobal及可恢复只读结果支持ReadDependency;frame.rs携带精确观察,lib.rs重导出只读观察类型,兼容旧reads对象列表。 + +同步call_read_only_precise_with_limits同样返回ReadSet,供宿主精确校验缓存;原call_read_only_with_limits继续返回保守objects列表,预算、结果拥有式引用和失败关闭只读作用域的语义不变。 diff --git a/crates/core/tests/README.md b/crates/core/tests/README.md index e738173..f4b6577 100644 --- a/crates/core/tests/README.md +++ b/crates/core/tests/README.md @@ -21,3 +21,5 @@ execution.rs 的 managed_coroutine 用例覆盖交替恢复不重放写入、累 execution.rs补AwaitGate,覆盖真实Waiting、前缀写入不重放、等待操作数保活及拥有式对象结果;本地仅编译不执行。 execution.rs的named_reads/precise_nested_regions覆盖无关键、缺失遮蔽、内建变化、区域传播、保守遍历及观察不保活;仅编译未本地运行。 + +named_reads同时比较同步精确入口与可恢复调用的观察,验证旧同步入口仍返回相同保守对象列表;本地仅编译。 diff --git a/docs/README.md b/docs/README.md index 42535f7..7ffecac 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,3 +26,5 @@ Await入口:语法见runtime/frontend.md,名称与发码见runtime/compiler.md,等待/恢复与所有权见runtime/bytecode.md,宿主协议见runtime/objects.md。 按名全局依赖、缺失键遮蔽与兼容保守读取见runtime/native-calls.md的精确只读观察章节。 + +同步与可恢复只读调用的精确ReadSet及旧对象列表兼容语义统一见[runtime/native-calls.md](runtime/native-calls.md)。 diff --git a/docs/runtime/native-calls.md b/docs/runtime/native-calls.md index acc159d..0c0aa2f 100644 --- a/docs/runtime/native-calls.md +++ b/docs/runtime/native-calls.md @@ -116,3 +116,5 @@ ContextNativeFunction::implementation() 只借用当前具体 精确只读观察:end_read_only_precise返回ReadSet,兼容objects列表并提供ReadDependency;end_read_tracking_precise返回区域的ReadAccess与相同观察。Object依赖验证对象版本;DictionaryKind只验证存活/字典载荷;Name验证文本键的存在与值身份/表示。缺失名字也被记录,因此后续全局遮蔽内建名会失效;相同值删除/重建后可恢复有效,这是值观察而非“发生过写入”的通知。dict_get_name用于全局/注解/__builtins__名字查询,普通dict_get、dict_items和其他内容读取仍保守依赖整个对象。read_dependency_valid在只读区域内检查时会重记相同观察,使缓存命中仍向外传播依赖。所有对象句柄(包括Name中的Value::Object)均借用,不增加GC根;立即字符串/数字保留比较快照,值不写回业务对象。现有end_read_only/end_read_tracking/details仍返回保守对象列表,不自动替调用方放宽缓存。类型验证字典通过DictionaryKind观察,不把只验证载荷种类误当读取所有条目。 + +同步宿主可调用Vm::call_read_only_precise_with_limits(function, arguments, limits),返回拥有式Value及借用式ReadSet(objects与dependencies)。它与可恢复只读调用提供同样的名字观察,不创建新的调度器;单次调用仍同步执行并受正常硬预算约束,不能等待Pending await。旧call_read_only_with_limits委托同一执行逻辑,只返回ReadSet.objects,兼容原有保守宿主。成功或执行错误均先关闭只读作用域;不提供panic捕获。