Commit Graph
41 Commits
Author SHA1 Message Date
TermiNexus 2b074dfb48 fix(llvmlite): Struct name 参数默认 None;移除 GEP 降级 printf
Struct() 的 name 参数改为可选(默认 None),简化无名字段结构体构造;IRBuilder 的 GEP 遇非指针 base 直接返回 None,不再打印降级日志(噪音)。
2026-08-15 06:24:17 +08:00
TermiNexus 46b7cbc4ba fix(memhub): 非 2 的幂 arena 二进制分解 + reset 重建 + OOM 诊断增强
主池 1.2GB(非 2 幂)不再被 _largest_pow2_le 砍成 1GB:整个区域按二进制分解拆成多个 2 的幂空闲块压入对应 free list,buddy 合并跨分解边界因 order 不匹配自然停止;reset/_rebuild_free_lists 重建同样分解格局。新增 big_alloc_count 计数与 alloc 失败 self_check/free_bytes 诊断、mark 异常 fail-fast。BuddyTest 断言改为初始分解块数。
2026-08-15 06:24:13 +08:00
TermiNexus 31d7602368 fix(memhub): checkpoint 记录栈初始容量 64K→2M + realloc 失败诊断
单文件翻译(parse AST + 生成 IR)可产生几十万次 alloc,64K 初始容量
在首个大文件就触发 realloc 扩容;realloc 失败时该块不再记录到
checkpoint 栈 → reset_to 无法回收 → 渐进泄漏 → 1GB 主池 OOM
(NewAstTest Phase2 Phase A 根因,used 精确到 2^30 吻合)。

初始容量加大到 2M 条目(16MB stdlib,惰性分配)覆盖单文件峰值,
避免扩容;realloc 失败分支打印 cap/depth 诊断(fail-fast 暴露而非
静默泄漏)。
2026-08-14 18:13:29 +08:00
TermiNexus fd3254cdd4 fix(TPC): 模块名与类名同名时 X.func() 按模块函数解析
import lib.core.X as X 且模块内有同名 class X 时,X.func() 此前被
is_class_name 判定拦截走 _HandleStaticMethodCallLlvm,用模块函数签名
生成带类前缀的 {sha1}.X.func 声明,而 define 是 {sha1}.func,导致
链接 undefined symbol(CompilerFactory.get_perm_pool)。现加模块别名
优先规则:SymbolTable 命中 IsModuleAlias 时跳过类静态方法路径,让位
模块函数调用;类构造 X.X(args) 仍走 struct 路径。同时移除
_HandleExternalCallLlvm 中误加的 else: return None 截断。

includes/llvmlite/__types.vp:DeepCopyType 各层分配源改由调用方传入
pool 参数(传 perm_pool 即持久),includes 层不依赖 App 工厂。
2026-08-14 04:02:22 +08:00
TermiNexus 0e93f40289 fix(includes): 导出 llvmlite 缺失符号 + 移除临时 DBG
- llvmlite.__init__ 导出 get_struct_fields/get_struct_fcount/DeepCopyType(HandlesAssign tuple 解包与 ClassGenMixin 深拷贝调用 fast-fail 符号未定义)
- 移除 string.vp [ATOF-DBG]、ast/parser.vp [LKP-DBG] 临时插桩(保留查表逻辑)
2026-08-12 21:13:36 +08:00
TermiNexus 8ccf5d2c18 fix(TPC/includes): 泛型特化 linkonce_odr + None 全局 common + includes 前缀
- TPC HandlesFunctions/HandlesClassDef: 泛型特化类方法(类名含 '[')设
  linkonce_odr,消除 GSList[NameEntry].__before_init__ 等 duplicate symbol
- TPC HandlesAssign: None 初值模块级全局用 common linkage,合并 _g_gen 等
  跨模块同名全局重复定义
