Commit Graph
37 Commits
Author SHA1 Message Date
TermiNexus 50795b63f1 chore: 更新 TODO/toast 脚本/IsinstanceTest 测试源 2026-08-14 04:02:27 +08:00
TermiNexus 2c7f563dda test(generic): GenericOopTest 补字段注解并改用 int 实例化
- 补 A/Pair/Calculator/Container 字段注解触发字段拦截验证
- calc2 改 Calculator(2),适配 TPV 泛型函数 int-only 限制
2026-08-13 17:32:00 +08:00
TermiNexus 74d32a166c chore: 清理测试源码 DBG 插桩,.gitignore 忽略 wiki 目录
AstTest/LLvmLiteTest/SysLibTest 移除定位阶段残留的 printf/testcheck 插桩
(DBG1-DBG14),SlotsBugTest 空行清理;.gitignore 追加 /wiki/,TODO 更新。
2026-08-13 07:51:56 +08:00
TermiNexus 921820b26a chore: 纳入 toast 脚本、Sequential 回归测试与诊断产物文件
_toast_gen.py(完成通知 toast 脚本)、Test/SequentialRegressionTest.py
(TPV bootstrap 回归测试脚本)、handles_expr_HEAD.vp 与 output.s
(历史诊断/反汇编产物)入库保存。
2026-08-13 07:51:33 +08:00
TermiNexus 4c39db17c6 fix(project): 适配 lld 链接器(clang 22 环境)
- 移除 -Wl,--unresolved-symbols=ignore-in-object-files(GNU ld 专用,lld 报 unknown argument)
- 移除 -latomic(clang64 无 libatomic;x86_64 原子均 lock-free)
- 保留 -Wl,--allow-multiple-definition(lld 支持)
- 47 个 Test project.json 统一更新
2026-08-12 21:45:41 +08:00
TermiNexus 99bf970452 test(ForAndLoopTest): 去除 fakeduck 依赖,list 改用 list[T](bd)+append 构造
移除 str.split/__mbuddy__ 魔法字段扩展依赖,zip/enumerate 输入改为
list[str](bd)+append 构造;保留纯 TPV 内置迭代测试(range/str/zip/enumerate)
2026-08-11 22:10:15 +08:00
TermiNexus f047f90a72 docs(test): 新增 TestsOverview.md 测试总览(按实现难度排序)
68 个测试项目一览 + 8 层实现顺序 + 主题分组索引
2026-08-11 21:21:52 +08:00
TermiNexus 4f59396d5c test(CPythonTest): PyLong_FromLong/AsLong 按 Windows LLP64 long=32 位改用 t.CInt
TPV 恒映射 t.CLong=i64,而 Windows x64 下 C long 为 32 位:PyLong_AsLong
实际返回 EAX 32 位,按 i64 读负数被零扩展(-999 → 4294966297)导致
比较 FAIL;改用 t.CInt(i32)与 ABI 一致,负数由赋值处 sext 正确扩展
2026-08-11 18:42:34 +08:00
TermiNexus f3b16c397c test: AstTest Stmt/Expr 运行时区分测试 + BuddyTest CANARY 断言修正
AstTest main.vp 新增 classify_print/classify_list 递归遍历 parse 树,用 isinstance(vtable 子类集合比较) 区分 STMT/EXPR/OTHER 并附 5 项断言;BuddyTest mbuddytest.vp 按 alloc needed=size+16(8 头+8 哨兵)修正 max_usable 与最小块断言。
2026-08-11 01:34:10 +08:00
TermiNexus a941179826 test: 新增 SuperTest 专项测试 + 删除 TpvIsinstanceTest
- Test/SuperTest:super() 语义 9 断言(构造链/静态绑定/三层继承/MRO)
- TpvIsinstanceTest 移除(isinstance 回归统一用 IsinstanceTest)
2026-08-10 21:48:41 +08:00
TermiNexus 9c2dc45c03 fix(Translator): 类体 CDefine 预扫描扩展 + CDefine 类型修复(i32)
- GenerateLlvmDirect 预扫描扩展到类体 AnnAssign,注册类体 CDefine 常量
  (方法内裸名如 ISINSTANCE_CLASS_MAX 不再解析为 0)
