Skip to content

feat(renamer): shadow 表 rename 后 rebind——身份键重定位 raw 面 - #113

Merged
luiox merged 1 commit into
mainfrom
feat/shadow-rebind
Oct 30, 2026
Merged

luiox merged 1 commit into
mainfrom
feat/shadow-rebind

Conversation

@luiox

@luiox luiox commented Oct 30, 2026

Copy link
Copy Markdown
Owner

内容

A5:rebindShadowRawNames 原语——rename 落盘后按身份键重定位既有条目的 raw 面。显示身份跨 rename 连续(IDA 语义):shadow 名与 token8 一律不变,重命名不改别名、不换号。

  • 规格序应用:class 规格 rawName==oldName → newName,以其为 owner 的成员条目 owner 连带级联;成员规格 (owner, desc, rawName) 精确匹配改 raw(class 规格建议先于成员规格,成员规格 owner 填新内部名);
  • 失配容忍:未命中规格原样跳过(rename 面与表登记面允许失配,过期残留交 pruneShadowAliases 容错——存在性口径同源);
  • 撞键先到者优先:类撞键 / 成员撞键 / 级联撞键整规格跳过;成员身份与表契约同口径(kind 无关:同 (owner, raw, desc) 跨 field/method 不能共存,撞键预检含跨 kind,杜绝重建期 add 静默失败丢条目);
  • 实现形态:增量索引 O(entries+specs) 无二次扫描,collect→clear→re-add 重建(prune 同款已验证模式);sidecar 重落盘走既有 toMapping。

测试

新增 8 组:类改名级联与身份连续、成员精确身份匹配(desc 参与)、未知规格 no-op、三类撞键先到者优先、级联撞键整规格跳过、契约序(class 先于成员)、field 改名 + token 随行 + toMapping 往返、跨 kind 撞键跳过不丢条目。基于 72cc5d7(#111 后)rebase,重建门(rm exe + xmake -r)全量 1908 通过 / 0 失败(3 posix-skip 为基线即有)。

A5 落地:rebindShadowRawNames 原语,rename 落盘后按身份键重定位既有
条目的 raw 面。显示身份跨 rename 连续(IDA 语义):shadow 名与 token8
一律不变,重命名不改别名、不换号。

- 规格序应用:class 规格 rawName==oldName → rawName=newName,以其为
  owner 的成员条目 owner 连带级联;成员规格 (owner, desc, rawName)
  精确匹配 → rawName=newName(class 规格建议先于成员规格,成员规格
  owner 填新内部名);
- 失配容忍:未命中规格原样跳过(rename 面与表登记面允许失配,过期
  残留交 pruneShadowAliases 容错——存在性口径同源);
- 撞键先到者优先:类撞键 / 成员撞键 / 级联撞键整规格跳过;成员身份
  与表契约同口径(kind 无关:同 (owner, raw, desc) 跨 field/method
  不能共存,撞键预检含跨 kind);
- 实现形态:增量索引 O(entries+specs) 无二次扫描,collect→clear→
  re-add 重建(prune 同款已验证模式);sidecar 重落盘走既有 toMapping。
@luiox
luiox force-pushed the feat/shadow-rebind branch from 0b9a5d2 to 0f1f2de Compare October 30, 2026 04:32
@luiox
luiox merged commit 586e401 into main Oct 30, 2026
2 checks passed
@luiox
luiox deleted the feat/shadow-rebind branch October 30, 2026 04:43
luiox added a commit that referenced this pull request Oct 30, 2026
…跟进 (#114)

- libgarena 0.0.5:多 chunk reset 修复 + 溢出诊断统一(跨 0.0.4 契约修正批)
- libjdk_finder 0.1.1:厂商嵌套布局漏扫修复 + vcvarsall UTF-8 转码
- 两版本已在 mj2x 栈(f73a7c0)实际消费验证
- 嵌套 libca 钉定复核:0.0.5/0.1.1 词条嵌套依赖面不变(libca 同超集
  [+zlib]),requireconfs 归并 LUIOX_LIBCA_VERSION=0.0.16 无需变动

门:1911 ran = 1908 pass + 3 skip + 0 失败(与 #113 后 main 基线一致)
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