- includes: binascii/hashlib 裸调用加 stdlib./string. 前缀(malloc/free/memset/memcpy)
- llvmlite: FunctionPrint 泛型特化方法输出 define linkonce_odr;__module 调整
- 删除 wiki/01-overview.md
2026-08-12 18:18:22 +08:00
TermiNexus b4567ffb9a fix(llvmlite): opaque与空结构体区分(fcount哨兵);ast表达式节点调整 2026-08-12 01:27:24 +08:00
TermiNexus 2120a0a4ab feat(ast): 结构化 Stmt/Expr 中间基类(isinstance 分类支持)
- base.vp 新增 Stmt/Expr(CVTable,继承 AST),__init__.vp 导出
- stmts.vp 23 个语句类继承 Stmt,exprs.vp 27 个表达式类继承 Expr
- 顶层/辅助/模式/OpNode 保持 AST 直继承(非 Stmt 非 Expr)
2026-08-10 21:48:41 +08:00
TermiNexus d2d319eb21 fix(includes): ASan 集成支持 + 越界写封堵 + TypePrint 类型名截断 40→255
1. Phase2Translator 增加 TPC_ASAN 支持(opt asan 插桩+链接 -fsanitize=address),配合 clang64 定位 0xbe 崩溃。2. llvmlite/memhub/viperio/viperlib 多处理无界 strcpy/strcat/下溢/递归守卫/栈数组钳制。3. memhub alloc 块尾 canary(MEMBUDDY_CANARY)+check_alive_blocks 校验+chk_stack realloc 扩容。4. TypePrint Ptr(Struct) 类型名截断上限 40→255:含 sha1 前缀类型名(如 bbdf3bbd4c3bc28c.CONSOLE_SCREEN_BUFFER_INFO=42)被截断产生未定义类型引用(llc undefined type)。
2026-08-10 18:09:13 +08:00
TermiNexus bb0f7049ce fix(includes): MemBuddy chk_stack 满时 realloc 翻倍扩容 - 防 64K 记录栈爆满导致 reset 不回收与 _is_valid_ptr 栈校验退化 2026-08-10 06:24:56 +08:00
TermiNexus fc93a28ec6 refactor(llvmlite): P0 对象化 - IRBuilder/LLVMModule 方法化(70 方法+一行委托兼容)
- IRBuilder 新增 62 个实例方法(load/store/gep/call/binop/cast 等), 顶层函数保留为一行委托, 调用方零改动
- LLVMModule 新增 8 个实例方法(add_function/add_global/add_named_type/PrintModule 等)
- 类字段/硬编码 SIZE/逻辑/IR 输出零变化, GetDiagnostics 无错误
- 新增 wiki/14-oo-refactor.md 对象化重构方案(P0-P6)
2026-08-09 22:54:01 +08:00
TermiNexus a6444a4e1f feat(includes): 软关键字 fn/fun/func/function 与 match 语句判定; 解析 fail-fast 错误记录(get_parse_err_*) + 相邻字符串字面量隐式拼接; ord/chr 内置函数; llvmlite build_alloca_aligned; memhub 超块请求返回 NULL; numpy 显式 string./stdio. 前缀; this 数组迭代修复 2026-08-09 17:10:34 +08:00
TermiNexus 939f7f2497 fix(llvmlite): ConstFloat 浮点常量文本改十六进制位模式(0x%016llx/0x%08x), 消除 llc 科学计数法解析 ±1 ulp 误差(11.0 解析为 11.000000000000002); vipermath modf 用回 c.Set(c.Deref()) 同步注释 2026-08-08 21:35:58 +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 61e578fe9a fix(includes): atof_out 输出参数版绕开跨模块 double 返回 bug; 浮点节点构造值记录+查询(parser); NEWF/ATOF/LKP 定位插桩; ast 导出查表函数 2026-08-08 19:42:55 +08:00
TermiNexus efb4aada15 chore(includes): 添加浮点字面量解析定位插桩 - string.atof 打印长字面量解析中间值(ATOF-DBG); parser._new_const_float 打印构造值/readback/节点覆写监控(NEWF-DBG/OVW-DBG); 用于定位浮点 CDefine 值错误(llc ret i32 0) 2026-08-08 18:18:52 +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 44ff0d551f fix(ast): 解析 PEP695 泛型函数类型参数 [T],修复函数体被误提升模块级
- _parse_funcdef 消费并存储 def f[T](...) 的类型参数(与 class 解析器一致)

- FunctionDef 增加 type_params 字段(默认 None,非泛型函数不受影响)

- 修复: 之前 [T] 未消费导致 _expect_op(Colon) 失败、函数体被误提升到模块级,b = Box(42) 被注册为模块级全局,函数内赋值误报需用 global 声明
2026-08-08 11:54:43 +08:00
TermiNexus acc126ce0c 基本稳定 2026-08-07 19:35:20 +08:00
TermiNexus 02479420e8 将 hashlib 英化 2026-08-07 18:52:12 +08:00
TermiNexus c5570dc8b1 将 ast 英化 2026-08-07 18:49:53 +08:00
TermiNexus 752f3ddb70 修正了部分实现 2026-08-06 19:50:18 +08:00
TermiNexus 2071486168 相对稳定版本 2026-08-06 18:04:12 +08:00
TermiNexus a39b5da0f8 基本稳定 2026-08-05 20:11:38 +08:00
TermiNexus 0a10b20dde 修正了逻辑,使 TPV 能够正常编译 2026-08-03 02:00:49 +08:00
TermiNexus 4e17365b76 修正了 args 传参问题 2026-07-31 17:15:54 +08:00
TermiNexus fcd4d8a438 修复了关于 snprintf 的错误(不支持长度推导) 2026-07-31 04:06:57 +08:00
TermiNexus 377b60fd67 取消了 i8* == i8* 实际使用 strcmp 的规则 2026-07-30 21:56:41 +08:00
TermiNexus cfc30d735c 将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名 2026-07-30 16:33:56 +08:00
TermiNexus f79c8ca643 Fixed 2026-07-30 13:34:26 +08:00
TermiNexus a2cc28a6ab Rewrote the comments in the libraries under 'includes' in English (excluding those inside folders) 2026-07-29 23:34:36 +08:00
TermiNexus 3633be1995 Some simple information syncing 2026-07-28 21:08:58 +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