Commit Graph
9 Commits
Author SHA1 Message Date
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 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 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 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 cfc30d735c 将 .py 和 .pyi 后缀名改为了 .vp 和 .vpi 后缀名 2026-07-30 16:33:56 +08:00