Commit Graph

  • ec45dd0195 debug(funcattrs): 打印 _append_str max_len 实际值与写入后 strlen,定位 attrs 变空根因 TermiNexus 2026-08-26 21:59:09 +08:00
  • f27a32b9f4 debug(funcattrs): 诊断加当前文件名,区分 VKernel/Scene3D 等模块编译 TermiNexus 2026-08-26 21:52:26 +08:00
  • e9a60273a7 debug(funcattrs): 第二轮诊断——dump decorator AST/args/kwargs/模块SHA1,确认第三个属性参数去向 TermiNexus 2026-08-26 21:32:29 +08:00
  • e60be41ad8 debug(funcattrs): 添加 @c.Attribute 属性提取链运行时诊断,定位 stackrealign 未进 IR TermiNexus 2026-08-26 20:35:09 +08:00
  • 2165c171e7 feat(funcattrs): 支持 stackrealign 函数属性 TermiNexus 2026-08-26 20:18:01 +08:00
  • 9f19673072 fix(classgen): 方法预扫描补 pre_scan_scope_decls,修复 global 名被当局部 TermiNexus 2026-08-26 19:30:31 +08:00
  • 53c72ff57a fix(callgen): 包子模块限定调用支持祖先包导入判定,杜绝同名函数劫持 TermiNexus 2026-08-26 18:56:37 +08:00
  • 23ef8c94fa fix(exprattr): 包子模块属性访问支持全局注册表回退+裸名回退+数组退化 TermiNexus 2026-08-26 18:51:13 +08:00
  • 50a4772a7d fix(gen): 模块限定构造优先于裸名可见性分支,根治 ctor 归属内核同名类 TermiNexus 2026-08-26 17:39:25 +08:00
  • 0a28df0864 fix(gen): 模块限定构造按模块名解析 SHA1,修复 ctor 归属内核同名类 TermiNexus 2026-08-26 17:29:48 +08:00
  • 9b56d1d75c fix(gen): Phase B+ 与链接跳过 App 源文件,修复链接 duplicate symbol TermiNexus 2026-08-26 17:23:20 +08:00
  • c656cba393 fix(gen): App 短模块名键保留 + find_struct sha1 字面量精确匹配,修复同名类归属错乱 TermiNexus 2026-08-26 17:19:23 +08:00
  • 00606057c4 fix(gen): 模块别名解析优先别名还原,修复 process 后缀误命中内核模块 TermiNexus 2026-08-26 16:25:37 +08:00
  • f2bfe82834 fix(gen): Gargantua 编译修复——循环 alloca 入入口块 + 跨模块 CDefine 拼路径/门控 TermiNexus 2026-08-26 16:14:05 +08:00
  • bd3705d68b feat(tpv): --build-dir 命令行覆盖 project.vpj 的 build_dir TermiNexus 2026-08-25 18:07:55 +08:00
  • decf74b946 fix(callgencall): 根治——跨模块 declare 创建后按形参类型 coerce 实参 TermiNexus 2026-08-25 17:53:47 +08:00
  • a9d71714b3 fix(callgenmixin): 字面量 0 改 t.CSizeT(0)——修复 i32 实参与 i64 形参不一致 TermiNexus 2026-08-25 17:51:21 +08:00
  • 8cc6996577 feat(callgenctor): callee 入口 can 无条件打印,区分 ABI 错位 vs 栈槽复用 TermiNexus 2026-08-25 17:39:21 +08:00
  • b3546b05a5 feat(callgenmixin): len/调用前/callee 三级 can 断点,定位 4 字节错位 TermiNexus 2026-08-25 17:29:33 +08:00
  • d7ed91e3e5 fix(callgenbase): _ensure_method_declare 定义侧参数宽度优先,根治字面量实参固化 i32 TermiNexus 2026-08-25 17:01:31 +08:00
  • 4d14eeff67 fix(vpireader): declare 参数注解改字符串解析优先,修复 t.CSizeT→i32 TermiNexus 2026-08-25 16:43:43 +08:00
  • 936aa14041 feat(tpv): Phase B 单文件计时——llc 已提交日志显示 merge/write/task 三步耗时 - 用 w32.win32base.GetTickCount64() 在 Phase B 循环内对每个文件测量 BuildCombinedIR(merge)、write_ir_to_file(write)、init_llc_task(task) 三步耗时 - 日志格式: [x/81] llc 已提交: <path> (merge=N ms, write=N ms, task=N ms, total=N ms) TermiNexus 2026-08-23 16:07:37 +08:00
  • 347998664e fix(tpv): phase2command 模式 Phase C 不再因 .obj 缺失中止——链接命令正确写入 bat - 根因:phase2command 模式下 llc 未执行(命令写入 bat),Phase C 的'可达模块 .obj 存在性检查'对所有实现模块触发 VLogger.error→sys.exit(1),进程在调用 link_objs_to_exe 之前终止,clang 链接命令永远写不进 bat - 修复:Phase C 可达收集在 _phase2_cmd_path 非空时跳过缺失报错,并把可达 includes .obj 路径照常加入 final_obj_paths(bat 手工执行后即存在),保证链接命令完整 - 附带:--run 在 phase2command 模式下跳过(exe 尚未链接,多文件+单文件两处);BuildPipeline._phase2_write_cmd 补 global _phase2_bat_init,避免每次调用重复写 header TermiNexus 2026-08-23 15:52:15 +08:00
  • 146b9a9652 fix(tpv): 兄弟 Mixin 兜底支持跨模块——修复自身 text.ll 永久 pending 死锁 - ClassGenVTable._mangle_name 定义在 FuncGenBase(跨模块 Mixin,调用类不继承它),兄弟 Mixin 兜底只在本地 IR 找 define 未命中 → ret_anc_sha1 停在调用类自身 sha1 → _dep_text_ll_exists(自身) 恒 0(Phase A 翻译中自身 text.ll 未生成)→ _deps_pending=1 死锁,Phase A 永不收敛 - 修复:兜底遍历已注册 struct 时增加跨模块查找(get_struct_sha1 + _LookupMethodRetTyFromTextLL 查该模块 text.ll),命中即锁定定义类(ret_anc_sha1/ret_anc_name/返回类型),跳过 text.ll/vpi/pending 重查段,按 {定义类sha1}.{定义类}.{方法} 构造调用名 TermiNexus 2026-08-23 14:50:48 +08:00
  • 27f2a53c15 diagnose(tpv): Phase A pending 置位点全量 [DEPDBG] 诊断 + 别名解析修复 - 9 处 _deps_pending 置位点加 [DEPDBG] printf(CallGenCall×4/CallGenMixin/CallGenDispatch×2/CallGenProp/ExprGenName),一次构建即可定位 ClassGenVTable 永久 pending 的具体调用点 - StubMergerStore 新增 LookupSha1ByAlias:经 from_imports 别名映射(import X as Y → Y:X)解析模块 SHA1 - LoadDepVpiIntoModule 与 Phase A 依赖探针接入别名解析,HT 等改名别名不再误报未解析 TermiNexus 2026-08-23 14:21:44 +08:00
  • 6cd8adc54c refactor(tpv): 简化 BuildTopoSortedIndices 队列循环为 for range - StubMergerTopo.vp 中 while q_head < q_tail + 手动 q_head += 1 改为 for q_head in range(q_tail),逻辑等价、消除冗余变量 TermiNexus 2026-08-23 14:03:27 +08:00
  • 60afcf1168 diagnose(tpv): Phase A 依赖探针别名解析修复 + ClassGenDef/MatchGenMixin 崩溃定位诊断 TermiNexus 2026-08-23 13:39:20 +08:00
  • 0ffe99e722 feat(tpv): Phase A 依赖未就绪诊断补全——列出缺失 text.ll 的直接依赖 TermiNexus 2026-08-23 12:54:21 +08:00
  • 2e6c37294d fix(tpv): 修复 vpi CDefine 名缓存 list.get 被误分派为 HashTable.get 的 ASan 崩溃 TermiNexus 2026-08-23 12:38:25 +08:00
  • a12dcafed2 fix(tpv): 泛型类型参数 SHA1 规范化 + 自举链接修复 TermiNexus 2026-08-23 12:00:04 +08:00
  • a6e28c71f5 将部分 while 简化为 for TermiNexus 2026-08-23 00:21:17 +08:00
  • ec2feea15b 尽可能修补 Gen 的导入 TermiNexus 2026-08-22 10:53:26 +08:00
  • 748eda9c69 修正 Stub 的 define 导入 TermiNexus 2026-08-22 10:36:05 +08:00
  • f4fee79d4d fix(tpv): ClassGenGeneric import 路径修正(f8bca62 漏改)——lib.Stub.StubMergerStore → lib.Stub.StubMerger.StubMergerStore;修复跨模块引用 fallback 当前模块 sha1 导致的 undefined symbol LookupIncludesDeps TermiNexus 2026-08-22 03:38:59 +08:00
  • 24dfe6ea3b 修正 main 的 import TermiNexus 2026-08-22 02:36:14 +08:00
  • 01b45c0630 修正了 import 路径,修正了部分代码谬误 TermiNexus 2026-08-22 02:29:08 +08:00
  • f8bca62eb0 修正了 import 路径,除 Gen TermiNexus 2026-08-22 02:18:15 +08:00
  • d0736b4978 修正了目录 TermiNexus 2026-08-22 02:07:49 +08:00
  • e18609e184 feat(tpv): 支持 coro.Coroutine = c.Addr(task()) 就地解读句柄赋值 TermiNexus 2026-08-22 01:55:54 +08:00
  • 609635c73e fix(tpv): 帧池访问改 Value 视图 + ConstNull 补 name 参数 TermiNexus 2026-08-22 01:25:12 +08:00
  • 82a86761b9 feat(tpv): 语言内协程 M1-M7 移植——async/await 状态机 + 异常传播 + 帧池 TermiNexus 2026-08-22 00:34:32 +08:00
  • f0a70748d7 fix(match): default case body 的 dbody 类型推断退化 list[int] 截断指针 TermiNexus 2026-08-21 08:46:45 +08:00
  • 426bff7daa fix(gen): 补回拆分时丢失的 6 个常量(枚举/泛型/vtable/元数据) TermiNexus 2026-08-21 06:58:47 +08:00
  • 89995dffde refactor(gen): 去除 Handles 委托层——链式化 + GenTypes/GenApi 迁移 TermiNexus 2026-08-21 06:32:40 +08:00
  • ca1453c0ec refactor(tpv): set_asan_mode 移除改直接赋 _asan_mode bool;ClassGenEnum 加 Renum 字段 0xb0 崩溃定位临时诊断(定位后移除) TermiNexus 2026-08-21 01:37:51 +08:00
  • 0e48190ba9 chore(tpv): 清理过时注释——run_llc_parallel 步进说明、追加89 -> None 说明、Gen 模块迁移说明 TermiNexus 2026-08-21 01:37:46 +08:00
  • a088f21bce fix(BuildPipeline): run_llc_parallel 分批步进错误,修复 llc 线程 join 误报 600 秒超时 TermiNexus 2026-08-21 01:05:07 +08:00
  • f7f3bbac02 fix(TVP): get_class_name_by_type strstr 回退改后缀匹配,修复链式方法调用类名解析 TermiNexus 2026-08-20 16:45:27 +08:00
  • 9e6e76fcab fix(gen): 兄弟 Mixin this 调整改用模块级 HandlesClassDef._get_type_size TermiNexus 2026-08-20 11:54:39 +08:00
  • 765702bb5f fix(gen): this-adjust 补兄弟 Mixin 分支——BaseB 内调 BaseA.helper 前移 sizeof(BaseA) TermiNexus 2026-08-20 11:35:35 +08:00
  • 086e792b30 fix(gen): 兄弟 Mixin 兜底过滤泛型特化类名——防误绑定 list 特化函数 TermiNexus 2026-08-20 11:14:26 +08:00
  • 184d84b10b fix(gen): 修正 CallGenCall 类体首行注释缩进 TermiNexus 2026-08-20 10:41:31 +08:00
  • d9a5dfac58 chore(gen): 清理 CallGen 拆分残留的重复方法注释块 TermiNexus 2026-08-20 10:40:09 +08:00
  • 898a5c2624 fix(gen): 兄弟 Mixin 方法兜底——MRO 链外按 struct 表查定义类 TermiNexus 2026-08-20 10:28:34 +08:00
  • 7ba3c74411 fix(gen): StmtGenCifMixin 补 ExprCallBase import(迁移 If/For 方法体引用) TermiNexus 2026-08-20 09:33:01 +08:00
  • 12e8d6bdf8 fix(stub): vpi 全局注入补全 src_sha1 mangling——修复 a42923c 笔误致空名全局 TermiNexus 2026-08-20 08:06:12 +08:00
  • 281d26915c fix(gen): 分派改回 Handles 委托壳——NoVTable 同链跨类 self 调用仍 mangle 失败 TermiNexus 2026-08-20 07:02:43 +08:00
  • 9f396f4874 refactor(gen): 完成 P6 机械化迁移——Handler 类并入 Gen Mixin,语句实现单层化 TermiNexus 2026-08-20 06:40:37 +08:00
  • e07ea491a5 chore(gen): 全量备份——Handles 委托壳瘦身与单例注入统一 TermiNexus 2026-08-20 05:33:59 +08:00
  • a42923cf25 fix(stub): vpi 注入全局变量声明带源模块 SHA1 前缀 TermiNexus 2026-08-20 05:11:25 +08:00
  • 601db9e265 fix(gen): from-import 模块名截断后再查 SHA1(非 NUL 结尾退化裸名) TermiNexus 2026-08-20 05:01:21 +08:00
  • 99df2aef99 fix(gen): 全局变量引用加引号(SHA1 前缀名以数字开头) TermiNexus 2026-08-20 04:42:20 +08:00
  • 252d15ba9f fix(gen): 模块属性访问支持别名解析(import X as Y → Y._attr) TermiNexus 2026-08-20 04:37:50 +08:00
  • 5f7a87341a fix(gen): 模块级全局变量命名带 SHA1 前缀,消除 ld.lld duplicate symbol TermiNexus 2026-08-20 04:31:39 +08:00
  • cf6c917e83 fix(gen): 泛型特化类记录触发文件,作废重译正确重置 MethodsEmitted TermiNexus 2026-08-20 04:04:40 +08:00
  • b68ae16639 fix(stubmerger): 依赖 worklist 去重,修复 64KB 溢出(app_deps 与 BFS 展开均无去重,公共模块重复累积导致溢出;三处逐模块词边界去重,溢出检查保留作防线) TermiNexus 2026-08-20 03:11:48 +08:00
  • b08a0aff48 perf(phase2): 缓存 BuildCombinedIR 全目录扫描结果 TermiNexus 2026-08-20 01:15:05 +08:00
  • efc0e47058 chore(gen): 移除 [DBG-ANNOT]/[LLC-DBG] 调试插桩 TermiNexus 2026-08-20 00:50:18 +08:00
  • 8947c5c5ee fix(gen): 多继承 this-adjust 对无字段父类跳过字节调整(对齐 TPC,Vec2Extra 误报未注册修复) TermiNexus 2026-08-20 00:31:33 +08:00
  • e770fef0f7 fix(gen): 恢复 ClassGenBase 基类别名解析(_resolve_base_alias) TermiNexus 2026-08-20 00:05:32 +08:00
  • dc5bb2111b fix(phase2): 句柄数组改回 list[str] 显式 elem_size=8 TermiNexus 2026-08-19 23:12:33 +08:00
  • 0d2e9124d9 debug(phase2): 打印 list[ptr] 构造后内部状态定位 append 崩溃 TermiNexus 2026-08-19 23:01:48 +08:00
  • 0faf44e179 refactor(phase2): 句柄数组改回 list[t.CPtr] TermiNexus 2026-08-19 22:44:21 +08:00
  • 0810f9f9e8 fix(phase2): llc 线程 join 改用句柄数组替代 Thread 对象存取 TermiNexus 2026-08-19 22:19:33 +08:00
  • 88778dc422 debug(phase2): join 前打印 th 指针/handle/started 定位 join 立即返回 TermiNexus 2026-08-19 22:10:11 +08:00
  • 645e8e0fbf fix(phase2): llc 线程数组元素类型改为指针 Thread|t.CPtr TermiNexus 2026-08-19 22:03:22 +08:00
  • 3f3e3d5898 fix(phase2): _run_cmd_wait 清零 STARTUPINFOA 等结构体 TermiNexus 2026-08-19 21:50:56 +08:00
  • 4bd254a27f fix(phase2): llc 并行线程数组修复 list 元素间距与容量越界 TermiNexus 2026-08-19 21:36:26 +08:00
  • 42aa90c1af fix(gen): translate_c_deref 支持转换链包裹推断指针目标 TermiNexus 2026-08-19 21:19:38 +08:00
  • 1b5246f29f fix(phase2): llc 并行线程数组改用 list[Thread] TermiNexus 2026-08-19 21:14:20 +08:00
  • c68eb22052 debug(phase2): 细化插桩区分 CreateProcessA 卡点与 join 等待行为 TermiNexus 2026-08-19 21:03:47 +08:00
  • 70c88107ce fix(phase2): llc worker 改用 CreateProcessA 替代 system,修 asan 并发挂起 TermiNexus 2026-08-19 20:57:52 +08:00
  • f3c94917e5 debug(phase2): 插桩 llc worker 打印 system 返回码,定位 ClassArrayTest 固定 llc 失败误报 TermiNexus 2026-08-19 20:48:01 +08:00
  • f5b3e46543 fix(gen): while 1 无限循环无 break 判定 merge 不可达 TermiNexus 2026-08-19 20:35:22 +08:00
  • b2e69c2f75 chore(gen): 移除全部 [DIAG] 调试打印 TermiNexus 2026-08-19 10:11:37 +08:00
  • 63caf152c2 perf(phase2): llc 并行线程数 8 提升到 16 TermiNexus 2026-08-19 07:56:31 +08:00
  • 6807082853 fix(gen): this-adjust 失败静默跳过改 fail-fast TermiNexus 2026-08-19 07:51:37 +08:00
  • edd842b6af fix(phase2): free_llc_task 误 free 任务槽导致 double-free TermiNexus 2026-08-19 07:34:57 +08:00
  • 18b9b8bfa8 perf(phase2): llc 编译改多线程异步并行 TermiNexus 2026-08-19 07:28:08 +08:00
  • eb0398eae3 fix(gen): this-adjust 基类 bitcast 前确保 opaque 类型声明 TermiNexus 2026-08-19 06:25:33 +08:00
  • e8a3fd0a65 fix(attr): ALL_CAPS 非 CDefine 回退跨模块全局变量 TermiNexus 2026-08-19 05:41:21 +08:00
  • aa2a1e593f revert(cdef): 撤销跨模块 CDefine 匹配放宽 TermiNexus 2026-08-19 05:41:14 +08:00
  • 677373c629 fix(cdef): 跨模块 CDefine 匹配放宽到 t.C 类型注解 TermiNexus 2026-08-19 05:35:02 +08:00
  • cf9207f171 fix(struct): PARENT_MAX 16→64 修复 Generator 43 父类字段截断 TermiNexus 2026-08-19 05:11:51 +08:00
  • 46170c20ef fix(gen): ExprGenCls/Fstr 补本地 DOC/FSTR 常量副本 TermiNexus 2026-08-19 05:06:08 +08:00
  • 6d627d67cf fix(gen): fatal_error 后补 return 样板,修复属性访问/写入掉出末尾 TermiNexus 2026-08-19 04:58:12 +08:00
  • d766eaf656 fix(gen): 依赖未就绪时保持默认 i32 而非 Void,修复表达式 fatal TermiNexus 2026-08-19 04:49:26 +08:00
  • 4d7a6db31a fix(match): case 体末句控制流全 return 补 unreachable 不 br end_bb TermiNexus 2026-08-19 03:16:16 +08:00
  • fa52fbd4e5 fix(gen): REnum 变体检测避免指针减法生成非法 sub i8* TermiNexus 2026-08-19 02:54:08 +08:00
  • e700de1055 fix(gen): REnum 变体构造支持模块限定形式 mod.Class.Variant TermiNexus 2026-08-19 02:45:10 +08:00