diff --git a/App/lib/core/Phase1.vp b/App/lib/core/Phase1.vp index 2f6957a..4f4adc9 100644 --- a/App/lib/core/Phase1.vp +++ b/App/lib/core/Phase1.vp @@ -588,12 +588,8 @@ def _TopoSortFiles(mb: memhub.MemBuddy | t.CPtr, file_count: int = 0 # sha1→file_index 映射(简单线性查找,文件数不多) for i in range(result.Count): - # 文件级 mark:import 依赖收集完(deps 写盘 + PopulateIncludesDeps - # 内部 stdlib 深拷贝)后立即回收本文件 AST——98 includes 全量 parse - # 的 AST 若驻留到 mark1 → 1GB 主池耗尽 OOM 根因之一 - scan_mark_a: t.CSizeT = mb.mark() - entry_addr_a: t.CUInt64T = t.CUInt64T(result.Entries) + i * entry_size - entry_a: IncludesScanner.FileEntry | t.CPtr = (IncludesScanner.FileEntry | t.CPtr)(t.CVoid(entry_addr_a, t.CPtr)) + entry_addr: t.CUInt64T = t.CUInt64T(result.Entries) + i * entry_size + entry: IncludesScanner.FileEntry | t.CPtr = (IncludesScanner.FileEntry | t.CPtr)(t.CVoid(entry_addr, t.CPtr)) if entry is None or entry.Sha1 is None: continue