Commit Graph
10 Commits
Author SHA1 Message Date
TermiNexus 9d3483e97e refactor: 全面 fail-fast 化(去兜底)+ 泛型补译/解引用宽度修复
- 全量降级点改 fail-fast:23 文件约 140+ 处静默 i32/i8*/void/continue 兜底改为 HandlesType.fatal_error(python traceback 风格)或 VLogger.error 终止,暴露上游根因;保留语言语义默认(无注解 i32/infer 链/CIf/star 回退)
- 泛型特化 Phase B 补译 reemit 强制发射方法体(修复 list[...] define 缺失)
- c.Deref 读取宽度仅按赋值直接 RHS 推断(修复 CurAssignAnnot 残留误判 i32)
- 类型别名清理:t.CChar|t.CPtr→str、t.CInt→int 等
2026-08-13 02:11:49 +08:00
TermiNexus ba3f22702e refactor(gen): P5 对象化迁移完成 - FuncGenMixin/ClassGenMixin 全量迁移+委托层; 泛型模板表迁入 gen 字段; stub 方法 ParamCount 不含 self(修复跨模块方法调用默认参数填充错位); 默认参数快照失败 fail-fast(防悬空 AST UAF); HandlesMatch 改委托 gen._lookup_renum_variant 2026-08-10 06:24:50 +08:00
TermiNexus e5a99abb63 fix(handles): 本轮修复集 - StructTest/TypeCastTest/StringIterTest/va_list
- t.Struct 纳入标记基类: 消除幻影父类虚假 vtable + Phase A-pre 延迟注册, 修复 point_sum 参数退化为 i32(签名与函数体 Ptr 不一致, llc 报错)
- 指针算术改 GEP 元素缩放(对齐 TPC): ptrtoint+add 字节语义致 i32*/struct* 偏移错误(StringIterTest Test4/8)
- 右移按操作数符号性选 lshr/ashr + t.XXX 注解 AnnotClassName 提取 attr + _node_type_unsigned Name 分支查变量无符号性(TypeCastTest)
- 显式类型转换按符号性 sext/zext; _call_method_on_ptr 传 node 修复 line 0 报错; __getitem__/__setitem__ stub 守卫 + 结构体字段 bitcast 条件化
- va_list 24 字节对齐 + build_alloca_aligned; CIf 运行时回退(CIf 真值/CIfdef 恒真); parse traceback; builtins 关联
2026-08-09 03:39:26 +08:00
TermiNexus 57d6ffefad fix(TPV): c.Set 实现赋值语义 a=b(三形态: c.Deref左值/Name/Attribute), 修复 undefined reference to Set; 函数默认返回/裸return按返回类型生成浮点零值(ConstFloat 0.0, 修复 llc value doesn't match) 2026-08-08 21:35:59 +08:00
TermiNexus 3a6296d638 fix(compiler): 支持裸名 float/double 映射 + 前向声明时序 + 类型解析 fast-fail traceback
- resolve_annotation_type Name 分支与 map_t_type 补小写 float(→f32)/double(→f64),
  float(0.0) 转换原误映射 f64 改为 f32(vipermath fmodf result: float 修复)
- forward_declare_functions 解析签名期间临时切 declare_only=1,
  签名触发的泛型特化只注册结构体,方法体延迟补译(numpy _empty_like 前向引用修复)
- HandlesAnnAssign 变量类型注解解析失败改 fatal_error(Python traceback)
- c.LLVMIR 未识别指令改 fatal_error 立即终止(原静默返回 None)
2026-08-08 15:59:08 +08:00
TermiNexus e0303c46f6 fix(compiler): 裸类形参按引用传参 + 同名类优先本模块 + 裸名泛型构造/类型参数转换
- 裸类形参(方法+函数)解析为 Ptr(struct),修复 GSList[T].append 按值传参悬垂(G5 Test4 head.Value 读到垃圾)

- resolve_annotation_type 裸类名优先 find_struct_by_module 命中本模块,避免跨模块同名类(main.vp G5Node vs g5container.vp)类型混用

- translate_call 新增裸名泛型类模板构造:Box(42)→从实参推断→特化→构造(GenericTest Test4/5/10、GenericTest2 Stack/Range 等)

- 类型转换路径先 resolve_generic_type_name:类特化/泛型函数中的 T(x) 解析为 int/str/bool/double 转换

- 泛型函数翻译时设泛型上下文 T→int(TPV 泛型函数按普通 i32 函数编译,退出作用域前清除)
2026-08-08 11:54:32 +08:00
TermiNexus 8ad500c4da 基本稳定可以编译 Test 2026-08-05 20:12:08 +08:00
TermiNexus a3b9bdc409 修正了逻辑,使 TPV 可以编译 Test,但自举还有一段距离 2026-08-03 02:01:20 +08:00
TermiNexus bfb55d68f4 取消了 i8* == i8* 实际使用 strcmp 的规则,修复了诸多 Bug 2026-07-30 21:56:19 +08:00
TermiNexus d227bee139 将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名 2026-07-30 16:34:50 +08:00