Commit Graph

  • e33792a9ad feat(linker): TPC 支持 project.vpj 静态链接 .a/.obj TermiNexus 2026-09-01 20:15:17 +08:00
  • ca1e58f6fa feat(linker): TPC 支持 project.vpj 静态链接 .a/.obj,ViperFLProject 配置 fltk TermiNexus 2026-09-01 20:15:02 +08:00
  • 6892183cc9 feat(fltk): 新增 FLTK 1.4 纯 extern FFI 绑定库(对接 cfltk C API) TermiNexus 2026-09-01 19:53:54 +08:00
  • 2b5286ea11 fix(ast): parse_expression 返回注解改为 Expression | t.CPtr TermiNexus 2026-08-29 07:26:06 +08:00
  • 8c82629b0a test(vpt): 类型系统收敛测试——别名反查/typedef 链/__sizeof__ 联动 TermiNexus 2026-08-29 06:22:36 +08:00
  • 65dd4a5e3e docs(_Type): 类型系统收敛方案阶段 1/2/3 实施完成 TermiNexus 2026-08-29 06:15:09 +08:00
  • 103c6ae865 docs(_Type): 标记泛型特化名分裂完成(问题 7),状态更新为 2/4/7/8 已完成 TermiNexus 2026-08-29 05:51:55 +08:00
  • 3ff0db2953 docs(_Type): 标记窄化截断诊断完成(问题 8),状态更新为问题 2/4/8 已完成 TermiNexus 2026-08-29 05:48:20 +08:00
  • 90a74e4e2c fix(tpv): 支持 PEP 701 同引号嵌套 f-string 并记录解析错误位置 TermiNexus 2026-08-28 12:50:38 +08:00
  • bc017d0a61 feat(tpc): 解析错误记录具体 token 位置(消除'第 0 行 0 列'不可读错误) TermiNexus 2026-08-28 12:25:38 +08:00
  • 60dbdfe8d2 fix(tpc): 方法调用虚分派——变量与模块短名同名时不误入模块函数路径(base.kind 折叠根因) TermiNexus 2026-08-28 10:23:26 +08:00
  • db80178d2e fix(tpc): is_instance_var 判定豁免与子模块短名同名的已注册变量(base.kind 误判为模块路径) TermiNexus 2026-08-28 08:23:08 +08:00
  • 63bc435723 feat(tpc): 注解支持 C 风格指针后缀 T*(int* → int | t.CPtr 多级展开) TermiNexus 2026-08-28 08:01:03 +08:00
  • 0230385891 feat(tpc): 新增单目 * / & 运算符(Deref/AddrOf)AST 节点与 LLVM 翻译 TermiNexus 2026-08-28 07:34:58 +08:00
  • d6150bd595 工作提交,增加 Test TermiNexus 2026-08-28 05:59:47 +08:00
  • e376b949c9 fix(memhub): 移除 free 记录前标记校验——合并重分配误报(与 w0/w1 同类) TermiNexus 2026-08-25 17:21:27 +08:00
  • c9ccea4014 feat(memhub): 下溢写打印增强——块头/记录index/上下文/同ptr记录 TermiNexus 2026-08-25 17:17:29 +08:00
  • 3ac48282a3 feat(callgenctor): 构造参数列表头+槽位 0xCDCD 诊断 TermiNexus 2026-08-25 16:29:48 +08:00
  • 7c7629852a perf(memhub): detection 采样探测,O(n²) 降为 O(n²/256) TermiNexus 2026-08-25 16:21:34 +08:00
  • b777d7c925 fix(memhub): 移除 free 记录 0xCD 完整性校验,消除 buddy 自写误报 TermiNexus 2026-08-25 16:16:02 +08:00
  • 0f6ebb9065 fix(memhub): detection 记录表随 reset_to/reset 截断 TermiNexus 2026-08-25 16:05:21 +08:00
  • 74ed6f2dbc feat(memhub): 分配重叠即时检测 TermiNexus 2026-08-25 16:01:07 +08:00
  • 49feb6a2b4 feat(memhub): [DET] 越界写追加同ptr记录检测 - 扫描记录表找同一 ptr 的多条记录,验证 alloc 重叠(Token 72B 与字符串 buf 7B 共用块 → 互相覆盖),定位 size=7 块被当 Token 写的根因 TermiNexus 2026-08-25 15:57:45 +08:00
  • d3a84c25e0 feat(memhub): [DET] 越界写追加记录表上下文 - 打印越界块前后各3条 {ptr,size},推断分配阶段(如 lexer/parser 小结构),配合越界区数据定位 size=7 块写入者 TermiNexus 2026-08-25 15:53:44 +08:00
  • 878840a081 feat(memhub): [DET] 越界写追加打印越界区24字节 - 判断写入者写多长/方向(0x00=写穿 0xCD=未写 其它=写入值),定位 size=7 块 {10,1} 越界写源头 TermiNexus 2026-08-25 15:51:24 +08:00
  • e48f2104ff feat(memhub): [DET] 越界写打印块内容前16字节 - 定位 size=7 块被越界写的写入者(扫描 includes 阶段,后标记被写 0x0000) TermiNexus 2026-08-25 15:47:04 +08:00
  • fe98b5048e fix(memhub): __init__ 显式初始化 detection 字段防默认值失效 - TPC 类字段默认值对 CDefine 常量可能不生效,detection_size=垃圾 → malloc(垃圾) 1-byte 记录区 → 扩容 realloc double-free(ASAN 捕获);显式赋值 detection_size/MEMBUDDY_DET_RECORD_SIZE + _det_arena/_det_records/_det_count/_det_cap TermiNexus 2026-08-25 15:43:54 +08:00
  • 40f10f6348 fix(memhub): detection 记录表满时 realloc 扩容 - 原 32MB/16B=2M 条满后新 alloc 无记录,is_alive 误报读取悬空(hdr=0x5 活跃块不在记录表);改为 stdlib.realloc 翻倍扩容(对齐 chk_stack),保证 is_alive/_det_probe 全程覆盖 TermiNexus 2026-08-25 15:39:09 +08:00
  • b3b82a8093 feat(tpc): [DET] 读取悬空打印 cargs 指向块头 - is_alive 拦截时输出 cargs/block/hdr(0=已free UAF实锤 奇数=活跃但记录表异常 其它=非pool块),定位 KwEntry cl.args 悬空源 TermiNexus 2026-08-25 15:35:28 +08:00
  • fefc1e8343 feat(memhub): 读取侧存活校验 is_alive - 补 detection 写入检测盲区:struct_ctor 读 cargs 前校验 cl.args 是否在记录表 active 记录中,不在即 [DET] 读取悬空 打印 cargs 值并终止;拦截 use-after-free 读取(SlotsBugTest KwEntry cargs=cl.args 悬空根因),detection==0 时 is_alive 恒返回 1 不拦截 TermiNexus 2026-08-25 15:31:39 +08:00
  • 1de7c8d2ca chore(tpc): 移除全部临时 DBG 日志 - VDBG(ExprGenMixin)/CTORDBG(CallGenCtor)/LISTDBG(_list)/ALLOCDBG+set/get_debug_log+set/get_alloc_src(memhub)/CLDBG+[DEPDBG](CallGenMixin)/--enable-debug-log(main)/set_alloc_src(HandlesTranslator);保留 detection 机制(前后 0xCDCD 标记+记录表探测)与 MEMBUDDY_FILL_GUARD 守卫 TermiNexus 2026-08-25 15:17:51 +08:00
  • 769ffda04f feat(memhub): detection 补前标记探测(对称拦截下溢写) - active 记录验证返回ptr-2 处 0xCDCD,free 记录同样验证前标记+用户区 0xCD;与后标记上溢检测、free 填 0xCD 的 UAF 写入检测构成完整三方覆盖 TermiNexus 2026-08-25 15:12:48 +08:00
  • 91120ae00a feat(memhub): detection 增强 - free 后用户区填 0xCD + 记录保留并置 free 标志,探测时对仍 free 的块验证 0xCD 完整(首末 8 字节),被写穿即 [DET] UAF 写入 报警终止 - 拦截 use-after-free 写入(如 SlotsBugTest KwEntry cargs 块 free 后被部分覆盖),与后标记越界写检测互补;块被重新 alloc 后块头变奇数自动跳过旧 free 记录防误报 TermiNexus 2026-08-25 15:02:14 +08:00
  • 0efd438bfb feat(main): --detection 命令行开关应用 MemBuddy 分配检测到双池 - 创建内存池前用 GetCommandLineA 扫描 --detection(sys._init_argv 依赖 mb 不能提前),mb(1GB) 与 perm_pool(512MB) 均传 detection 布尔;detection 数据区大小硬编码 32MB(memhub MEMBUDDY_DET_RECORD_SIZE);argparse 注册 --detection 帮助项 TermiNexus 2026-08-25 14:59:21 +08:00
  • c559c0f2d6 feat(memhub): MemBuddy 分配检测机制(detection 开关) - alloc 布局改为 [0xCDCD][size][0xCDCD](实际多 4 字节,返回指针后移 2 字节,free/realloc 前移 2 字节回收);每次 alloc 记录 {返回ptr,size} 到独立 32MB 记录区(stdlib.malloc,默认 detection_size=32MB),随后探测全部存活块后标记——被破坏即越界写,汇报 ptr/size 并终止;free 时移除对应记录防块复用误报。定位 SlotsBugTest KwEntry cargs '存活块被部分覆盖' 的写入者(ASAN/Valgrind 对自研池透明,此机制补齐池内越界写检测盲区)。MemBuddy(arena, size, detection=1) 开启,默认 False TermiNexus 2026-08-25 14:56:04 +08:00
  • 21e67cac40 fix(tpc): 含 raise 函数调用参数补全排除 EH 输出参数,杜绝双重注入 - CallGenMixin 零值兜底与 CallGenCall found_func 参数数回退原将 %__eh_msg_out__/%__eh_code_out__ 计入形参数,为 raise_disk() 无参调用补 2 个 zeroinitializer 占位,_emit_eh_guarded_call 又追加真实 EH 实参 → call 4 参 vs define 2 参 → x64 ABI 错位 → 函数写 null 输出指针 0xC0000005(TestFBProject raise_disk 崩溃根因);三处计数均排除 EH 参数 TermiNexus 2026-08-25 14:04:27 +08:00
  • 916c1284c9 fix(tpc): 虚调用 vtable 布局按接收者静态类型解析而非 this 调整后父类指针 - _do_virtual_call 原用 self_ptr.Ty 解析 vc_entry,多继承中 self 被 bitcast 成父类指针(如 ColorM*)后得到父类单槽 vtable 布局(method_index/method_count 按父类算)→ GEP 槽位 0 读到 area 而非 color_code(MultiInheritTest color_code 虚调用 FAILED 根因);改优先用 vtable_base(对象头)类型解析,未传 vtable_base 时回退 self_ptr 保持原行为 TermiNexus 2026-08-25 13:53:56 +08:00
  • 3100bb9343 feat(memhub,list,llvmlite): 0xCD 分配守卫、诊断开关与 INT64_MIN 常量修复 - memhub.vp alloc 填充 0xCD 哨兵 + set_debug_log/get_debug_log + ALLOCDBG 分配者记录; _list.vp __init__/append 诊断; llvmlite i64 INT64_MIN 输出无符号位模式(LLVM 拒绝 -9223372036854775808 字面量)。定位 SlotsBugTest KwEntry cargs use-after-free 与常量 dump 错误 TermiNexus 2026-08-25 13:19:08 +08:00
  • c3a43dfe76 refactor(includes): 标准库 extern 软关键字语法迁移 + _append_cstr O(1) 追加缓存 TermiNexus 2026-08-24 23:31:12 +08:00
  • 50ca560563 fix(tpc): list 联合类型方法分派保护 + str 压平条件收紧 + external global 裸名兼容 TermiNexus 2026-08-24 23:31:08 +08:00
  • 3b0a73db5e fix(tpc): _translate_file 以 out_path 文件名作 sha1,修复前缀漂移链接失败 - 原实现重读文件重算 sha1 覆盖 _module_sha1:主流程收集与翻译间隙文件变化时,函数定义前缀与文件名/调用方引用前缀不一致(696d41ca86e0a29a.BuildTopoSortedIndices 被生成成 5536… 前缀)→ ld.lld undefined symbol - 改为以 out_path 文件名(主流程 sha1)为准并告警内容变化,保证链接一致 TermiNexus 2026-08-23 14:03:34 +08:00
  • 1dc23ffdde feat(tpc): llc 编译阶段日志带进度/源文件/耗时 TermiNexus 2026-08-22 08:05:19 +08:00
  • 7b04b72d4b feat(tpc): 翻译进度日志带源文件路径与耗时——并行时不再只有 sha1 TermiNexus 2026-08-22 07:41:58 +08:00
  • ebfaacf7bf fix(tpc): worker cProfile 默认禁用——环境变量 TPC_WORKER_PROF=1 开启 TermiNexus 2026-08-22 07:31:06 +08:00
  • c2f07e10cd fix(tpc): worker cProfile 与 viztracer 互斥——外部 profiler 活跃时跳过 TermiNexus 2026-08-22 07:16:52 +08:00
  • d092b4d31f perf(tpc): 并行 worker 决策放宽——per_worker_mb 700 降至 350 TermiNexus 2026-08-22 06:54:56 +08:00
  • c62153a685 perf(tpc): import 热路径优化——walk 结果缓存 + DebugPrint 参数惰性化 TermiNexus 2026-08-22 06:04:38 +08:00
  • daf79af1cc fix(tpc): 返回 fail-fast 豁免 void 联合注解与 extern/export 声明型函数 TermiNexus 2026-08-22 05:17:03 +08:00
  • 0e8283551c 修正 HandlesExprCall 的 import TermiNexus 2026-08-22 04:35:40 +08:00
  • 56a4b5c818 fix(tpc): stub 加载器解析全局变量声明——跨模块全局变量不再静默丢失 TermiNexus 2026-08-22 04:21:04 +08:00
  • 4b0482657b fix(tpc): 返回 fail-fast 判据改为源码层面——显式 return 结尾不再误报 TermiNexus 2026-08-22 04:13:43 +08:00
  • 09d03f4525 fix(tpc): 返回 fail-fast 误报修复——末句控制流掉出末尾不报错 TermiNexus 2026-08-22 04:08:43 +08:00
  • 3117ab3dec fix(tpc): import fail-fast 判据误报修复——文件系统找不到不等于模块不存在 TermiNexus 2026-08-22 04:04:30 +08:00
  • 0ce4a4d073 fix(tpc): import 路径/隐式转换/缺失 return 三项漏检 fail-fast TermiNexus 2026-08-22 03:57:19 +08:00
  • 567d925235 perf(tpc): PROF 热点优化——vast 节点 _Init unroll 特化 + isfile 结果缓存 TermiNexus 2026-08-22 03:08:29 +08:00
  • b7b17e0e7b 修正 main 的 import TermiNexus 2026-08-22 02:35:30 +08:00
  • 2f0ebc285b test(coro): 新增 TPV 协程 try/finally + 帧池 + c.Addr 句柄综合测试 TermiNexus 2026-08-22 01:58:04 +08:00
  • 58594d4cf7 refactor(coro): Coroutine 改 @t.NoVTable,去掉无用 vtable(纯句柄语义) TermiNexus 2026-08-22 01:35:04 +08:00
  • 7d147c55e1 fix(mcp): 编译默认启用 --asan,tpv_build 支持 asan 参数 TermiNexus 2026-08-21 22:54:21 +08:00
  • 44124b2f2f chore(mcp): .mcp.json 移入 MCP/ 目录,README 更新说明 TermiNexus 2026-08-21 22:06:17 +08:00
  • 39228d5654 chore(mcp): MCP 服务器移入 MCP/ 目录,新增 .mcp.json 客户端配置 TermiNexus 2026-08-21 22:04:57 +08:00
  • 8ce08493e8 feat(coro): M7——try/finally、异常消息、自定义异常类、帧池复用 TermiNexus 2026-08-21 14:46:21 +08:00
  • 8b9e88287a feat(coro): M6——raise 异常类型 + 多 except 类型匹配 TermiNexus 2026-08-21 14:32:52 +08:00
  • 69447025a7 feat(coro): M5——协程内 try/except 捕获(raise 与 await 传播异常) TermiNexus 2026-08-21 14:28:52 +08:00
  • 411e0bb774 feat(coro): M4——异常传播(帧 exc 槽 + raise + await 传播)+ gather 并发调度 TermiNexus 2026-08-21 14:26:19 +08:00
  • c979f0f94d fix(coro): M3 三处修复——nonlocal 闭包、wake 空块终止、coro_run 唤醒槽按索引定位 TermiNexus 2026-08-21 14:20:51 +08:00
  • 3acf24c7d0 feat(coro): M3——For 内 await、coro_sleep 挂起、coro_destroy 释放帧 TermiNexus 2026-08-21 14:17:27 +08:00
  • 4640211e3c docs(mcp): 非生产环境默认推荐启用 ASan,ASan/非 ASan 切换需 --rebuild-includes TermiNexus 2026-08-21 14:08:37 +08:00
  • 004121de40 feat(mcp): 实现 transpyc_mcp 服务器——stdio JSON-RPC 驱动 TPC/TPV TermiNexus 2026-08-21 14:05:36 +08:00
  • e412885a3e docs(mcp): 新增 MCP 协议规范——规定如何通过 MCP 操作 TPV 与 TPC TermiNexus 2026-08-21 14:00:43 +08:00
  • ff7c0457ad feat(coro): M2——async 参数/嵌套 await 表达式/If-While 控制流 TermiNexus 2026-08-21 13:31:37 +08:00
  • a775ec9932 fix(coro): 帧结构体定义输出到 IR,修复 GEP base element must be sized TermiNexus 2026-08-21 12:41:10 +08:00
  • 13a8f6c1b6 feat(coro): 语言内协程 M1——async def + await + coro_run 状态机 TermiNexus 2026-08-21 12:36:00 +08:00
  • 12207e91d8 fix(phase2): 并行编译 worker 数按可用内存动态限制,修复内存不足 OOM TermiNexus 2026-08-21 09:02:39 +08:00
  • e37cdf2eb0 docs(TODO): 记录 Mixin 方法直接调用合法性静态检查待办 TermiNexus 2026-08-21 01:30:25 +08:00
  • 8a0da29461 fix(exprcall): 兄弟 Mixin 兜底按调用类是否声明该方法过滤,修复 NoVTable 回归 TermiNexus 2026-08-21 01:26:19 +08:00
  • f703fdaf23 test(NoVTableCrossMixinTest): 扩展三段式覆盖——多级 Mixin 链 + 第二父类 this_adjust TermiNexus 2026-08-21 01:16:32 +08:00
  • 780cd4a13b fix(exprcall): 兄弟 Mixin 兜底仅对组合类父类启用——防误绑 HashTable 方法 TermiNexus 2026-08-20 17:08:14 +08:00
  • 51c0e026f4 fix(includes): 链式 GSList.append 改局部变量写法,避免方法解析错位写穿内存 TermiNexus 2026-08-20 16:45:19 +08:00
  • d698fad162 fix(TPC): 泛型基础类型字段访问特化,修复 GSList.Head 返回泛型占位 T* TermiNexus 2026-08-20 15:35:21 +08:00
  • 3fd875daca fix(exprcall): 兄弟 Mixin 兜底过滤泛型特化类名——防误绑定 list 特化函数 TermiNexus 2026-08-20 11:27:13 +08:00
  • f2cdbdc70f fix(exprlen): 剥离 sha1 前缀修复 len() 分派失效 TermiNexus 2026-08-20 10:28:29 +08:00
  • bd5d2467ab fix(exprcall): NoVTable 跨 Mixin self. 调用按定义类解析 + this 前移 TermiNexus 2026-08-20 10:23:47 +08:00
  • 015d5c38ea fix(global): external 声明升级用 initializer 判空(llvmlite.ir 无 is_declaration 属性) TermiNexus 2026-08-20 07:53:33 +08:00
  • c904fac54d fix(global): import 注入的 external 全局声明遇本模块定义时升级为 common TermiNexus 2026-08-20 07:46:36 +08:00
  • 485ab0d329 docs(todo): 记录 list[ptr].append 运行期读零页崩溃待查 TermiNexus 2026-08-19 23:35:12 +08:00
  • c02f7dbaf1 fix(gentype): _HandleSizeofLlvm 的 CType.POINTER 改 t.CType.POINTER TermiNexus 2026-08-19 22:52:49 +08:00
  • 6ff76f3cb6 fix(gentype): t.CPtr.__sizeof__() 返回 8 修复 list[CPtr] elem_size=0 TermiNexus 2026-08-19 22:49:37 +08:00
  • 2f0d52e736 fix(gentype): list[t.CPtr] 特化与 list[对象] elem_size 根本修复 TermiNexus 2026-08-19 22:44:15 +08:00
  • e82640ac94 fix(gentype): c.Deref 类型推断支持转换包裹与联合全 side TermiNexus 2026-08-19 21:14:13 +08:00
  • 0db1ccd1bb refactor(asan): TPC_ASAN 环境变量改 args 直传 TermiNexus 2026-08-19 08:47:32 +08:00
  • e83c06041a fix(ast): 解析器支持括号内行首运算符跨行续接 TermiNexus 2026-08-19 06:52:20 +08:00
  • 197a7f3314 test: 新增 ThreadingTest vthreading 专项测试 TermiNexus 2026-08-19 06:42:32 +08:00
  • 73e5eea3f0 fix(llvmlite): create_block 块名与参数名冲突去重 TermiNexus 2026-08-19 05:54:11 +08:00
  • 915054495f fix(ast): 补齐 exprs 字段访问辅助函数 re-export TermiNexus 2026-08-19 05:26:26 +08:00
  • 5cda173a5e fix(ast): re-export attribute_get_attr 修复跨模块返回类型解析失败 TermiNexus 2026-08-19 05:18:41 +08:00
  • 267e9881b4 perf(structgen): finalize 特殊字符 struct 名加引号合并为单次 re.sub TermiNexus 2026-08-19 00:32:21 +08:00
  • fbd132284b perf(phase2): 按 PROF 热点优化编译耗时 TermiNexus 2026-08-19 00:28:40 +08:00
  • 1808e90fd3 feat(projectrans): 主进程 PROF 自动落盘 + 编译耗时统计 + 分析脚本升级 TermiNexus 2026-08-19 00:28:18 +08:00
  • bdc5ec3e88 fix(HandlesImports): 跨模块展平父类无条件 force 重载,消除并行 worker 布局不确定 TermiNexus 2026-08-18 14:38:06 +08:00