Commit Graph

  • b1090abe70 feat(tpv): 新增 TypeSpec 统一类型描述符(S1,未接线) TermiNexus 2026-09-11 20:02:52 +08:00
  • b8470c1cae fix(tpv): 拓宽方向统一为单一真源,并修 TypeStr 变参与 should_zext_widen 缺参 TermiNexus 2026-09-11 19:57:18 +08:00
  • c71642dca0 清理一部分异 TermiNexus 2026-09-11 18:55:33 +08:00
  • cfb92e5da5 初步清理 t. 类型异味 TermiNexus 2026-09-11 18:36:32 +08:00
  • 4ce55e3ea3 fix(tpv): 泛型注解预特化下沉到 AnnAssign Handle 路径,修 .get() 误分派崩溃 TermiNexus 2026-09-11 18:10:19 +08:00
  • d3690f9143 fix(tpv): 依赖注入期默认参数按定义模块 SHA1 登记,消除跨模块同名函数串味 TermiNexus 2026-09-11 17:39:21 +08:00
  • e66d9e3adb fix(tpv): 修 N 系列 codegen 缺陷(常量位宽/无符号判定/实参扩宽/结构体取址) TermiNexus 2026-09-11 15:50:09 +08:00
  • 751fbccb29 feat(tpv): vtable 对象全局 storage 也按字段默认值折叠 TermiNexus 2026-09-11 15:29:43 +08:00
  • f5ee178407 feat(tpv): 模块级对象全局按字段默认值生成 storage 初始化器 TermiNexus 2026-09-11 14:52:29 +08:00
  • e20a6f3d11 fix(tpv): 修 VKernel 暴露的 codegen 缺陷(浮点 CDefine/__sizeof__ packed/CONST_STR/alloca/无符号/ABI) TermiNexus 2026-09-11 14:26:54 +08:00
  • bd46b47b22 docs(readme): 按事实重写 README, 反映自举已完成与真实源码结构 TermiNexus 2026-09-10 22:33:23 +08:00
  • a5260f4441 fix(tpv): ASan 运行库改由 project.vpj 声明; read_all 容量语义修正与超限源文件 fail-fast TermiNexus 2026-09-10 22:33:18 +08:00
  • 76f03b5987 fix(tpv): 修模块级浮点全局零初始化、跨模块 CDefine 重导出、默认参数快照、typedef 诊断悬垂指针 TermiNexus 2026-09-10 14:22:02 +08:00
  • adfd202218 feat(tpv): 支持 --no-llvmpeephole 关闭 llvmlite 本地窥孔(T2/T3)便于 IR 对比; 移除 project.json(改用 project.VPj) TermiNexus 2026-09-09 21:10:20 +08:00
  • 1d76280d0e perf(tpv): find_func_in_table 两遍扫描合并为单遍 TermiNexus 2026-09-09 10:38:34 +08:00
  • bb9bb76653 fix(tpv-asm): c.Asm clobber 独立上限 ASM_MAX_CLOBBERS=32,修复 >16 项 clobber 截断致寄存器冲突崩溃 TermiNexus 2026-09-09 10:38:34 +08:00
  • 7611d10072 fix(stubgen): CONST_STR 引号改用字符串字面量,修复 char 隐式转指针 TermiNexus 2026-09-09 08:57:29 +08:00
  • 3e4f3b88b0 fix(tpv-class): lookup_field_by_class 识别 16hex 类键前缀为 sha1,修复 GSList[Param] 模块解析误报 TermiNexus 2026-09-09 08:57:29 +08:00
  • 82558bd86b fix(tpv-expr): list 内置内联按元素原型类 load,支持链式 get(0).method() 分派 TermiNexus 2026-09-08 21:30:56 +08:00
  • 709c3570fb fix(tpv-class): REnum 自引用字段注册后回填别名类型,修复 match 绑定变量退化为整数 TermiNexus 2026-09-08 21:30:56 +08:00
  • ab814f55e6 fix(tpv-call): 裸名调用同模块函数优先(owner_sha1),修复跨模块同名 stub 抢占致 _advance 误绑 TermiNexus 2026-09-08 20:47:54 +08:00
  • a260b9316d style(stubgen): Converter.vp 去除 .vpi 类/函数定义后多余空行 TermiNexus 2026-09-07 22:35:21 +08:00
  • 1146719de1 fix(generic): 泛型显式实例化 Box[t.CInt](v) 实参提取 Attribute 直读字段 TermiNexus 2026-09-07 22:11:05 +08:00
  • 4496738a24 fix(asm,irbuf): c.Asm 输出类型收集时缓存 + 大模块 IR 缓冲 1MB→8MB TermiNexus 2026-09-07 22:06:26 +08:00
  • bcedb15b23 fix(generic,rowptr): SlotsBugTest 编译修复——T.__sizeof__ 特化与 rowptr[sha1.Class] 注解解析 TermiNexus 2026-09-07 19:36:57 +08:00
  • 41ed7176e9 fix(codegen): __sizeof__ 缺 rowptr[X] 指针尺寸分支,泛型特化 T.__sizeof__() 报未定义名称 'T' TermiNexus 2026-09-07 15:31:18 +08:00
  • ed373a3ef2 基线重置,修复了一些 bug TermiNexus 2026-09-07 14:46:48 +08:00
  • 6b368b46a7 feat(tpv): App 与 TPVAppBK 新代版本对齐(rowptr 配套实现全套) TermiNexus 2026-09-05 14:13:03 +08:00
  • c35246f426 fix(phase1): 旧 5 参 def 前补全量 includes 预注册(1a-pre),修复'无法构建 SHA1 映射' TermiNexus 2026-09-05 12:56:10 +08:00
  • 50d53d3ce6 fix(link): 补 CallGenLib._promote_clib_call_args 定义;BuildPipeline PYI_BUF_SIZE 改 t.CDefine 宏 TermiNexus 2026-09-05 12:48:03 +08:00
  • 8dda9f7c2d feat(linker): TPV 支持 project.vpj linker.dynamic_libs 动态链接 .dll/.so(Config 解析+绝对路径解析+链接命令合并 static/dynamic,Viper str+= 拼接改用 snprintf) TermiNexus 2026-09-01 22:01:20 +08:00
  • 75db09e18a fix(call): 跨模块返回类型解析兜底修复——star import 候选验证失败时先验证原模块(stdlib.malloc extern def 不再误归 stdint);包模块 vpi 未命中时经 reexport 定位定义模块查返回注解(fltk.Fl_Input_value 返回 str 不再退化 i32) TermiNexus 2026-09-01 21:23:12 +08:00
  • 131f3a9a4d fix(phase1): 移除 [CYCBREAK] 临时诊断 printf TermiNexus 2026-09-01 21:07:24 +08:00
  • 178ea401b7 fix(phase1): 含 class 定义的 includes 模块强制翻译,修复增量编译跨模块类构造 find_struct_by_module 落空(fltk.Fl_Window 返回类型 fail-fast) TermiNexus 2026-09-01 21:06:31 +08:00
  • c7c37e1007 fix(call): star import 再导出改为多候选验证定义模块 TermiNexus 2026-09-01 20:39:19 +08:00
  • 60deee1d17 fix(call): _lookup_reexport_from_vpi 支持 star import 再导出定位 TermiNexus 2026-09-01 20:26:14 +08:00
  • 29667672e4 feat(linker): TPV 支持 project.vpj 静态链接 .a/.obj TermiNexus 2026-09-01 20:15:26 +08:00
  • 9b46e1da78 fix(compiler): for x in ptr/数组 实现解引用为空终止(指针/浮点元素支持 + 数组长度上限+NULL终止) TermiNexus 2026-08-30 08:37:39 +08:00
  • d14415a4e6 fix(compiler): asm 约束映射补全 8 位寄存器 clobber(AL/AH/BL/BH/CL/CH/DL/DH) TermiNexus 2026-08-30 08:12:44 +08:00
  • a0d6dced00 fix(compiler): va_arg 截断回目标宽度(%d 高位垃圾)+ 比较按无符号类型选 ULT/ULT/UGT/UGE TermiNexus 2026-08-30 07:54:24 +08:00
  • 4db68ff5c4 fix(compiler): 修复模块级全局初始化数据丢失(-1 与字符数组全 0) TermiNexus 2026-08-30 07:27:40 +08:00
  • 23e7f5b1fb fix(compiler): storage vtable 初始化改完整 struct 初始化器(LLVM 拒绝部分初始化) TermiNexus 2026-08-29 18:46:18 +08:00
  • fa4c69f95d fix(compiler): storage 对象类全局初始化 vtable 首字段(@t.CVTable) TermiNexus 2026-08-29 18:39:28 +08:00
  • c2b9a26c62 fix(tpv): vpi 注入完整类型定义 + list elem_size + 路径修复,清理临时诊断 TermiNexus 2026-08-29 17:27:29 +08:00
  • 1fe7878074 fix(compiler): 对象类模块级全局改静态 BSS storage,修复页 0 混叠与栈悬垂 TermiNexus 2026-08-29 17:27:21 +08:00
  • 2b2c242d14 fix(tpv): extern declare 返回类型含真实类型时不再误归 Void + 白名单兜底 TermiNexus 2026-08-29 12:03:12 +08:00
  • efc8f7948f fix(tpv): void 函数 return <expr> 丢弃值 + ret void(llc ret i32 vs define void) TermiNexus 2026-08-29 11:12:23 +08:00
  • b7eeb504ee fix(tpv): 空类 FieldCount=0 中和重建 + 移除 [ATTR]/[DET] 调试打印 TermiNexus 2026-08-29 10:44:43 +08:00
  • a99db2a29b fix(tpv): REnum 变体引用作值返回 tag 常量 + kind() 注解兜底 TermiNexus 2026-08-29 10:28:39 +08:00
  • 58d61badcb fix(tpv): 跨模块调用返回类型解析支持 import 别名(GenApi.translate_printf_call) TermiNexus 2026-08-29 10:14:32 +08:00
  • 8d0241e0c3 fix(tpv): lookup_field_by_class 模块限定路径补 REnum 变体字段别名回退 TermiNexus 2026-08-29 10:03:10 +08:00
  • 9af7b2ead4 fix(tpv): from . import Y 跳过包目录名 SHA1 校验(无 __init__.vp 目录包) TermiNexus 2026-08-29 09:48:42 +08:00
  • d3bdfd5205 fix(tpv): 修复包重导出两个前置判定 bug(level 判定 + __init__ 后缀偏移) TermiNexus 2026-08-29 09:32:12 +08:00
  • 25363120f8 debug(tpv): 临时诊断定位 ast.Attribute 包重导出失败根因(REEXPORT-DBG) TermiNexus 2026-08-29 09:15:33 +08:00
  • 99ddff2d87 fix(tpv): t.CArray/t.CPtr 下标元素解析失败改为返回 None 交多遍收敛 TermiNexus 2026-08-29 09:01:42 +08:00
  • 0a84ca8db3 debug(tpv): 临时诊断定位 SECURITY_ATTRIBUTES 空类注册来源 TermiNexus 2026-08-29 08:42:26 +08:00
  • 7b81e3c7cf fix(tpv): vpi 注入不再注册空类(FieldCount=0)——避免阻塞源模块真实定义 TermiNexus 2026-08-29 08:20:26 +08:00
  • 6540e27844 fix(tpv): translate_attribute 读路径字段未找到时标记 _deps_pending TermiNexus 2026-08-29 08:14:25 +08:00
  • 20ba8e0297 fix(tpv): 字段访问依赖未就绪时标记 _deps_pending 而非 fail-fast TermiNexus 2026-08-29 07:46:15 +08:00
  • 0b0cf5ba66 refactor(tpv): _parse_type_string 用 Expression 注解访问 body(源头修正后简化) TermiNexus 2026-08-29 07:26:12 +08:00
  • f75a4d795a fix(tpv): _parse_type_string 的 expr_node.body 修正——Expression 包装强转访问 TermiNexus 2026-08-29 07:23:13 +08:00
  • 9e72393a11 fix(tpv): ExprGenName 三处 LLVMType.Int8() 模式修正为 Int(bits)+bits==8 TermiNexus 2026-08-29 07:19:36 +08:00
  • ec4fb0bcf8 refactor(tpv): ClassGenVTable 的 self._mangle_name 统一为 self.Gen.FuncGenBase 显式调用 TermiNexus 2026-08-29 07:16:43 +08:00
  • 98efd9b1d2 fix(tpv): __sizeof__ 模块限定类按模块归属匹配,防跨模块同名类误匹配 TermiNexus 2026-08-29 07:06:11 +08:00
  • 8a69719acf fix(tpv): 裸名 typedef 强转改 resolve_typedef_or_map 统一口径(BYTEPTR 等) TermiNexus 2026-08-29 06:22:30 +08:00
  • fa90586a83 refactor(tpv): 类型系统收敛——正常库分析优先,t/c 库内部特判兜底 TermiNexus 2026-08-29 06:15:00 +08:00
  • 2610f361fd fix(tpv): 泛型特化名分裂——嵌套泛型实参递归 SHA1 规范化(_Type.md 问题 7) TermiNexus 2026-08-29 05:51:49 +08:00
  • 4415f1f38b fix(tpv): 窄化截断加常量溢出诊断(_Type.md 问题 8) TermiNexus 2026-08-29 05:48:15 +08:00
  • 4748915472 fix(tpv): 外部函数返回类型不可收敛时 fail-fast,豁免 from-import 与多层模块限定调用 TermiNexus 2026-08-29 05:46:25 +08:00
  • 5551db3432 fix(tpv): try_extract_callable_ret 调用多传第 6 个参数(签名仅 5 参数) TermiNexus 2026-08-28 15:35:28 +08:00
  • 85e7011b6c refactor(tpv): INTPTR/UINTPTR 去硬编码,依赖 stdint.vp CTypedef 声明 TermiNexus 2026-08-28 15:33:45 +08:00
  • 8445af93d2 fix(tpv): 泛型污染检测改 token 边界匹配(根治 strstr 误杀合法特化) TermiNexus 2026-08-28 15:06:30 +08:00
  • 27ba74c720 fix(tpv): REnum 别名表去指针化(class 槽位改 perm_pool 字符串 + strcmp 内容比较) TermiNexus 2026-08-28 15:00:50 +08:00
  • a8eb7fe5fe fix(tpv): 类型静默退化改编译期报错 + 统一整数拓宽 zext/sext TermiNexus 2026-08-28 14:57:46 +08:00
  • 24ae2dc966 refactor(tpv): 删除 Handles 目录,核心逻辑合并进 Gen TermiNexus 2026-08-28 14:29:25 +08:00
  • d99b6268de refactor(tpv): Gen 目录按前缀分组迁移子目录 + REnum.kind() 编译期转 __tag TermiNexus 2026-08-28 14:16:03 +08:00
  • b3a4be21d3 feat(tpv): VLogger 迁移 f-string + 模块限定构造 SHA1 解析 + 包重导出别名注册 TermiNexus 2026-08-28 13:29:26 +08:00
  • 19171ee165 feat(tpv): vpi 预生成失败输出失败文件路径与原因(含 AST 解析错误行列) TermiNexus 2026-08-28 08:05:46 +08:00
  • 6daec5fa58 feat(tpv): translate_unaryop 支持单目 * / &(Deref/AddrOf) TermiNexus 2026-08-28 07:35:03 +08:00
  • d971bae7cd 移除了 VLogger fmt buffer 缓冲区,使用栈 f-string TermiNexus 2026-08-28 06:01:17 +08:00
  • 54462320d2 简化了一些表达,最后仍使用 fb 缓冲区的版本(新版本使用 栈f-string) TermiNexus 2026-08-28 04:50:09 +08:00
  • c542442987 fix(structgen): 裸名回退字段未找到时返回 None 而非 fatal_error,让 REnum 变体别名回退生效 TermiNexus 2026-08-27 16:16:03 +08:00
  • ce62546e90 fix(structgen): lookup_field_by_class 模块归属未命中回退裸名同名类(唯一时),修复 ast.Attribute 归属错位误报 TermiNexus 2026-08-27 16:10:48 +08:00
  • 907f7892f9 fix(callgen): 跨模块返回类型解析的 mod_ret_sha1 显式初始化 None,修复裸名调用读栈残留崩溃 TermiNexus 2026-08-27 15:52:09 +08:00
  • c54e87bd6d fix(imports): from . import Y 的 Y 是包内符号(非子模块)时跳过 SHA1 校验 TermiNexus 2026-08-27 14:27:24 +08:00
  • a603736f64 修正:直接操作操作跨模块变量(VLogger),避免间接 global 函数 TermiNexus 2026-08-27 13:14:39 +08:00
  • ab0f37e1a8 更新,可自举 TransPyV-0.0.3-dev.428 TermiNexus 2026-08-27 09:48:20 +08:00
  • 07db560510 fix(gen): 裸名回退时 malloc/calloc/realloc/alloc/alloc_buf 的 size 参数按 i64 提升——desktop 第 4 次 mm.malloc 返回值被破坏收到 0x0、用户 App vpsdk malloc 同理 TermiNexus 2026-08-27 00:55:52 +08:00
  • f185241a71 fix(gen): translate_subscript 支持 Slice 切片表达式(a[start:end])——此前返回 None 导致函数实参被丢弃(create_process(path[n:],entry) 丢 name、entry 错位 → p.entry 垃圾 → 用户进程 iretq 垃圾地址 PF) TermiNexus 2026-08-27 00:45:22 +08:00
  • ee6d78bbb1 fix(structgen): lookup_field SHA1 隔离改用 strncmp 前 16 字符比较,消除 stdlib.free 对 pool 子块的 bad-free(ASAN) TermiNexus 2026-08-26 23:58:07 +08:00
  • cc9112b54a fix(structgen): lookup_field SHA1 隔离临时缓冲改用 stdlib.malloc(lookup_field 无 pool 参数)并补 free TermiNexus 2026-08-26 23:54:22 +08:00
  • ad1089d9af fix(structgen): lookup_field 名称回退按类型 SHA1 精确隔离,禁止 strstr 裸名跨模块抓同名类(sched.Thread 被 vthreading.Thread 顶掉 → th.arg 索引错成 func(3) → 线程 call 0 #UD) TermiNexus 2026-08-26 23:52:37 +08:00
  • ec48b315d3 debug(structgen): add_field 打印每字段名+索引,确认 Thread.arg 是否漏注册或字段名悬空 TermiNexus 2026-08-26 23:45:13 +08:00
  • d082bb3996 debug(exprgenattr): 字段查找 arg/func 时打印 attr/类型/索引/实际字段名,定位 Thread.arg 索引错解析成 func(3) 根因 TermiNexus 2026-08-26 23:40:22 +08:00
  • d8286295d1 fix(callgen): 外部函数返回类型白名单补 malloc→i8*,修复跨模块裸名 @malloc 调用返回类型推断为 i32 截断 64 位指针(uhci frame list / desktop bg_row_buf 判 None 根因) TermiNexus 2026-08-26 22:56:35 +08:00
  • ecfa47bd3c fix(callgen): 跨模块裸名 CExport 调用精确解析返回类型,依赖未编译时 _deps_pending 重试,修复 malloc 返回截断 i32 TermiNexus 2026-08-26 22:44:46 +08:00
  • e82664fa67 fix(gen): @t.Object 类模块级变量转 Ptr(struct),t.CStruct 值类保持值,修复 devfs 虚表调用跳栈 #PF TermiNexus 2026-08-26 22:33:11 +08:00
  • 66fe13f407 fix(vpireader): stub 全局变量声明保持 t.CStruct 值类型,修复跨模块字段访问当指针解引用 TermiNexus 2026-08-26 22:18:10 +08:00
  • 5d121f7166 fix(funcattrs): stackrealign 是 LLVM 字符串属性需带引号,否则 llc 报 expected '{' TermiNexus 2026-08-26 22:07:42 +08:00
  • 0d4b7ff491 fix(funcattrs): 显式传 max_len 并兜底 0,修复方法默认参数缺陷致属性文本全被丢弃 TermiNexus 2026-08-26 22:03:57 +08:00