Skip to content

feat(renamer): shadow token 中段裁定——段外花括号 fail-loud - #111

Merged
luiox merged 4 commits into
mainfrom
feat/shadow-midstring-guard
Oct 30, 2026
Merged

luiox merged 4 commits into
mainfrom
feat/shadow-midstring-guard

Conversation

@luiox

@luiox luiox commented Oct 30, 2026

Copy link
Copy Markdown
Owner

内容

堆叠于 #110。规范 §4:${ 出现在类型名/操作数中段(非段首)不展开、不静默——二进制名文法不含花括号,未标记的引用形状混入裸名属调用方笔误。

  • Descriptor 槽:L…; 类型段内容含花括号(且非段首 ${)→ malformed-handle,消息带 $${ 转义指引;
  • JasmBody 槽:裸引用部按 . 分段后逐段裁定——段首 ${ 句柄路径不受影响,段外花括号 → malformed-handle;
  • $${` 显式转义:两槽均保留字面(调用方自证字面意图);
  • name 槽:维持整串二选一,不引入中段扫描——Raw 恒等回显(verifyRaw=false 直通位)或核表 raw-not-found 响亮,零漂移不变。

测试

新增 3 组:Descriptor 中段/孤立花括号/转义保留、name 槽零漂移与核表响亮、JasmBody 中段与转义。shadow token 42 组全绿;全仓 1895 通过(3 posix-skip)。

@luiox
luiox force-pushed the feat/shadow-descriptor-slot branch from 8d0f72a to 4d7dcc6 Compare October 30, 2026 01:54
luiox added 3 commits October 30, 2026 09:59
§4 落地:${ 出现在类型名/操作数中段(非段首)不展开、不静默——二进制
名文法不含花括号,未标记的引用形状混入裸名属调用方笔误。Descriptor 槽
类型段与 JasmBody 裸引用部(含 owner/name 分段后逐段裁定,段首 ${
句柄路径不受影响)→ malformed-handle 带 $$ 转义指引;$${ 显式转义
两槽均保留字面。name 槽维持整串二选一不引入中段扫描:Raw 恒等回显
(verifyRaw=false 直通位)或核表 raw-not-found 响亮,零漂移不变。
4d7dcc6 提交信息声称 0.3.3 接线,但根 xmake.lua 的 add_requires 版本钉
未随之升级,仍解析 0.3.2:孤立代理反汇编回归 3 例在 main CI 与本地全量
里失败。补钉后 delete-then-rebuild 重建门全量 1903 例 0 失败。
矩阵钉住中段 guard 与合法嵌套形态的边界:raw owner + 嵌套成员句柄
(方法/字段 × 带/不带描述符)、句柄 owner 复合、描述符多类型段/数组段
内嵌句柄、shadow 显示复合名零漂移直通——全部正常展开或直通。

owner 段内含 '.' 的复合名(显示形 owner + 嵌套句柄):JasmBody 槽契约
OWNER = 裸内部名('/' 分包),按首个 '.' 分段后嵌套句柄落于 name 段
中段,中段 guard fail-loud;即使改在 .${ 边界分段,dotted owner 与
表内句柄 owner 也不自洽,同为响亮报错。钉住现行语义(消息带 $$ 转义
指引),不改 guard 顺序。
@luiox
luiox force-pushed the feat/shadow-midstring-guard branch from 5a2d9d5 to d0083df Compare October 30, 2026 02:52
@luiox

luiox commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

rebase + 两项收尾(原 5a2d9d5 → d0083df,重放在 4d7dcc6 之上):

  1. fix(build):libjhasm 版本钉 0.3.2→0.3.3。4d7dcc6 提交信息声称 0.3.3 接线但根 xmake.lua 的 add_requires 未升级——main CI 现因此红(孤立代理反汇编 3 例),本 PR 补钉顺带修复 main。
  2. test(renamer):JasmBody 复合操作数矩阵 + owner 内点形状钉扎。曾疑中段 guard 于 nested-handle split 前误拦 owner.${...} 形——实测矩阵证明:owner 为契约内裸内部名时,a/b/Alpha.${成员句柄} 全变体(方法/字段 × 带/不带描述符)正常展开;owner 段内含 '.'(显示形 owner)不在槽契约内,且即使改在 .${ 边界分段也必与表内 owner 不自洽,同为响亮报错——故钉住现行 fail-loud 语义,不改 guard 顺序。

本地 delete-then-rebuild 重建门全量 1903 例 0 失败(main 基线 1898 + 孤立代理 3 例随 0.3.3 转绿 + 新钉扎 2 例)。

@luiox
luiox changed the base branch from feat/shadow-descriptor-slot to main October 30, 2026 02:55
@luiox luiox closed this Oct 30, 2026
@luiox luiox reopened this Oct 30, 2026
libjhasm 0.3.3(e4fb91f)自带内联 libjbc 定义最高到 0.4.22(其自身
钉定版),包沙箱按内联定义解析后端依赖;顶层 0.4.23 被合并进沙箱需求
后在内联定义中查无版本映射,xmake 以版本号作 git ref 直取 libjbc 仓
——远端无该 ref,Configure 期确定性失败(双平台)。回落 0.4.22 并对
libjhasm.libjbc 嵌套 dep 加显式 requireconf 钉定,保持全消费图单实例。
0.4.23 为上游仓库清理/测试收编批,消费面无功能差异。

清空本地全局包库 libjbc/libjhasm 强制从源解析(与 CI 干净机同路径)
两包 install ok;delete-then-rebuild 重建门全量 1903 例 0 失败。
@luiox

luiox commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

补:上条 push 后 CI 双平台确定性挂在 Configure(install libjhasm 0.3.3 .. failed / clone libjbc.git 0.4.23 .. Remote branch 0.4.23 not found)。根因:libjhasm 0.3.3(e4fb91f)自带内联 libjbc 定义最高到 0.4.22(其自身钉定版),顶层 libjbc 0.4.23 被合并进包沙箱需求后在内联定义查无映射,版本号被当作 git ref 直取 → 远端无此 ref。修复:libjbc 顶层回落 0.4.22 + libjhasm.libjbc 嵌套 dep 显式 requireconf(e8cfead)。0.4.23 为上游仓库清理/测试收编批,消费面无功能差异;libjhasm 侧补内联词条后可再上移(后续批)。本地清空全局包库 libjbc/libjhasm 强制从源解析(CI 干净机同路径)两包 install ok,重建门全量 1903 例 0 失败。

@luiox
luiox merged commit 72cc5d7 into main Oct 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant