feat(sidecar): meta 增写 STRUCT/VTABLE,REPL 布局恢复改读 meta

- WriteModuleFuncMeta 更名 WriteModuleMeta:追加 STRUCT <name> FIELDS n PACKED 0|1
  (opaque → STRUCT <name> OPAQUE)与 VTABLE <class> SLOTS n;数据源改为
  Module.NamedTypeHead / GlobalHead,不再有任何 IR 文本反推
- VpiReader REPL 布局改读 {sha1}.meta:新增 _meta_atoi / _repl_meta_scan_layout
  按前缀精确匹配解析 STRUCT/VTABLE 行
- 删除旧 .stub.ll 文本解析辅助 _repl_stub_take_name / _repl_stub_body_count
  及其 scratch 缓冲 ReplStubNameBuf / _REPL_STUB_NAME_CAP

去 IR 化步骤③;未编译验证。
This commit is contained in:
TermiNexus committed 2026-10-03 08:18:15 +08:00
1 parent 78d3941f7d
commit 35f2070d3b
4 files changed
+123 -169

No files matched your search

+2 -2
View File
@@ -1140,8 +1140,8 @@ def RunPhase1(mb: memhub.MemBuddy*, includes_dir: str, temp_dir: str,
stdlib.free(text_path_p1)
stdlib.free(text_buf)
# save {sha1}.meta(结构化 sidecar:函数定义清单,替代从 text.ll 反推 declare-vs-define)
StubMergerIR.WriteModuleFuncMeta(tr.Module, temp_dir, dir_len_p1, sha1)
# save {sha1}.meta(结构化 sidecar:函数清单/结构体布局/虚表,替代从 IR 文本反推)
StubMergerIR.WriteModuleMeta(tr.Module, temp_dir, dir_len_p1, sha1)
# 计时点 3:dump(stub+text)完成;输出单文件三段耗时
t_f3: uint64 = w32.win32base.GetTickCount64()
+4 -4
View File
@@ -1085,8 +1085,8 @@ def RunMultiFileProject(mb: memhub.MemBuddy*,
stdlib.free(text_path_a)
stdlib.free(text_buf_a)
# save {sha1}.meta(结构化 sidecar:函数定义清单)
StubMergerIR.WriteModuleFuncMeta(tr_a.Module, temp_dir, td_len_pa, ent.Sha1)
# save {sha1}.meta(结构化 sidecar:函数清单/结构体布局/虚表)
StubMergerIR.WriteModuleMeta(tr_a.Module, temp_dir, td_len_pa, ent.Sha1)
# save dependencies (_imported_modules) for Phase B (切片路径)
deps_path_a: str = StubMergerCollect._sliced_path(temp_dir, td_len_pa, ent.Sha1, "deps.txt")
@@ -1476,8 +1476,8 @@ def RunMultiFileProject(mb: memhub.MemBuddy*,
itf.close()
stdlib.free(inc_text_path)
stdlib.free(inc_text_buf)
# save {sha1}.meta(结构化 sidecar:函数定义清单)
StubMergerIR.WriteModuleFuncMeta(tr_mi.Module, temp_dir, td_len_mi, inc_sha1_mi)
# save {sha1}.meta(结构化 sidecar:函数清单/结构体布局/虚表)
StubMergerIR.WriteModuleMeta(tr_mi.Module, temp_dir, td_len_mi, inc_sha1_mi)
# 重试 BuildCombinedIR
inc_combined_len_mi = StubMergerBuild.BuildCombinedIR(temp_dir, inc_sha1_mi, inc_combined_mi, COMBINED_IR_SIZE)
# OOM 清理:stub/text 已写盘,回收本 includes 文件翻译瞬时数据