Commit Graph

  • 3384941cd1 chore: 改名同步 TransPyV -> ViperC(源码/配置内的纯替换) TermiNexus 2026-10-12 15:06:28 +08:00
  • d0c7b9c77c chore: 改名同步 TransPyV -> ViperC(.gitignore/文档/脚本) TermiNexus 2026-10-12 15:02:13 +08:00
  • 9b93586eec docs: README 随改名同步(ViperC/viperc.exe/__vpcbuild__)并纠正过时内容 TermiNexus 2026-10-12 14:48:47 +08:00
  • 023a22af08 chore: 工程改名 TransPyV -> ViperC(输出 viperc.exe,构建目录 __vpcbuild__) TermiNexus 2026-10-12 14:28:52 +08:00
  • 4e46a25ab1 fix(gen): define 位宽/整数提升/移位/AugAssign 规则收敛,修 va_list 与 traceback 卡死 TermiNexus 2026-10-12 12:37:48 +08:00
  • be4db7b5d1 fix(narrow): StmtGenMixin exc_code 显式 int(cst_r.int_val) TermiNexus 2026-10-11 10:07:37 +08:00
  • 985983391b fix(narrow): ClassGenBase 方法元数据指针声明 int* 而非 t.CPtr TermiNexus 2026-10-11 10:04:19 +08:00
  • 3b9deb08d8 fix(narrow): ClassGenEnum RenumClassVariantCounts 元素读取改用 int(...) TermiNexus 2026-10-11 10:00:05 +08:00
  • 7468b007f7 fix(narrow): ClassGenEnum pos_max 加宽为 sizet TermiNexus 2026-10-11 09:54:18 +08:00
  • 3c0d3d13b5 fix(narrow): 清理注解式整数窄化(Converter/TypeGenCType/CallGenLeafKit/ClassGenEnum) TermiNexus 2026-10-11 09:51:08 +08:00
  • 966fc3b8f5 fix(narrow): BuildPipeline.ensure_dir 消除隐式窄化(int(path_len) / char(saved)) TermiNexus 2026-10-11 09:42:39 +08:00
  • 77f4a25055 fix(narrow): CallGenFd 的 fd_can 改用 int(len(...)) 消除 64->32 隐式窄化 TermiNexus 2026-10-11 09:38:24 +08:00
  • 82ad5da7c7 fix(narrow): len() 结果赋给 int 的形参/默认值计数改用显式 int(...) TermiNexus 2026-10-11 09:34:43 +08:00
  • d023e9932d fix(narrow): StructGenMixin 守卫候选与归纳区间常量改用 int64,消除 64->32 隐式窄化 TermiNexus 2026-10-10 22:20:47 +08:00
  • 41772b4a0c refactor(narrow): 撤销 File.write 实参多余的 ULONG(...) 显式窄化 TermiNexus 2026-10-10 22:15:49 +08:00
  • 58951a29a8 fix(narrow): File.write 长度实参加显式 ULONG(...)(避免 64→32 隐式窄化) TermiNexus 2026-10-10 22:10:01 +08:00
  • 5bb6538703 feat(types): 禁止隐式窄化(整数 高→低);_tb_read_whole 容量改 sizet TermiNexus 2026-10-10 21:57:18 +08:00
  • 9db3748f68 feat(gen): main 内栈逃逸检查整体豁免(收窄为结构体指针不再采用) TermiNexus 2026-10-10 14:46:45 +08:00
  • 87e0bce5ee feat(gen): 入口 main 内豁免栈上结构体指针的逃逸检查 TermiNexus 2026-10-10 14:45:07 +08:00
  • 034293df59 fix(gen): freed_restore/freed_join/freed_capture 补 global 声明,修复野写崩溃 TermiNexus 2026-10-10 14:27:00 +08:00
  • eea8111e61 fix(gen): willFree 失效槽表补控制流合流,修复分支内 free 泄漏导致的误报 TermiNexus 2026-10-10 14:10:53 +08:00
  • f2cbb658e1 fix(stubgen): vpi 落盘入口统一重建文件级名字窗口,修复 FileFuncNames 悬垂野读崩溃 TermiNexus 2026-10-10 14:00:41 +08:00
  • c1d3f62bf0 fix(gen): ret(borrows=...) 支持 0 起序号写法(原来只认形参名) TermiNexus 2026-10-10 13:27:24 +08:00
  • 5ec75b2d38 fix(gen): 模块限定函数调用的 ret(borrows=x) 形参位映射错位(A2 跨模块静默失效) TermiNexus 2026-10-10 13:00:51 +08:00
  • 1784eaf906 fix(gen): _WillFreeMergeTag 置位判据写反(is_wf != 0 → == 0),P2 willFree 全面漏检 TermiNexus 2026-10-10 11:55:57 +08:00
  • 948e1855a6 fix(gen): 跨模块 vpi 查询只在加载成功时记"已加载"备忘(修漏检回归) TermiNexus 2026-10-10 11:25:43 +08:00
  • a3a627f513 fix(gen): lambda 返回类型完全跟随 body(整数也跟随,不再一律 i32) TermiNexus 2026-10-10 10:46:51 +08:00
  • ea57986312 fix(gen): lambda 提升函数按 body 类型修正返回类型(原先恒 i32) TermiNexus 2026-10-10 10:44:07 +08:00
  • 5d1e604aac fix(gen): 嵌套 def 的返回类型跟随 -> T 注解(原先写死 i32) TermiNexus 2026-10-10 10:40:36 +08:00
  • 41674d125c fix(gen): 修 vpi 生成阶段 is_file_func 读到已回收池的悬垂表(ASan 野读崩溃) TermiNexus 2026-10-10 09:41:15 +08:00
  • 79d1c86982 fix(gen): return 本帧存储改为声明感知 fail-fast(A2 方案 A) TermiNexus 2026-10-10 09:16:26 +08:00
  • 6da8e2e095 feat(gen): 落地 @life(ret(...)) 返回值生命期契约(A2) TermiNexus 2026-10-09 22:58:33 +08:00
  • 4907e64714 feat(lifetime): _g_new_life 透传——new stack/slife 的构造也算 FRAME(参与构造器同命裁剪) TermiNexus 2026-10-09 22:43:43 +08:00
  • 953c829e9f feat(lifetime): 构造器路径填 recv_life——裸 T() 构造(入口块 alloca)算 FRAME TermiNexus 2026-10-09 22:40:30 +08:00
  • 357a8bba05 feat(lifetime): 构造器路径同命裁剪的透传管道(recv_life,默认 -1 = 现状不变) TermiNexus 2026-10-09 22:36:09 +08:00
  • bf5ecd7668 fix(lifetime): 方法路径补上"同命裁剪"(此前缺失)—— h.set_q(l) 不该报 TermiNexus 2026-10-09 22:30:35 +08:00
  • 6000734704 feat(life): A1——@life 新增 stores(x)/borrows(x)(复用 escape/noescape 契约位);ret/owns 显式报未实现 TermiNexus 2026-10-09 22:14:26 +08:00
  • 71730d920c chore(dbg): 删除 NLL 临时诊断(§13 已在 EscapeTest 上验证通过) TermiNexus 2026-10-09 21:59:48 +08:00
  • 0f504a9010 chore(dbg): 给 NLL 谓词插桩([NLL-ST] 逐条语句 + [NLL-UNSAFE]/[NLL-MENTION] 拒绝原因),定位后删除 TermiNexus 2026-10-09 21:53:44 +08:00
  • 960ecdfd74 fix(nll): 补 BoolOp/Compare 的字段递归(if 1==0 or a == 1 曾把整条判据否掉) TermiNexus 2026-10-09 21:34:17 +08:00
  • 5a10a2ea10 fix(nll): 谓词改为按字段显式递归(AST 表达式节点不填 children,导致 new stack [2]char 被误判"提及") TermiNexus 2026-10-09 21:23:51 +08:00
  • e82e2ac768 chore(dbg): 加 NLL 判定链临时诊断([NLL-DBG]),定位后删除 TermiNexus 2026-10-09 21:05:31 +08:00
  • 337be883d3 fix(nll): Attribute 节点显式只递归 .value,避免"拿不到子树=算提及"把 stdio.printf(...) 误判成不安全 TermiNexus 2026-10-09 20:57:31 +08:00
  • d0ffb094c2 feat(lifetime): §13 NLL——默认生命期的 new heap 证明帧内封闭时降级为帧对象 TermiNexus 2026-10-09 20:49:21 +08:00
  • 79299ec47d feat(lifetime): 声明式指令契约落 .vpi(esce=/escn=),跨模块调用点也能最终裁决 TermiNexus 2026-10-09 20:40:30 +08:00
  • 2bd37e80e3 feat(lifetime): 方法/构造器调用点也接 @life(escape/noescape) 最终裁决 TermiNexus 2026-10-09 20:34:34 +08:00
  • fc7c5d5560 feat(lifetime): @life(escape/noescape) 升为调用点最终裁决(契约不可被推断推翻) TermiNexus 2026-10-09 20:30:03 +08:00
  • 8881dea2e2 fix(diag): 泄漏点采集改为"确认报错后才跑",并保存/恢复扫描期状态 TermiNexus 2026-10-09 19:50:31 +08:00
  • 2353dca8ec feat(diag): 逃逸类 LifetimeError 追加 File lifetime leak 帧,标出泄漏点 TermiNexus 2026-10-09 19:32:54 +08:00
  • c98730f717 refactor(diag): 精简 LifetimeError 报错词,去掉冗长从句 TermiNexus 2026-10-09 19:22:04 +08:00
  • 007943142a fix(diag): DiagEntry.File 改名 FileName,避开与 fileio.File 的非限定名相撞 TermiNexus 2026-10-09 19:12:10 +08:00
  • 6769cf0335 refactor(diag): 编译期 traceback 抽为 Diag 模块,单条诊断携带完整调用链 TermiNexus 2026-10-09 18:45:06 +08:00
  • c791bd5e46 feat(new): new 支持标量/数组与前导 [N]T;类名解析不出时回落基本类型路径 TermiNexus 2026-10-09 18:45:01 +08:00
  • fc797da542 feat(lifetime): @life(escape/noescape) 多形参、硬逃逸位同命精化、归纳变量区间与跨模块常量特化 TermiNexus 2026-10-09 18:44:51 +08:00
  • 14a8dcb98b feat(gen): new 支持基本类型 + 跨过程常量特化重算逃逸摘要 TermiNexus 2026-10-09 14:55:28 +08:00
  • ab30b264fc feat(gen): P3 覆盖注解形态的属性/下标目标 TermiNexus 2026-10-09 14:55:10 +08:00
  • d926987d44 chore(dbg): 清除 P4 转移分支的逐点探针 TermiNexus 2026-10-09 13:04:40 +08:00
  • eb0c3dfd31 fix(gen): slife 登记表改为跨文件存活,并修正区间弹回 TermiNexus 2026-10-09 13:04:26 +08:00
  • 1a3ef521b3 chore(dbg): P4 转移分支逐点探针(owned/begin/ensured/drop.begin/dropped) TermiNexus 2026-10-09 12:43:59 +08:00
  • aeb396831a chore(dbg): 清除 CallGenMixin 残留的 call.enter 探针 TermiNexus 2026-10-09 12:43:28 +08:00
  • 6758ecbf69 chore(dbg): 清除最后一处 TEMP 探针(AssignGenMixin slife.note) TermiNexus 2026-10-09 12:03:43 +08:00
  • 5f92abb7bc fix(gen): 补回 CallGenMixin 的 _FreedMark(修行尾时被 checkout 回滚) TermiNexus 2026-10-09 12:03:23 +08:00
  • dd24dc670f fix(gen): P2 失效状态改存独立槽表,不再给 VarEntry 加字段 TermiNexus 2026-10-09 11:51:11 +08:00
  • 95b076581a chore(dbg): pre-scan 与 _SlifeReset 之间补 p1d 探针(TEMP) TermiNexus 2026-10-09 11:30:33 +08:00
  • 054dcf0a0b chore(dbg): 形参注册与 pre-scan 之间补 p1c 探针(TEMP) TermiNexus 2026-10-09 11:24:29 +08:00
  • 07ff906338 chore(dbg): add_var 逐行探针 a1..a8(TEMP) TermiNexus 2026-10-09 11:12:31 +08:00
  • a2e1c651fc fix(gen): 变量表 Freed 不再逐个字段写,统一依赖 init_vars 的整块清零 TermiNexus 2026-10-09 11:01:08 +08:00
  • 9b97470c09 chore(dbg): 函数翻译内段探针 p1/p2/p3 TermiNexus 2026-10-09 10:44:56 +08:00
  • 20e3f3694f chore(dbg): 补语句级与调用级探针(stmt.kind / call.enter fn) TermiNexus 2026-10-09 10:39:24 +08:00
  • 400cc6e17b chore(dbg): 再加两个探针(函数名 / slife 赋值 rhs kind) TermiNexus 2026-10-09 10:19:29 +08:00
  • be2521fe46 chore(dbg): 临时阶段日志定位 Phase A 崩溃点(定位后移除) TermiNexus 2026-10-09 10:08:43 +08:00
  • 8b63ae4ca2 fix(gen): 模块前言的声明池逐级判空,避免 PermPool 未就绪时空指针崩溃 TermiNexus 2026-10-09 09:45:36 +08:00
  • b71ed43f10 feat(gen): P5 slife 登记表容量提到 256,超限 fail-fast TermiNexus 2026-10-09 08:46:24 +08:00
  • efb4a54428 fix(gen): P4 自别名重复赋值不得释放共持对象 TermiNexus 2026-10-09 08:45:09 +08:00
  • 3209a7a633 feat(gen): P4 别名赋值改为所有权转移(影子标志从源槽移到目标槽) TermiNexus 2026-10-09 08:43:48 +08:00
  • 301a9d3328 feat(gen): P3 左值比右值长命时禁止写入本帧栈地址 TermiNexus 2026-10-08 22:47:28 +08:00
  • 2b5ff215c7 fix(gen): 跨模块裸名 CExport/State 函数不再被误清,关键字实参不解析时 fail-fast TermiNexus 2026-10-08 22:38:28 +08:00
  • 8b2008031d fix(gen): 模块前言 C 库声明名改落 PermPool,避免被回绕的模块池覆盖 TermiNexus 2026-10-08 22:30:07 +08:00
  • 8fb0e38f4c fix(gen): 泛型类构造只在真有 __init__ 时才调 __before_init__/__init__ TermiNexus 2026-10-08 22:16:23 +08:00
  • c02aa3a2eb fix(gen): @life/@willFree 不再被当作运行时装饰器 TermiNexus 2026-10-08 21:43:47 +08:00
  • b60ce06335 feat(gen): willFree 覆盖关键字实参、方法调用与取地址三条路径 TermiNexus 2026-10-08 21:39:53 +08:00
  • d921dcd9e7 fix(gen): willFree 形参表访问先转 Arguments*,修复 TPC 侧 MemberLookupFailFast TermiNexus 2026-10-08 21:34:14 +08:00
  • 97313e9e55 feat(gen): P2 生命期标注 @life(willFree(...)) 驱动释放后使用与二次释放检查 TermiNexus 2026-10-08 21:28:49 +08:00
  • 9ff5a3a03e fix(gen): 泛型类构造复用 new 描述符存储,并支持泛型下标 callee TermiNexus 2026-10-08 21:04:41 +08:00
  • b6a9b50f93 fix(gen): 异常与传播出口也释放 slife(P1) TermiNexus 2026-10-08 21:04:33 +08:00
  • 70390858d8 feat(gen): 协程体里的 new heap slife fail-fast(释放点无法确定) TermiNexus 2026-10-08 20:42:09 +08:00
  • 2178970ff7 feat(gen): slife 释放前调度析构 __del__,并禁止手动 del(§3.6 落地) TermiNexus 2026-10-08 20:34:11 +08:00
  • 78b2052445 feat(gen): 接线 M3 owned slife 的 RAII 出口释放(函数级 scope guard) TermiNexus 2026-10-08 20:03:54 +08:00
  • 934708b206 fix(type): 数组退让豁免提到级数检查之前,修 [N]str 形参被误判 CastError TermiNexus 2026-10-08 20:03:42 +08:00
  • 1dd53ebff5 feat(gen): M3 owned slife 登记机制(函数级 scope guard 的底座) TermiNexus 2026-10-08 18:41:52 +08:00
  • 09b5bf5ac3 docs(gen): _translate_new_expr 注明缺省规则(stack 默认 slife) TermiNexus 2026-10-08 18:21:00 +08:00
  • 9e55e909a8 feat(gen): LifeTag 接到 new 描述符;vpi 文本缓存收敛为单一入口 TermiNexus 2026-10-08 18:19:15 +08:00
  • 8a98051759 fix(gen): new 的分配尺寸常量改用 const_int64,修 mlir-opt 校验失败 TermiNexus 2026-10-08 18:18:03 +08:00
  • c77d38e923 fix(gen): new heap/memgr 的尺寸改用 ClassGenEnum._get_type_size,修结构体报 cannot determine the size TermiNexus 2026-10-08 18:07:28 +08:00
  • 14920c0e1e fix(vpi): 逃逸摘要在所有 vpi 加载点都喂缓存,修 EscapeXmodTest 跨模块漏检 TermiNexus 2026-10-08 17:58:07 +08:00
  • 64502471e1 feat(gen): M2.4 new 描述符语义落地(stack/heap/memgr 三来源) TermiNexus 2026-10-08 17:45:39 +08:00
  • cd68bb62ac feat(gen): M2.3 v3 跨模块逃逸摘要 + 全局赋值判据双保险 TermiNexus 2026-10-08 17:28:06 +08:00
  • 9f98e683a9 feat(gen): M2.3 覆盖面扩展——类方法与嵌套函数的逃逸摘要 TermiNexus 2026-10-08 16:55:34 +08:00
  • b03e55bb7e fix(gen): 类归属不采信星号导入候选,收口 fatal_error 返回类型与默认值补全 TermiNexus 2026-10-08 16:38:35 +08:00
  • 1fb0f4a4ea feat(gen): 逃逸摘要传递闭包(M2.3 v2) TermiNexus 2026-10-08 13:47:54 +08:00