- t.py CDefine Size/IsSigned 覆盖为 32 位有符号,修复 stub 生成 void 类型
- 新增 Test/TpvIsinstanceTest(TPV 侧 isinstance 回归测试)
2026-08-10 21:15:42 +08:00
TermiNexus 1b89225130 feat(TPC): 拓展 isinstance 跨模块支持
vtable linkage 改默认外部强定义(含 initializer 自动归一为空),跨模块可引用 sha1.Class_Vtable;外部引用声明为 i8* 避免 array 类型不匹配;_ResolveVtableAddr 增加 CVTable 状态检查,NoVTable 类回退编译时静态判断避免坏引用。新增 geom_lib.vp 跨模块测试库,main.vp 增加跨模块继承/运行时多态/NoVTable 场景。
2026-08-10 19:16:27 +08:00
TermiNexus 8783340385 feat(TPC): 实现 isinstance 内建 + 多继承 this_adjust 字节偏移修复
isinstance 沿 class_parents 反向 BFS 收集目标类全部子类 vtable,运行时比较对象头部 vtable 指针,修复"目标是实际类祖先"场景误判;this_adjust 改用字节偏移(字段在子类与父类自身布局的字节差)修正第二父类方法体内二次 GEP 越界读。新增 Test/IsinstanceTest 覆盖 5 大场景 14 断言。
2026-08-10 19:11:18 +08:00
TermiNexus f6f8c4183c test: 新增 MultiInheritTest 多继承专项测试 + wiki 方案
4 组用例: 字段合并 C(A,B) / 菱形去重最左优先(Diamond) /
虚方法 vtable 多继承(ColoredCircle) / 运算符重载 MRO 链(Vec2Both)。
wiki/15-multiple-inheritance.md: Viper 多继承方案(M1-M6)设计文档。
2026-08-10 00:29:13 +08:00
TermiNexus e1cb560df0 test: 对象化前的最后稳定版本
- OopInheritTest 全部类补类体字段声明(x/y/r/w/h/health/battery 等), 保证父类字段展平与 GEP 偏移正确
- 多个测试适配 i8* 指针比较语义(== 指针地址比较改 string.strcmp)
- 删除 ZlibTest/__zlib 旧实现与 find.py 调试脚本
- 更新 TODO 与 TestProject
2026-08-09 22:19:29 +08:00
TermiNexus cd1f662e17 test: 删除 TestProject/2/3 聚合项目(已拆分覆盖); HashLibTest 并入 binascii/base64/hashlib 全套测试 2026-08-09 20:02:57 +08:00
TermiNexus 19214c269c test: ZlibTest 移除 __zlib 改用标准 zlib 库; test_pyzlib 迁移 App/ 并适配 pool 参数, 裸内存调用改 string./stdlib. 命名空间, 修复同名变量覆盖 2026-08-09 20:02:52 +08:00
TermiNexus d4abdd4042 test: 新增 ExpandKeywordsTest(fn/fun/func/function 专项); test_zlib 打印条件修复; WebTest 补 global 声明 2026-08-09 17:10:38 +08:00
TermiNexus dd5a639437 test: 拆分独立 OopInheritTest(OOP继承/虚方法/运算符重载/多层继承), GenericOopTest 精简为纯泛型 2026-08-09 16:59:05 +08:00
TermiNexus 6644d6ce3b test: TestProject/2/3 拆分为 10 个具体测试项目; ZlibTest 并入标准 zlib 库
新项目(各含 project.json + App/main.vp):
- LoopMathTest/LogicFlowTest/ClassArrayTest/NumpyTest (原 TestProject)
- HashLibTest (原 TestProject2 去 zlib)
- GenericOopTest/EnumTest/MpoolOopTest/VectorGenericTest/FileIoTest (原 TestProject3)
ZlibTest 增加"标准 zlib 库(zlib.pyzlib)" section 与 __zlib 并存验证。
2026-08-09 04:06:26 +08:00
TermiNexus 61f07d4f9b test: 新增 DefineTest 独立宏测试项目 + SprintfTest 多整数变参复现
- DefineTest: 从 TestProject3/definetest.vp 提取为独立项目(CDefine/c.CIf/c.CIfdef/c.CIfndef/platmacro, testcheck 分节), TestProject3 移除 definetest 引用
- SprintfTest: 增加 multi-int varargs repro R1-R4(带 check), 复现 viperlib.snprintf 第 2+ 个 int 变参读垃圾(va_arg 8 字节槽位 vs 调用点 i32 未扩展)
2026-08-09 03:39:33 +08:00
TermiNexus 9ee519e998 fix(includes): 修复浮点常量精度截断与 viperlib %g 小数反转 - ConstFloat 浮点常量文本改 %.17e(全精度+LLVM合法语法, 修复 %e 6位小数截断致 llc 值错与 %.17g 裸整数报错); viperlib %g 小数位改逆序存储(原三变量交换循环在 TPV 编译产物中失效, 小数位反转 456->654); SprintfTest 增加 %g 诊断用例 T1-T10 2026-08-08 20:38:25 +08:00
TermiNexus 29b18af60c refactor(includes): vipersimd c.LLVMIR 改 LOut 模式 + 文档同步新语义
vipersimd.vp 16 处 simd_* 数学 intrinsic 改 c.LLVMIR(f"{c.LOut(out)} = call ...")
+ return out 模式;TestFBProject 2 处同步;c.py stub 与 wiki 文档
更新为"无返回值直接嵌入原始 IR 文本"语义。
2026-08-08 16:10:36 +08:00
TermiNexus acc126ce0c 基本稳定 2026-08-07 19:35:20 +08:00
TermiNexus 752f3ddb70 修正了部分实现 2026-08-06 19:50:18 +08:00
TermiNexus 2071486168 相对稳定版本 2026-08-06 18:04:12 +08:00
TermiNexus 4e17365b76 修正了 args 传参问题 2026-07-31 17:15:54 +08:00
TermiNexus cfc30d735c 将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名 2026-07-30 16:33:56 +08:00
TermiNexus 1837339f69 修正了一些错误 2026-07-26 20:32:26 +08:00
TermiNexus ca7c2120b8 修正了种子编译器的错误 2026-07-22 21:55:36 +08:00
TermiNexus 135aa05485 尝试进行 Qt 测试,增加了 AI 人机调试工具 _console,以及 TransPyV 进行修正 2026-07-21 14:41:22 +08:00
TermiNexus a277ded8d4 修正了 TPC 的一些错误,包括 Test 维护后 TPV 无法重新编译或重编译后越界的部分问题 2026-07-20 11:12:30 +08:00
TermiNexus 0c6339ca5e 调整了上传规则 2026-07-19 11:44:01 +08:00
TermiNexus 639f418530 清理了部分垃圾 2026-07-19 11:42:41 +08:00
TermiNexus 7a8a3646db 重置上传,新增了多个标准库,开始 TransPyV 自举实验 2026-07-19 11:39:02 +08:00
TermiNexus 4e66207ba1 重置上传,新增了多个标准库,开始 TransPyV 自举实验 2026-07-19 11:38:15 +08:00
t 796222a300 snapshot before regression test 2026-07-18 19:25:40 +08:00