Files
ViperC/App
TermiNexus ec9e950185 fix(gen): 全局初始化器引用跨模块 vtable 时补 external 声明(④-a)
模块级对象全局的 storage 初始化器以符号名写入依赖类 vtable
(i8* @<dep_sha1>.<Cls>.vtable),此前不建 GlobalVariable ⇒ 单模块
OUTPUT_FULL 缺该符号声明,只能靠 BuildCombinedIR 合并依赖 stub 补入。

现于写初始化器前:跨模块(ModuleSha1 != 当前模块)且模块内无该全局时,
new_global_variable(..., Ptr(i8)) + module_add_global 补 external 声明
(对齐 CallGenLeafKit._make_vtable_ref_i8)。仅跨模块补,本模块类由
_generate_vtable 产出定义,避免同模块重复定义。

去 IR 化步骤④-a(生产者自足,FULL IR 自足化前置);未编译验证。
2026-10-03 08:39:13 +08:00
..