From f79c8ca643c07516e8792ba0e1378b532f9fa4f6 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Thu, 30 Jul 2026 13:34:26 +0800 Subject: [PATCH] Fixed --- .transpyc_cache/6f62fe05c5ea1ceb.pyi | 28 -- .transpyc_cache/90c53dd6db8d41cf.pyi | 20 - 1.txt | 0 2.txt | 0 TODO | 4 +- TransPyV.exe.bak | Bin 809472 -> 0 bytes TransPyV/App/lib/core/BuildPipeline.py | 131 ++++-- .../App/lib/core/Handles/HandlesAnnAssign.py | 99 +++++ .../App/lib/core/Handles/HandlesAssign.py | 64 ++- .../App/lib/core/Handles/HandlesClassDef.py | 49 ++- TransPyV/App/lib/core/Handles/HandlesExpr.py | 416 ++++++++++++++---- .../App/lib/core/Handles/HandlesExprCall.py | 27 +- TransPyV/App/lib/core/Handles/HandlesFor.py | 32 +- .../App/lib/core/Handles/HandlesImports.py | 15 - TransPyV/App/lib/core/Handles/HandlesMain.py | 184 +++++++- .../App/lib/core/Handles/HandlesStruct.py | 64 +-- .../App/lib/core/Handles/HandlesTranslator.py | 1 + TransPyV/App/lib/core/Handles/HandlesType.py | 129 +++++- TransPyV/App/lib/core/Phase1.py | 133 +++++- TransPyV/App/lib/core/Phase2.py | 267 +++++++++-- TransPyV/App/lib/core/StubMerger.py | 407 +++++++++++------ TransPyV/App/lib/core/VLogger.py | 2 +- TransPyV/output/51f0144d6e8188d9.deps.json | 2 +- TransPyV/output/66de93aaeebc0601.deps.json | 2 +- TransPyV/output/81eb28ba912467a6.deps.json | 2 +- TransPyV/output/af9484a65085bf4b.deps.json | 2 +- TransPyV/temp/2d39c6c7d3557b3e.pyi | 63 --- TransPyV/temp/2da636c61863c815.pyi | 33 -- TransPyV/temp/6503c97dde0c79c4.pyi | 189 -------- TransPyV/temp/6f62fe05c5ea1ceb.pyi | 28 -- TransPyV/temp/90c53dd6db8d41cf.pyi | 20 - TransPyV/temp/93c1d18e35d188d6.pyi | 53 --- TransPyV/temp/_phase1_manifest.json | 2 +- TransPyV/temp/_sha1_map.txt | 68 +-- TransPyV/temp/_shared_sym.json | Bin 1913790 -> 1931421 bytes TransPyV/temp/b5a965302cded36b.pyi | 44 -- TransPyV/temp/b8c66c8ff44eb874.pyi | 46 -- TransPyV/temp/c3b259b4059f8668.pyi | 23 - includes/argparse.py | 10 +- includes/ast/parser.py | 18 +- includes/atom.py | 3 +- includes/llvmlite/__builder.py | 13 +- includes/llvmlite/__function.py | 13 + 43 files changed, 1690 insertions(+), 1016 deletions(-) delete mode 100644 .transpyc_cache/6f62fe05c5ea1ceb.pyi delete mode 100644 .transpyc_cache/90c53dd6db8d41cf.pyi delete mode 100644 1.txt delete mode 100644 2.txt delete mode 100644 TransPyV.exe.bak delete mode 100644 TransPyV/temp/2d39c6c7d3557b3e.pyi delete mode 100644 TransPyV/temp/2da636c61863c815.pyi delete mode 100644 TransPyV/temp/6503c97dde0c79c4.pyi delete mode 100644 TransPyV/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 TransPyV/temp/90c53dd6db8d41cf.pyi delete mode 100644 TransPyV/temp/93c1d18e35d188d6.pyi delete mode 100644 TransPyV/temp/b5a965302cded36b.pyi delete mode 100644 TransPyV/temp/b8c66c8ff44eb874.pyi delete mode 100644 TransPyV/temp/c3b259b4059f8668.pyi diff --git a/.transpyc_cache/6f62fe05c5ea1ceb.pyi b/.transpyc_cache/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/.transpyc_cache/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/.transpyc_cache/90c53dd6db8d41cf.pyi b/.transpyc_cache/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/.transpyc_cache/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/1.txt b/1.txt deleted file mode 100644 index e69de29..0000000 diff --git a/2.txt b/2.txt deleted file mode 100644 index e69de29..0000000 diff --git a/TODO b/TODO index 71fc975..42ed134 100644 --- a/TODO +++ b/TODO @@ -33,4 +33,6 @@ __iter__ 期望 for a, b in __iter__ init_set 构造 -不在乎编译器时间的大小优化(无关符号剔除) \ No newline at end of file +不在乎编译器时间的大小优化(无关符号剔除) +给 linkedlist 库改成 node 库,或者拆分 linkedlist 库 +TPV 的 typedef 名是硬编码的,后期尝试修正 \ No newline at end of file diff --git a/TransPyV.exe.bak b/TransPyV.exe.bak deleted file mode 100644 index f02e94118f35be62ff6746176bbac98cda5a5012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 809472 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
xD08#+l-H!SL=Ny4Ou@N7TRJ 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
@+b%5C)8?#$83A! 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 tBbWd+dKOcgM}&-m(2Rn>&N1 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%0D@|(gUse>&o3s3^ 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�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 NEAuaY{{Q{Y{|CGS2zCGf diff --git a/TransPyV/App/lib/core/BuildPipeline.py b/TransPyV/App/lib/core/BuildPipeline.py index 6b018b8..b39aa8b 100644 --- a/TransPyV/App/lib/core/BuildPipeline.py +++ b/TransPyV/App/lib/core/BuildPipeline.py @@ -282,8 +282,76 @@ def compile_ll_to_obj(ir_path: str, output_dir: str, module_name: str, cc_cmd: s return 0 +def _CollectObjFilesImpl(base_dir: str, bd_len: t.CSizeT, + out_buf: bytes, out_pos: t.CSizeT, out_size: t.CSizeT) -> t.CSizeT: + """递归扫描 base_dir,收集 .obj 文件路径到 out_buf,返回新的 out_pos + + 支持切片子目录(如 dir/43/{sha1}.obj)。 + """ + find_data: w32.win32file.WIN32_FIND_DATAA | t.CPtr = _mbuddy.alloc(w32.win32file.WIN32_FIND_DATAA.__sizeof__()) + if find_data is None: + return out_pos + string.memset(find_data, 0, w32.win32file.WIN32_FIND_DATAA.__sizeof__()) + + pattern: bytes = _mbuddy.alloc(bd_len + 8) + if pattern is None: + return out_pos + viperlib.snprintf(pattern, bd_len + 8, "%s/*", base_dir) + + handle: w32.win32base.HANDLE = w32.win32file.FindFirstFileA(pattern, find_data) + _mbuddy.free(pattern) + if handle == w32.win32base.INVALID_HANDLE_VALUE: + return out_pos + + while True: + fname: str = find_data.cFileName + if fname is not None: + fname_len: t.CSizeT = string.strlen(fname) + if fname_len > 0: + # 跳过 . 和 .. + is_dot: int = 0 + if fname_len == 1 and fname[0] == '.': + is_dot = 1 + elif fname_len == 2 and fname[0] == '.' and fname[1] == '.': + is_dot = 1 + if is_dot == 0: + attrs: ULONG = find_data.dwFileAttributes + is_dir: int = 0 + if (attrs & w32.win32file.FILE_ATTRIBUTE_DIRECTORY) != 0: + is_dir = 1 + if is_dir != 0: + # 递归扫描子目录 + sub_dir: bytes = _mbuddy.alloc(bd_len + fname_len + 2) + if sub_dir is not None: + viperlib.snprintf(sub_dir, bd_len + fname_len + 2, "%s/%s", base_dir, fname) + sub_len: t.CSizeT = string.strlen(sub_dir) + out_pos = _CollectObjFilesImpl(sub_dir, sub_len, out_buf, out_pos, out_size) + _mbuddy.free(sub_dir) + else: + # 检查是否是 .obj 文件 + if fname_len > 4: + if fname[fname_len - 4] == '.' and fname[fname_len - 3] == 'o' and fname[fname_len - 2] == 'b' and fname[fname_len - 1] == 'j': + need: t.CSizeT = bd_len + 1 + fname_len + 2 + if out_pos + need < out_size: + if out_pos > 0: + out_buf[out_pos] = ' ' + out_pos += 1 + viperlib.snprintf(out_buf + out_pos, need, "%s/%s", base_dir, fname) + out_pos += bd_len + 1 + fname_len + else: + break + + if w32.win32file.FindNextFileA(handle, find_data) == 0: + break + + w32.win32file.FindClose(handle) + return out_pos + + def collect_obj_files(includes_binary_dir: str, out_buf: bytes, out_size: t.CSizeT) -> t.CSizeT: - """扫描 includes_binary_dir 目录,收集所有 .obj 文件路径到 out_buf + """递归扫描 includes_binary_dir 目录,收集所有 .obj 文件路径到 out_buf + + 支持切片子目录(如 includes_binary_dir/43/{sha1}.obj)。 Args: includes_binary_dir: includes.binary 目录路径 @@ -297,47 +365,8 @@ def collect_obj_files(includes_binary_dir: str, out_buf: bytes, out_size: t.CSiz return 0 out_buf[0] = '\0' - out_pos: t.CSizeT = 0 - - # 构造搜索模式: dir/*.obj dir_len: t.CSizeT = string.strlen(includes_binary_dir) - pattern: bytes = _mbuddy.alloc(dir_len + 8) - if pattern is None: - return 0 - viperlib.snprintf(pattern, dir_len + 8, "%s/*.obj", includes_binary_dir) - - # FindFirstFileA - find_data: w32.win32file.WIN32_FIND_DATAA | t.CPtr = _mbuddy.alloc(w32.win32file.WIN32_FIND_DATAA.__sizeof__()) - if find_data is None: - return 0 - string.memset(find_data, 0, w32.win32file.WIN32_FIND_DATAA.__sizeof__()) - - handle: w32.win32base.HANDLE = w32.win32file.FindFirstFileA(pattern, find_data) - if handle == w32.win32base.INVALID_HANDLE_VALUE: - return 0 - - # 需要 win32base 的 INVALID_HANDLE_VALUE - while True: - fname: str = find_data.cFileName - if fname is not None: - fname_len: t.CSizeT = string.strlen(fname) - # 构造完整路径并追加到 out_buf - # 路径格式: "dir/fname " - need: t.CSizeT = dir_len + 1 + fname_len + 2 - if out_pos + need < out_size: - if out_pos > 0: - out_buf[out_pos] = ' ' - out_pos += 1 - viperlib.snprintf(out_buf + out_pos, need, "%s/%s", includes_binary_dir, fname) - out_pos += dir_len + 1 + fname_len - else: - # 缓冲区不足,停止 - break - - if w32.win32file.FindNextFileA(handle, find_data) == 0: - break - - w32.win32file.FindClose(handle) + out_pos: t.CSizeT = _CollectObjFilesImpl(includes_binary_dir, dir_len, out_buf, 0, out_size) out_buf[out_pos] = '\0' return out_pos @@ -509,13 +538,23 @@ def link_objs_to_exe(obj_paths: str, obj_paths_len: t.CSizeT, viperlib.snprintf(cmd, cmd_len, "%s %s -o %s %s", linker_cmd, obj_paths, linker_output, linker_flags) - # 用 stdlib.system() 直接在控制台运行链接,输出直接显示 - # 避免 subprocess 管道捕获丢失输出(TransPyV 标准句柄可能无效) - sys_ret: int = stdlib.system(cmd) - if sys_ret != 0: + # 用 subprocess.run 捕获 clang++ 的 stdout/stderr 输出 + # 之前用 stdlib.system() 无法捕获具体错误(undefined reference 等), + # 导致 1.txt 中只看到"链接失败,返回码: 1"而看不到未解析符号 + result: subprocess.CompletedProcess | t.CPtr = subprocess.run(cmd, True, True) + if result is None: + VLogger.error("subprocess.run 返回 None", "link") + return 1 + if result.returncode != 0: + # 先用 stdio.printf 直接输出 clang++ 的完整错误输出(含 undefined reference) + # 必须在 VLogger.error 之前输出,因为 VLogger.error 会调用 sys.exit(1) 终止进程 + if result.stdout is not None: + stdio.printf("=== clang++ 链接错误输出 ===\n%s\n", result.stdout) + if result.stderr is not None: + stdio.printf("=== clang++ stderr ===\n%s\n", result.stderr) fb: t.CChar | t.CPtr = VLogger.fmt_buf() if fb is not None: - viperlib.snprintf(fb, 1024, "链接失败,返回码: %d, 命令: %s", sys_ret, cmd) + viperlib.snprintf(fb, 1024, "链接失败,返回码: %d, 命令: %s", result.returncode, cmd) VLogger.error(fb, "link") return 1 return 0 diff --git a/TransPyV/App/lib/core/Handles/HandlesAnnAssign.py b/TransPyV/App/lib/core/Handles/HandlesAnnAssign.py index d031dc6..9096f84 100644 --- a/TransPyV/App/lib/core/Handles/HandlesAnnAssign.py +++ b/TransPyV/App/lib/core/Handles/HandlesAnnAssign.py @@ -176,6 +176,77 @@ def _is_ptr_element_annotation(annot: ast.AST | t.CPtr) -> int: return 0 +# ============================================================ +# _init_global_array_from_list — 从列表字面量初始化全局数组 +# +# 为每个元素生成 GEP + store 指令,将值存入全局数组的对应位置。 +# 适用于模块级 t.CArray[elem_ty, count] = [v0, v1, ...] 的初始化。 +# +# Args: +# builder: IRBuilder +# pool: 编译器内存池 +# mod: LLVMModule +# array_alloca: 全局数组变量的 Value 引用(类型为 [N x elem_ty]*) +# list_node: ast.List 节点 +# trans: Translator 对象 +# +# Returns: +# 0 成功,1 失败 +# ============================================================ +def _init_global_array_from_list(builder: llvmlite.IRBuilder | t.CPtr, + pool: memhub.MemBuddy | t.CPtr, + mod: llvmlite.LLVMModule | t.CPtr, + array_alloca: llvmlite.Value | t.CPtr, + list_node: ast.AST | t.CPtr, + trans: HT.Translator | t.CPtr) -> int: + """从列表字面量初始化全局数组,为每个元素生成 GEP + store""" + if builder is None or array_alloca is None or list_node is None: + return 1 + + # 获取数组类型(Pointee of [N x elem_ty]*) + arr_ty: llvmlite.LLVMType | t.CPtr = None + if array_alloca.Ty is not None: + arr_ty = array_alloca.Ty.Pointee + if arr_ty is None: + return 1 + + # 匹配数组类型获取元素类型 + elem_ty: llvmlite.LLVMType | t.CPtr = None + match arr_ty: + case llvmlite.LLVMType.Array(et, _): + elem_ty = et + if elem_ty is None: + return 1 + + # 获取列表元素 + lst: ast.List | t.CPtr = (ast.List | t.CPtr)(list_node) + if lst is None or lst.elts is None: + return 1 + elts: list[ast.AST | t.CPtr] | t.CPtr = lst.elts + elts_count: t.CSizeT = elts.__len__() + + # 为每个元素生成 GEP + store + i: t.CSizeT = 0 + while i < elts_count: + elem_node: ast.AST | t.CPtr = elts.get(i) + elem_val: llvmlite.Value | t.CPtr = HandlesExpr.translate_value( + builder, pool, mod, elem_node, None, 0, trans) + if elem_val is not None: + idx_val: llvmlite.Value | t.CPtr = llvmlite.const_int32(pool, i) + elem_ptr: llvmlite.Value | t.CPtr = llvmlite.build_gep_array( + builder, arr_ty, elem_ty, array_alloca, idx_val) + if elem_ptr is not None: + # 类型转换(如 i32 → i8 截断) + store_val: llvmlite.Value | t.CPtr = elem_val + if elem_ptr.Ty is not None and elem_ptr.Ty.Pointee is not None: + store_val = HandlesExpr.coerce_to_type( + builder, elem_val, elem_ptr.Ty.Pointee) + llvmlite.build_store(builder, store_val, elem_ptr) + i += 1 + + return 0 + + @t.NoVTable class AnnAssignHandle(HandlesBase.Mixin): """AnnAssign 语句处理器:继承 Mixin 获得 Trans 回指针""" @@ -221,6 +292,11 @@ class AnnAssignHandle(HandlesBase.Mixin): if HT.is_nonlocal_name(self.Trans, nm.id) != 0: return 0 + # 模块级全局变量已由 handle_module_level_var 注册到模块作用域, + # 不需要创建局部 alloca(否则会导致局部变量遮蔽全局变量) + if HandlesVar.lookup_module_var(self.Trans.SymTab, nm.id) is not None: + return 0 + # 检查是否已存在 existing: llvmlite.Value | t.CPtr = HandlesVar.lookup_current( self.Trans.SymTab, nm.id) @@ -350,6 +426,29 @@ class AnnAssignHandle(HandlesBase.Mixin): llvmlite.build_store(builder, rhs_coerced, nl_ptr) return 0 + # 模块级全局变量(由 handle_module_level_var 注册到模块作用域) + # 非函数内 global 声明,但变量已在模块作用域中(如模块级 t.CArray 初始化) + mod_glob: llvmlite.Value | t.CPtr = HandlesVar.lookup_module_var( + self.Trans.SymTab, nm.id) + if mod_glob is not None: + if aa.value is not None: + # 列表字面量 → 逐元素 GEP + store 初始化数组 + if aa.value.kind() == ast.ASTKind.List: + _init_global_array_from_list( + builder, pool, mod, mod_glob, aa.value, self.Trans) + else: + rhs_val_mg: llvmlite.Value | t.CPtr = HandlesExpr.translate_value( + builder, pool, mod, aa.value, + None, 0, self.Trans) + if rhs_val_mg is not None: + target_ty_mg: llvmlite.LLVMType | t.CPtr = None + if mod_glob.Ty is not None: + target_ty_mg = mod_glob.Ty.Pointee + if target_ty_mg is not None: + rhs_val_mg = HandlesExpr.coerce_to_type(builder, rhs_val_mg, target_ty_mg) + llvmlite.build_store(builder, rhs_val_mg, mod_glob) + return 0 + # 普通局部变量 # 创建 alloca alloca: llvmlite.Value | t.CPtr = HandlesVar.get_or_create_sym( diff --git a/TransPyV/App/lib/core/Handles/HandlesAssign.py b/TransPyV/App/lib/core/Handles/HandlesAssign.py index 186190d..765ce8b 100644 --- a/TransPyV/App/lib/core/Handles/HandlesAssign.py +++ b/TransPyV/App/lib/core/Handles/HandlesAssign.py @@ -15,6 +15,7 @@ import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.Handles.HandlesNonlocal as HandlesNonlocal import lib.core.Handles.HandlesType as HandlesType import lib.core.Handles.HandlesStruct as HandlesStruct +import lib.core.StubMerger as StubMerger # ============================================================ @@ -62,23 +63,70 @@ class AssignHandle(HandlesBase.Mixin): rhs_val: llvmlite.Value | t.CPtr = HandlesExpr.translate_value( builder, pool, mod, asgn.value, None, 0, self.Trans) if rhs_val is None: - # 增强错误信息:包含 sha1 + lineno + AST 节点类型,便于定位 + # 增强错误信息:包含文件名 + lineno + AST 节点详情,便于定位 fb: t.CChar | t.CPtr = VLogger.fmt_buf() if fb is not None and asgn.value is not None: sha1: str = self.Trans.ModuleSha1 val_kind: int = asgn.value.kind() val_line: t.CInt = asgn.value.lineno + # 通过 sha1 查找文件名(人类可读) + rel_path: str = None if sha1 is not None: - viperlib.snprintf(fb, 1024, - "rhs_val is None [sha1=%s lineno=%d kind=%d]", - sha1, val_line, val_kind) + rel_path = StubMerger.LookupSha1RelPath(sha1) + # 根据 AST 节点类型提取详情 + if val_kind == ast.ASTKind.Attribute: + at_nv: ast.Attribute | t.CPtr = (ast.Attribute | t.CPtr)(asgn.value) + attr_nm: str = at_nv.attr + target_nm: str = "?" + if at_nv.value is not None: + if at_nv.value.kind() == ast.ASTKind.Name: + tn_nm: ast.Name | t.CPtr = (ast.Name | t.CPtr)(at_nv.value) + target_nm = tn_nm.id + if rel_path is not None: + viperlib.snprintf(fb, 1024, + "赋值右侧为 None: %s:%d '%s.%s' 属性访问失败", + rel_path, val_line, target_nm, attr_nm) + else: + viperlib.snprintf(fb, 1024, + "赋值右侧为 None: sha1=%s:%d '%s.%s' 属性访问失败", + sha1, val_line, target_nm, attr_nm) + elif val_kind == ast.ASTKind.Name: + nm_nv: ast.Name | t.CPtr = (ast.Name | t.CPtr)(asgn.value) + if rel_path is not None: + viperlib.snprintf(fb, 1024, + "赋值右侧为 None: %s:%d 变量 '%s' 未找到", + rel_path, val_line, nm_nv.id) + else: + viperlib.snprintf(fb, 1024, + "赋值右侧为 None: sha1=%s:%d 变量 '%s' 未找到", + sha1, val_line, nm_nv.id) + elif val_kind == ast.ASTKind.Call: + cl_nv: ast.Call | t.CPtr = (ast.Call | t.CPtr)(asgn.value) + func_nm: str = "?" + if cl_nv.func is not None: + if cl_nv.func.kind() == ast.ASTKind.Name: + fn_nm: ast.Name | t.CPtr = (ast.Name | t.CPtr)(cl_nv.func) + func_nm = fn_nm.id + if rel_path is not None: + viperlib.snprintf(fb, 1024, + "赋值右侧为 None: %s:%d 调用 '%s(...)' 返回 None", + rel_path, val_line, func_nm) + else: + viperlib.snprintf(fb, 1024, + "赋值右侧为 None: sha1=%s:%d 调用 '%s(...)' 返回 None", + sha1, val_line, func_nm) else: - viperlib.snprintf(fb, 1024, - "rhs_val is None [lineno=%d kind=%d]", - val_line, val_kind) + if rel_path is not None: + viperlib.snprintf(fb, 1024, + "赋值右侧为 None: %s:%d [kind=%d]", + rel_path, val_line, val_kind) + else: + viperlib.snprintf(fb, 1024, + "赋值右侧为 None: sha1=%s:%d [kind=%d]", + sha1, val_line, val_kind) VLogger.error(fb, "ASGN") else: - VLogger.error("rhs_val is None", "ASGN") + VLogger.error("赋值右侧为 None (asgn.value 为空)", "ASGN") return 0 new_vars: int = 0 diff --git a/TransPyV/App/lib/core/Handles/HandlesClassDef.py b/TransPyV/App/lib/core/Handles/HandlesClassDef.py index 830a1ce..8e41ab0 100644 --- a/TransPyV/App/lib/core/Handles/HandlesClassDef.py +++ b/TransPyV/App/lib/core/Handles/HandlesClassDef.py @@ -1700,15 +1700,14 @@ _generic_class_nodes: list[ast.ClassDef | t.CPtr] | t.CPtr = None _generic_class_sha1s: list[str] | t.CPtr = None -def _is_generic_class(cd: ast.ClassDef | t.CPtr) -> int: - """检查 ClassDef 是否有类型参数(泛型类),返回 1=是 / 0=否""" - if cd is None: - return 0 - tp: list[str] | t.CPtr = cd.type_params +def _is_generic_class(tp: list[str] | t.CPtr) -> int: + """检查 ClassDef 是否有类型参数(泛型类),返回 1=是 / 0=否 + + 接收 type_params 而非 cd,避免 cd.type_params 属性访问 + 因跨模块类型推断失败返回 None。 + """ if tp is None: return 0 - if tp.__len__() == 0: - return 0 return 1 @@ -1721,29 +1720,37 @@ def _register_generic_template(pool: memhub.MemBuddy | t.CPtr, _generic_class_names = list[str](pool, 8) _generic_class_nodes = list[ast.ClassDef | t.CPtr](pool, 8) _generic_class_sha1s = list[str](pool, 8) - # 检查是否已注册 - cn: t.CSizeT = _generic_class_names.__len__() + # 用局部变量接收 global list,触发类型推断(避免 global 变量 __len__ 失败) + names_local: list[str] | t.CPtr = _generic_class_names + cn: t.CSizeT = names_local.__len__() i: t.CSizeT for i in range(cn): - nm: str = _generic_class_names.get(i) + nm: str = names_local.get(i) if nm is not None and string.strcmp(nm, cd.name) == 0: return _generic_class_names.append(cd.name) _generic_class_nodes.append(cd) _generic_class_sha1s.append(module_sha1) + # 诊断日志:确认泛型模板注册 + fb_rg: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_rg is not None: + viperlib.snprintf(fb_rg, 1024, "注册泛型模板: %s (module=%s)", cd.name, module_sha1) + VLogger.info(fb_rg, "SPEC") def _find_generic_template(class_name: str) -> ast.ClassDef | t.CPtr: """查找泛型类模板,返回 ClassDef 节点或 None""" if _generic_class_names is None or class_name is None: return None - cn: t.CSizeT = _generic_class_names.__len__() + # 用局部变量接收 global list,触发类型推断(避免 global 变量 __len__ 失败) + names_local: list[str] | t.CPtr = _generic_class_names + nodes_local: list[ast.ClassDef | t.CPtr] | t.CPtr = _generic_class_nodes + cn: t.CSizeT = names_local.__len__() i: t.CSizeT for i in range(cn): - nm: str = _generic_class_names.get(i) + nm: str = names_local.get(i) if nm is not None and string.strcmp(nm, class_name) == 0: - # 用局部变量接收 list.get() 结果,触发旧编译器 inttoptr 类型转换 - node: ast.ClassDef | t.CPtr = _generic_class_nodes.get(i) + node: ast.ClassDef | t.CPtr = nodes_local.get(i) return node return None @@ -1752,13 +1759,15 @@ def _find_generic_template_sha1(class_name: str) -> str: """查找泛型类模板的来源模块 SHA1,未找到返回 None""" if _generic_class_names is None or class_name is None: return None - cn: t.CSizeT = _generic_class_names.__len__() + # 用局部变量接收 global list,触发类型推断 + names_local: list[str] | t.CPtr = _generic_class_names + sha1s_local: list[str] | t.CPtr = _generic_class_sha1s + cn: t.CSizeT = names_local.__len__() i: t.CSizeT for i in range(cn): - nm: str = _generic_class_names.get(i) + nm: str = names_local.get(i) if nm is not None and string.strcmp(nm, class_name) == 0: - # 用局部变量接收 list.get() 结果,触发旧编译器 inttoptr 类型转换 - sha1_val: str = _generic_class_sha1s.get(i) + sha1_val: str = sha1s_local.get(i) return sha1_val return None @@ -2191,7 +2200,9 @@ def translate_class_def(trans: HT.Translator | t.CPtr, return _translate_renum_def(trans, cd) # 泛型类:存储为模板,不发射 IR(等实例化时特化) - if _is_generic_class(cd) == 1: + # 用局部变量接收 cd.type_params,触发类型推断 + tp_val: list[str] | t.CPtr = cd.type_params + if _is_generic_class(tp_val) == 1: _register_generic_template(pool, cd, trans.ModuleSha1) return 0 diff --git a/TransPyV/App/lib/core/Handles/HandlesExpr.py b/TransPyV/App/lib/core/Handles/HandlesExpr.py index f05ad84..b8cff46 100644 --- a/TransPyV/App/lib/core/Handles/HandlesExpr.py +++ b/TransPyV/App/lib/core/Handles/HandlesExpr.py @@ -420,7 +420,14 @@ def _infer_elem_type_from_value(pool: memhub.MemBuddy | t.CPtr, # 依次尝试 "pool", "_mbuddy", "mbuddy", "mb" # ============================================================ def _find_pool_var(trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: - """查找上下文中的 pool 变量,返回 alloca 或 None""" + """查找上下文中的 pool 变量,返回 alloca 或 None + + 查找顺序: pool → _mbuddy → mbuddy → mb + 兜底: 若都未找到,注册外部全局 @_mbuddy (i8*) 供函数内动态 list 创建使用。 + 注意: 模块级 t.CArray 初始化不走此路径(由 _init_global_array_from_list 处理), + 此兜底仅用于函数内的动态 list 字面量(如 op=[...])。 + @_mbuddy 由入口模块(如 Phase2.py)定义并初始化,其他模块以 external 引用。 + """ if trans is None: return None alloca: llvmlite.Value | t.CPtr = HandlesVar.lookup_var(trans.SymTab, "pool") @@ -435,7 +442,32 @@ def _find_pool_var(trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: alloca = HandlesVar.lookup_var(trans.SymTab, "mb") if alloca is not None: return alloca - return None + # 兜底: 创建外部全局 @_mbuddy 引用(i8** 类型) + # 仅用于函数内动态 list 字面量,@_mbuddy 由入口模块定义并初始化 + pool: memhub.MemBuddy | t.CPtr = trans.Pool + if pool is None or trans.Module is None or trans.SymTab is None: + return None + # 先检查是否已注册到模块作用域(避免重复创建全局变量) + existing: llvmlite.Value | t.CPtr = HandlesVar.lookup_module_var(trans.SymTab, "_mbuddy") + if existing is not None: + return existing + # 创建 i8* 类型(t.CVoid | t.CPtr = i8*) + i8_ty_fb: llvmlite.LLVMType | t.CPtr = llvmlite.Int8(pool) + i8_ptr_ty_fb: llvmlite.LLVMType | t.CPtr = llvmlite.Ptr(pool, i8_ty_fb) + # 创建外部全局 @_mbuddy(external linkage,无初始值) + gv_ext: llvmlite.GlobalVariable | t.CPtr = llvmlite.new_global_variable(pool, "_mbuddy", i8_ptr_ty_fb) + if gv_ext is not None: + gv_ext.Linkage = "external" + llvmlite.module_add_global(trans.Module, gv_ext) + # 创建 Value 引用(@_mbuddy, 类型为 i8**) + i8_ptr_ptr_ty_fb: llvmlite.LLVMType | t.CPtr = llvmlite.Ptr(pool, i8_ptr_ty_fb) + ref_name_fb: t.CChar | t.CPtr = pool.alloc(16) + if ref_name_fb is not None: + string.strcpy(ref_name_fb, "@_mbuddy") + gv_ref_fb: llvmlite.Value | t.CPtr = llvmlite.SSAValue(pool, i8_ptr_ptr_ty_fb, ref_name_fb) + # 注册到模块作用域,避免重复创建 + HandlesVar.define_module_var(trans.SymTab, "_mbuddy", gv_ref_fb) + return gv_ref_fb # ============================================================ @@ -1115,29 +1147,73 @@ def _build_source_path_from_sha1(sha1: str) -> str: # ============================================================ def _lookup_cross_module_cdefine(pool: memhub.MemBuddy | t.CPtr, name: str, - from_imports: str) -> int: - """跨模块查找 CDefine 常量,返回值或 -1(未找到)""" - if name is None or from_imports is None: - stdio.printf("[XMCD] FAIL name=%s reason=from_imports_is_none\n", name) + from_imports: str, + imported_modules: str = None) -> int: + """跨模块查找 CDefine 常量,返回值或 -1(未找到) + + 查找顺序: + 1. from_imports 精确匹配(from X import NAME) + 2. from_imports star 回退(from X import *) + 3. imported_modules 遍历(import X):当通过 import X 导入模块时, + 模块中定义的 CDefine 常量可通过此路径找到(如方法签名默认参数引用) + """ + if name is None: return -1 + if from_imports is None: + from_imports = "" # 1. 从 from_imports 查找名称对应的模块名 # 先尝试精确匹配(allow_star_fallback=0),避免 CDefine 常量被 star import 误导 mod_name_raw: str = HandlesImports.lookup_from_import(from_imports, name, 0) if mod_name_raw is None: # 精确匹配失败:尝试 star import 回退 - # CDefine 常量(如 INVALID_HANDLE_VALUE)通过 from w32.win32base import * 导入, - # 不会作为精确条目出现在 from_imports 中,而是作为 *:w32.win32base 条目。 mod_name_raw = HandlesImports.lookup_from_import(from_imports, name, 1) - if mod_name_raw is None: - stdio.printf("[XMCD] FAIL name=%s reason=lookup_from_import_returned_none\n", name) + + # 2. from_imports 查找失败:直接回退到 imported_modules 遍历(步骤 9.6) + # 注意:star fallback 可能返回错误模块(如 stdint),常量实际不在其中, + # 步骤 9.6 会在该模块查找失败后继续遍历 imported_modules + if mod_name_raw is None: + # from_imports 完全没有匹配(精确和 star 都失败) + # 直接进入 imported_modules 遍历(步骤 9.6) + if imported_modules is None: return -1 - stdio.printf("[XMCD] star_fallback name=%s mod=%s\n", name, mod_name_raw) - # 打印 from_imports 用于诊断精确匹配失败原因 - fi_len: t.CSizeT = string.strlen(from_imports) - stdio.printf("[XMCD] from_imports (len=%d): %s\n", fi_len, from_imports) - else: - stdio.printf("[XMCD] exact_match name=%s mod=%s\n", name, mod_name_raw) + # 跳过 from_imports 模块读取,直接走步骤 9.6 的 imported_modules 遍历 + # 设置 result_found=0 跳过步骤 3-9,直接到 9.6 + HandlesType.set_cdefine_found(0) + # 直接遍历 imported_modules + im_len: t.CSizeT = string.strlen(imported_modules) + im_ci: t.CSizeT = 0 + while im_ci < im_len: + while im_ci < im_len and imported_modules[im_ci] == ' ': + im_ci += 1 + if im_ci >= im_len: + break + im_start: t.CSizeT = im_ci + while im_ci < im_len and imported_modules[im_ci] != ' ': + im_ci += 1 + im_end: t.CSizeT = im_ci + im_nlen: t.CSizeT = im_end - im_start + if im_nlen > 0 and im_nlen < 256: + im_buf: str = pool.alloc(im_nlen + 1) + if im_buf is not None: + mk: t.CSizeT = 0 + while mk < im_nlen: + im_buf[mk] = imported_modules[im_start + mk] + mk += 1 + im_buf[im_nlen] = '\0' + sub_fi: str = pool.alloc(im_nlen + 3) + if sub_fi is not None: + sub_fi[0] = '*' + sub_fi[1] = ':' + mk2: t.CSizeT = 0 + while mk2 < im_nlen: + sub_fi[2 + mk2] = im_buf[mk2] + mk2 += 1 + sub_fi[2 + im_nlen] = '\0' + sub_val: int = _lookup_cross_module_cdefine(pool, name, sub_fi, None) + if HandlesType.is_cdefine_found() != 0: + return sub_val + return -1 # 2. 复制模块名到新缓冲区(lookup_from_import 返回的是内部指针) # 截断于空格、null、或 ':'(别名格式的分隔符) @@ -1161,7 +1237,6 @@ def _lookup_cross_module_cdefine(pool: memhub.MemBuddy | t.CPtr, if sha1 is None: sha1 = HandlesExprCall._lookup_module_sha1_suffix(base_mod) if sha1 is None: - stdio.printf("[XMCD] FAIL name=%s base_mod=%s reason=sha1_not_found\n", name, base_mod) return -1 # 5. 获取 temp_dir @@ -1529,6 +1604,45 @@ def _lookup_cross_module_cdefine(pool: memhub.MemBuddy | t.CPtr, stdlib.free(pyi_buf) + # 9.6 from_imports star fallback 模块中未找到:回退到 imported_modules 遍历 + # 当 `from stdint import *` 导致 star fallback 返回 stdint,但目标常量 + # (如 SHARE_READ)实际在 `import w32.fileio` 导入的模块中时, + # 需要遍历 imported_modules 逐个查找 + if result_found == 0 and imported_modules is not None: + im2_len: t.CSizeT = string.strlen(imported_modules) + im2_ci: t.CSizeT = 0 + while im2_ci < im2_len and result_found == 0: + while im2_ci < im2_len and imported_modules[im2_ci] == ' ': + im2_ci += 1 + if im2_ci >= im2_len: + break + im2_start: t.CSizeT = im2_ci + while im2_ci < im2_len and imported_modules[im2_ci] != ' ': + im2_ci += 1 + im2_end: t.CSizeT = im2_ci + im2_nlen: t.CSizeT = im2_end - im2_start + if im2_nlen > 0 and im2_nlen < 256: + im2_buf: str = pool.alloc(im2_nlen + 1) + if im2_buf is not None: + mk3: t.CSizeT = 0 + while mk3 < im2_nlen: + im2_buf[mk3] = imported_modules[im2_start + mk3] + mk3 += 1 + im2_buf[im2_nlen] = '\0' + sub_fi2: str = pool.alloc(im2_nlen + 3) + if sub_fi2 is not None: + sub_fi2[0] = '*' + sub_fi2[1] = ':' + mk4: t.CSizeT = 0 + while mk4 < im2_nlen: + sub_fi2[2 + mk4] = im2_buf[mk4] + mk4 += 1 + sub_fi2[2 + im2_nlen] = '\0' + sub_val2: int = _lookup_cross_module_cdefine(pool, name, sub_fi2, None) + if HandlesType.is_cdefine_found() != 0: + result_val = sub_val2 + result_found = 1 + # 10. 缓存到当前模块的 CDefine 表中 if result_found != 0: HandlesType.register_cdefine_constant(pool, name, result_val) @@ -1592,8 +1706,9 @@ def translate_name_value(builder: llvmlite.IRBuilder | t.CPtr, # 仅对符合 CDefine 命名约定(ALL_CAPS)的名字触发跨模块查找, # 避免对普通变量名(mb/name/ptr/pool/self 等)误触发,造成严重性能损耗 if _is_cdefine_name_pattern(nm_id) != 0: - if trans is not None and trans._from_imports is not None: - cdef_val = _lookup_cross_module_cdefine(pool, nm_id, trans._from_imports) + if trans is not None: + cdef_val = _lookup_cross_module_cdefine( + pool, nm_id, trans._from_imports, trans._imported_modules) if HandlesType.is_cdefine_found() != 0: return llvmlite.const_int32(pool, cdef_val) @@ -2121,6 +2236,92 @@ def make_global_ref(pool: memhub.MemBuddy | t.CPtr, # ty_hint: 类型提示 (写路径用 rhs 类型, 读路径用 i8* 回退) # 返回: Value 指针 (类型为 ty*),未识别为模块属性返回 None # ============================================================ +def _is_t_type_object_name(name: str) -> int: + """检查 name 是否是 t.py 中的类型对象名(CPtr/CInt/CDouble 等) + + 这些类型对象在运行时作为全局变量 @CPtr/@CInt 等被引用, + 但 t.py 不被编译,需要在使用处生成带 null 初值的定义。 + """ + if name is None: + return 0 + # t.py 中的类型对象名(PascalCase,首字母大写) + if string.strcmp(name, "CPtr") == 0: + return 1 + if string.strcmp(name, "CInt") == 0: + return 1 + if string.strcmp(name, "CChar") == 0: + return 1 + if string.strcmp(name, "CShort") == 0: + return 1 + if string.strcmp(name, "CLong") == 0: + return 1 + if string.strcmp(name, "CLongLong") == 0: + return 1 + if string.strcmp(name, "CDouble") == 0: + return 1 + if string.strcmp(name, "CFloat") == 0: + return 1 + if string.strcmp(name, "CBool") == 0: + return 1 + if string.strcmp(name, "CVoid") == 0: + return 1 + if string.strcmp(name, "CInt8T") == 0: + return 1 + if string.strcmp(name, "CInt16T") == 0: + return 1 + if string.strcmp(name, "CInt32T") == 0: + return 1 + if string.strcmp(name, "CInt64T") == 0: + return 1 + if string.strcmp(name, "CUInt8T") == 0: + return 1 + if string.strcmp(name, "CUInt16T") == 0: + return 1 + if string.strcmp(name, "CUInt32T") == 0: + return 1 + if string.strcmp(name, "CUInt64T") == 0: + return 1 + if string.strcmp(name, "CUnsigned") == 0: + return 1 + if string.strcmp(name, "CUnsignedInt") == 0: + return 1 + if string.strcmp(name, "CUnsignedChar") == 0: + return 1 + if string.strcmp(name, "CUnsignedShort") == 0: + return 1 + if string.strcmp(name, "CUnsignedLong") == 0: + return 1 + if string.strcmp(name, "CUnsignedLongLong") == 0: + return 1 + if string.strcmp(name, "CSizeT") == 0: + return 1 + if string.strcmp(name, "CIntPtrT") == 0: + return 1 + if string.strcmp(name, "CUIntPtrT") == 0: + return 1 + if string.strcmp(name, "CPtrDiffT") == 0: + return 1 + if string.strcmp(name, "CType") == 0: + return 1 + if string.strcmp(name, "CDefine") == 0: + return 1 + if string.strcmp(name, "CStatic") == 0: + return 1 + if string.strcmp(name, "CExport") == 0: + return 1 + if string.strcmp(name, "CArray") == 0: + return 1 + if string.strcmp(name, "CTypedef") == 0: + return 1 + if string.strcmp(name, "CNoVTable") == 0: + return 1 + if string.strcmp(name, "CNeedPtr") == 0: + return 1 + if string.strcmp(name, "CAutoPtr") == 0: + return 1 + return 0 + + def _resolve_module_attribute_global(pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, trans: HT.Translator | t.CPtr, @@ -2150,10 +2351,33 @@ def _resolve_module_attribute_global(pool: memhub.MemBuddy | t.CPtr, use_ty = llvmlite.Int8(pool) # 确保 use_ty 中的跨模块结构体类型有 opaque 声明 llvmlite.module_ensure_opaque_for_type(mod, pool, use_ty) + # 特殊处理: t.py 中的类型对象(CPtr/CInt/CDouble 等) + # t.py 不被编译,但这些类型对象在运行时被引用(如 va_arg(ap, t.CPtr))。 + # 创建带 null 初值的 linkonce_odr 全局变量定义,避免链接时 undefined reference。 + # LLVM 22+ 不允许 external linkage 全局变量带初值,使用 linkonce_odr 替代。 + is_t_type_obj: int = 0 + if string.strcmp(mod_nm.id, "t") == 0: + is_t_type_obj = _is_t_type_object_name(at.attr) ext_gv: llvmlite.GlobalVariable | t.CPtr = llvmlite.new_global_variable(pool, at.attr, use_ty) if ext_gv is not None: - ext_gv.Linkage = "external" - ext_gv.Initializer = None + if is_t_type_obj != 0: + # t.CPtr 等类型对象: 创建带 null 初值的定义(linkonce_odr) + ext_gv.Linkage = "linkonce_odr" + # i8* null 的初值文本 + null_init: bytes = pool.alloc(8) + if null_init is not None: + null_init[0] = 'n' + null_init[1] = 'u' + null_init[2] = 'l' + null_init[3] = 'l' + null_init[4] = '\0' + ext_gv.Initializer = null_init + else: + ext_gv.Initializer = None + else: + # 普通模块属性: external 声明(由其他模块提供定义) + ext_gv.Linkage = "external" + ext_gv.Initializer = None llvmlite.module_add_global(mod, ext_gv) return make_global_ref(pool, at.attr, use_ty) @@ -2302,6 +2526,24 @@ def translate_attribute(builder: llvmlite.IRBuilder | t.CPtr, is_submod = 1 if is_submod != 0: return None # 是子模块,交给嵌套属性访问路径 + # 特殊处理: t.ASM_DESCR 不是 CDefine,是内联汇编约束命名空间 + # t.ASM_DESCR.XXX 由 HandlesExprCall 的 _asm_resolve_constraint 处理 + # 此处返回 None,让上层嵌套属性访问路径处理 + if string.strcmp(nm_ma.id, "t") == 0 and string.strcmp(at.attr, "ASM_DESCR") == 0: + return None + # CDefine 未找到且属性名符合 ALL_CAPS 约定: 报 FATAL 错误 + # 不再创建未定义的外部全局变量引用(否则 llc 报 "use of undefined value") + if _is_cdefine_name_pattern(at.attr) != 0: + err_buf_sma: str = pool.alloc(256) + if err_buf_sma is not None: + cur_sha1_sma: str = "(unknown)" + if trans is not None and trans.ModuleSha1 is not None: + cur_sha1_sma = trans.ModuleSha1 + viperlib.snprintf(err_buf_sma, 256, + "[CD] FATAL: Module attr '%s.%s' NOT found (CDefine cross-module lookup failed) in module sha1=%s\n", + nm_ma.id, at.attr, cur_sha1_sma) + VLogger.error(err_buf_sma, "CD") + return None # 非 CDefine: 使用 i8* 作为类型提示 (模块级变量通常存储指针) i8_ptr_hint: llvmlite.LLVMType | t.CPtr = llvmlite.Ptr(pool, llvmlite.Int8(pool)) mod_gv_ref: llvmlite.Value | t.CPtr = _resolve_module_attribute_global( @@ -2347,14 +2589,21 @@ def translate_attribute(builder: llvmlite.IRBuilder | t.CPtr, cdef_val_nested = _lookup_cross_module_cdefine(pool, at.attr, tmp_fi) if HandlesType.is_cdefine_found() != 0: return llvmlite.const_int32(pool, cdef_val_nested) - # CDefine 未找到: 创建前向引用 (CDefine 通常是 i32) - i32_ty_fwd: llvmlite.LLVMType | t.CPtr = llvmlite.Int32(pool) - gv_ref_fwd: llvmlite.Value | t.CPtr = make_global_ref( - pool, at.attr, i32_ty_fwd) - if gv_ref_fwd is not None and gv_ref_fwd.Ty is not None: - load_ty_fwd: llvmlite.LLVMType | t.CPtr = gv_ref_fwd.Ty.Pointee - if load_ty_fwd is not None: - return llvmlite.build_load(builder, load_ty_fwd, gv_ref_fwd) + # CDefine 未找到: 报 FATAL 错误(不再创建未定义的全局变量引用) + # 之前此处创建 @INVALID_HANDLE_VALUE 等前向引用,但全局未定义, + # 导致 llc 报 "use of undefined value" 错误。 + # 正确做法是报错终止,让开发者修复跨模块 CDefine 查找失败的根本原因。 + if _is_cdefine_name_pattern(at.attr) != 0: + err_buf_ma: str = pool.alloc(256) + if err_buf_ma is not None: + cur_sha1_ma: str = "(unknown)" + if trans is not None and trans.ModuleSha1 is not None: + cur_sha1_ma = trans.ModuleSha1 + viperlib.snprintf(err_buf_ma, 256, + "[CD] FATAL: Nested attr '%s.%s' NOT found (CDefine cross-module lookup failed) in module sha1=%s\n", + qual_buf, at.attr, cur_sha1_ma) + VLogger.error(err_buf_ma, "CD") + return None # 对于 Name 类型的 obj,直接查找 alloca(不 load 结构体) obj_ptr: llvmlite.Value | t.CPtr = None @@ -2401,7 +2650,7 @@ def translate_attribute(builder: llvmlite.IRBuilder | t.CPtr, builder, struct_ty, alias_fe.Ty, obj_ptr, alias_idx) if alias_ptr is not None: return llvmlite.build_load(builder, alias_fe.Ty, alias_ptr) - # 回退: 类型指针比较失败时,通过 AnnotClassName 按类名查找 + # 按需过滤: struct_ty 为 i8(简化联合类型)时,通过 AnnotClassName 按类名查找 # 传递 SHA1 以区分跨模块同名类 if field_info is None: if at.value.kind() == ast.ASTKind.Name and trans is not None: @@ -2413,7 +2662,7 @@ def translate_attribute(builder: llvmlite.IRBuilder | t.CPtr, cur_sha1: str = trans.ModuleSha1 field_info = HandlesStruct.lookup_field_by_class( var_entry.AnnotClassName, at.attr, cur_sha1) - # 回退 1 成功:bitcast obj_ptr 到 AnnotClassName 对应的结构体类型 + # 按需过滤成功:bitcast obj_ptr 到 AnnotClassName 对应的结构体类型 # 原始 struct_ty 可能是 i8(X|t.CPtr 简化为 Ptr(i8)), # 需用实际结构体类型做 GEP,否则 GEP i8 失败 if field_info is not None: @@ -2427,33 +2676,11 @@ def translate_attribute(builder: llvmlite.IRBuilder | t.CPtr, if casted_ptr is not None: obj_ptr = casted_ptr struct_ty = annot_se.Ty - # 回退 1 更新 struct_ty 后,需重新确保 + # 按需过滤更新 struct_ty 后,需重新确保 # 注解类型结构体定义在当前模块可用 # (原始 struct_ty 可能是 i8,ensure 无效) HandlesStruct.ensure_struct_def_in_module( pool, mod, annot_se.Ty) - # 回退 2: 子类搜索 — 注解类型是基类但实际值是派生类 - # 如 node: AST | t.CPtr = If(...),访问 node.orelse - if field_info is None: - sub_entry: HandlesStruct.StructEntry | t.CPtr = \ - HandlesStruct.find_subclass_with_field( - var_entry.AnnotClassName, at.attr) - if sub_entry is not None and sub_entry.Ty is not None: - sub_field: HandlesStruct.FieldEntry | t.CPtr = \ - HandlesStruct.lookup_field(sub_entry.Ty, at.attr) - if sub_field is not None: - sub_ptr_ty: llvmlite.LLVMType | t.CPtr = \ - llvmlite.Ptr(pool, sub_entry.Ty) - casted_ptr: llvmlite.Value | t.CPtr = \ - llvmlite.build_bitcast(builder, obj_ptr, sub_ptr_ty) - if casted_ptr is not None: - sub_field_ptr: llvmlite.Value | t.CPtr = \ - llvmlite.build_gep_struct( - builder, sub_entry.Ty, sub_field.Ty, - casted_ptr, sub_field.Index) - if sub_field_ptr is not None: - return llvmlite.build_load( - builder, sub_field.Ty, sub_field_ptr) if field_info is not None: field_ty: llvmlite.LLVMType | t.CPtr = field_info.Ty # 联合体:bitcast obj_ptr 到 field_ty* 后 load @@ -2483,6 +2710,28 @@ def translate_attribute(builder: llvmlite.IRBuilder | t.CPtr, annot_ptr_ty: llvmlite.LLVMType | t.CPtr = llvmlite.Ptr(pool, annot_struct.Ty) return llvmlite.build_bitcast(builder, loaded_val, annot_ptr_ty) return loaded_val + # fast-fail: 字段未找到,打印诊断信息 + if trans is not None: + diag_annot: str = None + diag_var_nm: str = None + if at.value is not None and at.value.kind() == ast.ASTKind.Name: + dnm: ast.Name | t.CPtr = (ast.Name | t.CPtr)(at.value) + diag_var_nm = dnm.id + if dnm.id is not None: + dve: HandlesVar.VarEntry | t.CPtr = HandlesVar.lookup_var_entry( + trans.SymTab, dnm.id) + if dve is not None: + diag_annot = dve.AnnotClassName + fb_attr: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_attr is not None: + viperlib.snprintf(fb_attr, 1024, + "属性访问失败: .%s (var=%s annot=%s sha1=%s:%d)", + at.attr, + diag_var_nm if diag_var_nm is not None else "?", + diag_annot if diag_annot is not None else "None", + trans.ModuleSha1 if trans.ModuleSha1 is not None else "?", + at.lineno if at.lineno is not None else 0) + VLogger.error(fb_attr, "ATTR") return None case _: return None @@ -2620,6 +2869,15 @@ def get_attribute_ptr(builder: llvmlite.IRBuilder | t.CPtr, if obj_ptr is None and at.value.kind() == ast.ASTKind.Name and trans is not None: nm_wma: ast.Name | t.CPtr = (ast.Name | t.CPtr)(at.value) if nm_wma.id is not None: + # CDefine 常量不可写: 报 FATAL 错误,不创建未定义全局 + if _is_cdefine_name_pattern(at.attr) != 0: + err_buf_wma: str = pool.alloc(256) + if err_buf_wma is not None: + viperlib.snprintf(err_buf_wma, 256, + "[CD] FATAL: Cannot assign to CDefine constant '%s.%s'\n", + nm_wma.id, at.attr) + VLogger.error(err_buf_wma, "CD") + return None # 使用 i8* 作为类型提示 (模块级变量通常存储指针) i8_ptr_w: llvmlite.LLVMType | t.CPtr = llvmlite.Ptr(pool, llvmlite.Int8(pool)) wma_ref: llvmlite.Value | t.CPtr = _resolve_module_attribute_global( @@ -2645,7 +2903,7 @@ def get_attribute_ptr(builder: llvmlite.IRBuilder | t.CPtr, HandlesStruct.ensure_struct_def_in_module(pool, mod, struct_ty) field_info: HandlesStruct.FieldEntry | t.CPtr = HandlesStruct.lookup_field( struct_ty, at.attr) - # 回退 1: 类型指针比较失败时,通过 AnnotClassName 按类名查找 + # 按需过滤: struct_ty 为 i8(简化联合类型)时,通过 AnnotClassName 按类名查找 # 传递 SHA1 以区分跨模块同名类 if field_info is None: if at.value.kind() == ast.ASTKind.Name and trans is not None: @@ -2659,7 +2917,7 @@ def get_attribute_ptr(builder: llvmlite.IRBuilder | t.CPtr, cur_sha1 = trans.ModuleSha1 field_info = HandlesStruct.lookup_field_by_class( var_entry.AnnotClassName, at.attr, cur_sha1) - # 回退 1 成功:bitcast obj_ptr 到 AnnotClassName 对应的结构体类型 + # 按需过滤成功:bitcast obj_ptr 到 AnnotClassName 对应的结构体类型 # 原始 struct_ty 可能是 i8(X|t.CPtr 简化为 Ptr(i8)), # 需用实际结构体类型做 GEP,否则 GEP i8 失败 if field_info is not None: @@ -2673,32 +2931,10 @@ def get_attribute_ptr(builder: llvmlite.IRBuilder | t.CPtr, if casted_ptr is not None: obj_ptr = casted_ptr struct_ty = annot_se.Ty - # 回退 1 更新 struct_ty 后,需重新确保 + # 按需过滤更新 struct_ty 后,需重新确保 # 注解类型结构体定义在当前模块可用 HandlesStruct.ensure_struct_def_in_module( pool, mod, annot_se.Ty) - # 回退 2: 子类搜索 — 注解类型是基类但实际值是派生类 - # 如 node: AST | t.CPtr = If(...),访问 node.orelse - # orelse 在 If 上不在 AST 上,需搜索 AST 的子类 - if field_info is None: - sub_entry: HandlesStruct.StructEntry | t.CPtr = \ - HandlesStruct.find_subclass_with_field( - var_entry.AnnotClassName, at.attr) - if sub_entry is not None and sub_entry.Ty is not None: - sub_field: HandlesStruct.FieldEntry | t.CPtr = \ - HandlesStruct.lookup_field(sub_entry.Ty, at.attr) - if sub_field is not None: - sub_ptr_ty: llvmlite.LLVMType | t.CPtr = \ - llvmlite.Ptr(pool, sub_entry.Ty) - casted_ptr: llvmlite.Value | t.CPtr = \ - llvmlite.build_bitcast(builder, obj_ptr, sub_ptr_ty) - if casted_ptr is not None: - # 确保子类结构体定义在当前模块可用 - HandlesStruct.ensure_struct_def_in_module( - pool, mod, sub_entry.Ty) - return llvmlite.build_gep_struct( - builder, sub_entry.Ty, sub_field.Ty, - casted_ptr, sub_field.Index) if field_info is not None: # 联合体:bitcast obj_ptr 到 field_ty*(字段指针用于 store) if HandlesStruct.is_union_by_type(struct_ty) == 1: @@ -2707,6 +2943,28 @@ def get_attribute_ptr(builder: llvmlite.IRBuilder | t.CPtr, # 普通结构体:GEP 获取字段指针 return llvmlite.build_gep_struct( builder, struct_ty, field_info.Ty, obj_ptr, field_info.Index) + # fast-fail: 字段未找到,打印诊断信息 + if trans is not None: + diag_annot_g: str = None + diag_var_nm_g: str = None + if at.value is not None and at.value.kind() == ast.ASTKind.Name: + dnm_g: ast.Name | t.CPtr = (ast.Name | t.CPtr)(at.value) + diag_var_nm_g = dnm_g.id + if dnm_g.id is not None: + dve_g: HandlesVar.VarEntry | t.CPtr = HandlesVar.lookup_var_entry( + trans.SymTab, dnm_g.id) + if dve_g is not None: + diag_annot_g = dve_g.AnnotClassName + fb_attr_g: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_attr_g is not None: + viperlib.snprintf(fb_attr_g, 1024, + "属性写入失败: .%s (var=%s annot=%s sha1=%s:%d)", + at.attr, + diag_var_nm_g if diag_var_nm_g is not None else "?", + diag_annot_g if diag_annot_g is not None else "None", + trans.ModuleSha1 if trans.ModuleSha1 is not None else "?", + at.lineno if at.lineno is not None else 0) + VLogger.error(fb_attr_g, "ATTR") return None case _: return None diff --git a/TransPyV/App/lib/core/Handles/HandlesExprCall.py b/TransPyV/App/lib/core/Handles/HandlesExprCall.py index 6f5c6ff..1d40c34 100644 --- a/TransPyV/App/lib/core/Handles/HandlesExprCall.py +++ b/TransPyV/App/lib/core/Handles/HandlesExprCall.py @@ -3763,6 +3763,28 @@ def translate_call(pool: memhub.MemBuddy | t.CPtr, if cargs is not None: can = cargs.__len__() + # 内置强转函数: str(x)/bytes(x) → i8*, int(x) → i32 + # 等价于 (t.CChar | t.CPtr)(x) / (t.CInt32T)(x) + # 单参数:str(val) → bitcast val to i8* + # int(val) → trunc/sext val to i32 + if func_name is not None and can == 1: + if string.strcmp(func_name, "str") == 0 or string.strcmp(func_name, "bytes") == 0: + # str(x) / bytes(x) → i8* (bitcast) + cast_arg: llvmlite.Value | t.CPtr = HandlesExpr.translate_value( + builder, pool, mod, cargs.get(0), funcs_ptr, func_count, trans) + if cast_arg is not None: + i8_ptr_ty_builtin: llvmlite.LLVMType | t.CPtr = llvmlite.Ptr(pool, llvmlite.Int8(pool)) + return _translate_t_type_cast(pool, builder, cast_arg, i8_ptr_ty_builtin) + return None + elif string.strcmp(func_name, "int") == 0: + # int(x) → i32 + cast_arg_int: llvmlite.Value | t.CPtr = HandlesExpr.translate_value( + builder, pool, mod, cargs.get(0), funcs_ptr, func_count, trans) + if cast_arg_int is not None: + i32_ty_builtin: llvmlite.LLVMType | t.CPtr = llvmlite.Int32(pool) + return _translate_t_type_cast(pool, builder, cast_arg_int, i32_ty_builtin) + return None + # 检测 t.XXX 类型转换: t.CUInt64T(ptr), t.CPtr(val), t.CInt(val) 等 # 当 func 是 t.XXX 形式且 XXX 是已知类型名时,当作类型转换处理(而非函数调用) # 支持: @@ -3907,11 +3929,6 @@ def translate_call(pool: memhub.MemBuddy | t.CPtr, # 模块属性前向引用回退为 i32),GEP base 会是 i32 而非指针, # 导致 llc 报错 "base of getelementptr must be a pointer" if HandlesExpr.is_ptr_type(obj_val.Ty) == 0: - # 诊断: 输出节点类型信息帮助定位根本原因 - len_node_kind: int = len_at.value.kind() - stdio.printf( - "[LEN-DIAG] __len__ on non-ptr (kind=%d), fallback to 0\n", - len_node_kind) return llvmlite.const_int64(pool, 0) i64_ty_len: llvmlite.LLVMType | t.CPtr = llvmlite.Int64(pool) # 注意: 必须用 const_int64 而非 ConstInt(...,"0") diff --git a/TransPyV/App/lib/core/Handles/HandlesFor.py b/TransPyV/App/lib/core/Handles/HandlesFor.py index 5e0d71f..214b98e 100644 --- a/TransPyV/App/lib/core/Handles/HandlesFor.py +++ b/TransPyV/App/lib/core/Handles/HandlesFor.py @@ -143,12 +143,26 @@ class ForHandle(HandlesBase.Mixin): trans.SymTab, var_name, var_alloca) == 0: new_vars = 1 - # 5. 存储初始值 (类型对齐: start_val 可能是 i64,需截断到 i32) + # 获取循环变量的实际元素类型(alloca 是指针类型,需解引用 Pointee) + # 当循环变量已声明为 i64(如 t.CSizeT),使用 i64 而非硬编码 i32 + # 避免 load i32, i64* / store i32, i64* 类型不匹配 + loop_var_ty: llvmlite.LLVMType | t.CPtr = i32_ty + if var_alloca is not None and var_alloca.Ty is not None: + match var_alloca.Ty: + case llvmlite.LLVMType.Ptr(pointee_ty): + if pointee_ty is not None: + loop_var_ty = pointee_ty + loop_var_bits: int = HandlesExpr.get_llvm_type_bits(loop_var_ty) + + # 5. 存储初始值 (类型对齐: start_val 可能是 i32/i64,需对齐到 loop_var_ty) init_val: llvmlite.Value | t.CPtr = start_val if start_val is not None and start_val.Ty is not None: start_bits: int = HandlesExpr.get_llvm_type_bits(start_val.Ty) - if start_bits != 0 and start_bits != 32: - init_val = llvmlite.build_trunc(builder, start_val, i32_ty) + if start_bits != 0 and start_bits != loop_var_bits: + if start_bits < loop_var_bits: + init_val = llvmlite.build_sext(builder, start_val, loop_var_ty) + else: + init_val = llvmlite.build_trunc(builder, start_val, loop_var_ty) llvmlite.build_store(builder, init_val, var_alloca) # 6. 创建基本块: cond / body / incr / end(使用 trans._label_counter,不与 SSA 名共享) @@ -173,7 +187,7 @@ class ForHandle(HandlesBase.Mixin): # 8. cond 块: load i, icmp slt i, stop, cond_br body/end llvmlite.position_at_end(builder, cond_bb) - cur_i: llvmlite.Value | t.CPtr = llvmlite.build_load(builder, i32_ty, var_alloca) + cur_i: llvmlite.Value | t.CPtr = llvmlite.build_load(builder, loop_var_ty, var_alloca) # 类型对齐: stop_val 可能是 i64 (如 range(strlen(s))),需将 cur_i 提升到 stop_val 类型 cmp_lhs: llvmlite.Value | t.CPtr = cur_i cmp_rhs: llvmlite.Value | t.CPtr = stop_val @@ -184,7 +198,7 @@ class ForHandle(HandlesBase.Mixin): if cur_bits < stop_bits: cmp_lhs = llvmlite.build_sext(builder, cur_i, stop_val.Ty) else: - cmp_rhs = llvmlite.build_trunc(builder, stop_val, i32_ty) + cmp_rhs = llvmlite.build_trunc(builder, stop_val, loop_var_ty) cond_i1: llvmlite.Value | t.CPtr = llvmlite.build_icmp( builder, llvmlite.ICMP_SLT, cmp_lhs, cmp_rhs) llvmlite.build_cond_br(builder, cond_i1, body_bb, end_bb) @@ -215,17 +229,17 @@ class ForHandle(HandlesBase.Mixin): # 10. incr 块: i = i + step, 跳回 cond llvmlite.position_at_end(builder, incr_bb) - cur_i2: llvmlite.Value | t.CPtr = llvmlite.build_load(builder, i32_ty, var_alloca) - # 类型对齐: step_val 可能是 i64,需截断到 i32 与 cur_i2 类型一致 + cur_i2: llvmlite.Value | t.CPtr = llvmlite.build_load(builder, loop_var_ty, var_alloca) + # 类型对齐: step_val 可能是 i32/i64,需对齐到 loop_var_ty 与 cur_i2 类型一致 incr_step: llvmlite.Value | t.CPtr = step_val if step_val is not None and step_val.Ty is not None: step_bits: int = HandlesExpr.get_llvm_type_bits(step_val.Ty) cur2_bits: int = HandlesExpr.get_llvm_type_bits(cur_i2.Ty) if step_bits != 0 and cur2_bits != 0 and step_bits != cur2_bits: if step_bits > cur2_bits: - incr_step = llvmlite.build_trunc(builder, step_val, i32_ty) + incr_step = llvmlite.build_trunc(builder, step_val, loop_var_ty) else: - incr_step = llvmlite.build_sext(builder, step_val, i32_ty) + incr_step = llvmlite.build_sext(builder, step_val, loop_var_ty) next_i: llvmlite.Value | t.CPtr = llvmlite.build_add(builder, cur_i2, incr_step) llvmlite.build_store(builder, next_i, var_alloca) llvmlite.build_br(builder, cond_bb) diff --git a/TransPyV/App/lib/core/Handles/HandlesImports.py b/TransPyV/App/lib/core/Handles/HandlesImports.py index 3dce049..4d9512a 100644 --- a/TransPyV/App/lib/core/Handles/HandlesImports.py +++ b/TransPyV/App/lib/core/Handles/HandlesImports.py @@ -559,21 +559,6 @@ class ImportsHandle(HandlesBase.Mixin): resolved: str = _resolve_relative_module( self.Trans.Pool, self.Trans.CurrentPackage, impf.level, impf.module) - # [IFD] 诊断 from-import 名称处理 - mod_dbg: str = "(null)" - if impf.module is not None: - mod_dbg = impf.module - pkg_dbg: str = "(null)" - if self.Trans.CurrentPackage is not None: - pkg_dbg = self.Trans.CurrentPackage - res_dbg: str = "(null)" - if resolved is not None: - res_dbg = resolved - names_dbg: t.CSizeT = 0 - if impf.names is not None: - names_dbg = impf.names.__len__() - stdio.printf("[IFD] level=%d module=%s pkg=%s resolved=%s names=%d\n", - impf.level, mod_dbg, pkg_dbg, res_dbg, names_dbg) if resolved is not None: names: list[ast.AST | t.CPtr] | t.CPtr = impf.names if names is not None: diff --git a/TransPyV/App/lib/core/Handles/HandlesMain.py b/TransPyV/App/lib/core/Handles/HandlesMain.py index aabbd8f..426bad6 100644 --- a/TransPyV/App/lib/core/Handles/HandlesMain.py +++ b/TransPyV/App/lib/core/Handles/HandlesMain.py @@ -129,11 +129,136 @@ def translate_children(trans: HT.Translator | t.CPtr, return added_total +# ============================================================ +# _build_array_initializer_text - 从 AST List 生成 LLVM IR 数组初始化器 +# +# 生成格式: [N x elem_ty] [elem_ty val0, elem_ty val1, ...] +# 用于模块级 t.CArray 列表字面量初始化(不依赖 builder,直接生成常量初始化器) +# ============================================================ +def _build_array_initializer_text(pool: memhub.MemBuddy | t.CPtr, + var_ty: llvmlite.LLVMType | t.CPtr, + list_node: ast.List | t.CPtr) -> str: + """从 AST List 节点生成 LLVM IR 数组初始化器文本,None 失败""" + if var_ty is None or list_node is None: + return None + + # 重新进行类型转换,确保 TPV 编译器正确识别 ast.List 类型 + # (避免 init_list_node 初始值为 None 时类型推断退化为 t.CPtr) + ln: ast.List | t.CPtr = (ast.List | t.CPtr)(list_node) + if ln is None: + return None + + # 从 var_ty 提取数组元素类型和数量 + elem_ty: llvmlite.LLVMType | t.CPtr = None + arr_count: t.CInt = 0 + match var_ty: + case llvmlite.LLVMType.Array(et, cnt): + elem_ty = et + arr_count = cnt + + if elem_ty is None or arr_count <= 0: + return None + + # 确定元素类型的 IR 表示 + elem_ir_ty: str = "i8" + match elem_ty: + case llvmlite.LLVMType.Int(bits): + if bits == 8: + elem_ir_ty = "i8" + elif bits == 16: + elem_ir_ty = "i16" + elif bits == 32: + elem_ir_ty = "i32" + elif bits == 64: + elem_ir_ty = "i64" + + # 获取列表元素(通过 ln.elts 而非 list_node.elts,确保类型正确识别) + elts: list[ast.AST | t.CPtr] | t.CPtr = ln.elts + if elts is None: + return None + elts_count: t.CSizeT = elts.__len__() + + # 计算缓冲区大小: 每个元素最多 "i32 -9223372036854775808, " 约 26 字符 + buf_size: t.CSizeT = 64 + elts_count * 32 + buf: t.CChar | t.CPtr = pool.alloc(buf_size) + if buf is None: + return None + + # 写入前缀: "["(类型前缀由 _print_global 输出,初始化器只需元素列表) + written: t.CInt = viperlib.snprintf(buf, buf_size, "[") + pos: t.CSizeT = t.CSizeT(written) + + # 逐个元素写入 + i: t.CSizeT = 0 + while i < elts_count: + elem_node: ast.AST | t.CPtr = elts.get(i) + # 直接从 Constant 节点提取 int_val(避免 extract_cdefine_int_value 的 t.CInt 截断) + elem_val: t.CInt64T = 0 + if elem_node is not None: + ek: int = elem_node.kind() + if ek == ast.ASTKind.Constant: + ec: ast.Constant | t.CPtr = (ast.Constant | t.CPtr)(elem_node) + if ec is not None and ec.const_kind == ast.CONST_INT: + elem_val = ec.int_val + elif ek == ast.ASTKind.UnaryOp: + # 负数: UnaryOp(USub, Constant) + elem_val = HandlesAnnAssign.extract_cdefine_int_value(elem_node) + if i > 0: + written = viperlib.snprintf(buf + pos, buf_size - pos, ", ") + pos += t.CSizeT(written) + written = viperlib.snprintf(buf + pos, buf_size - pos, "%s %lld", elem_ir_ty, elem_val) + pos += t.CSizeT(written) + i += 1 + + # 写入后缀 "]" + viperlib.snprintf(buf + pos, buf_size - pos, "]") + return buf + + +# ============================================================ +# _build_string_ptr_initializer - 为字符串字面量初始化指针类型全局变量 +# +# 创建内部字符串常量全局 @.str.{var_name} = private constant [len+1 x i8] c"...\00" +# 返回 GEP 初始化器文本: getelementptr inbounds ([len+1 x i8], [len+1 x i8]* @.str.{var_name}, i32 0, i32 0) +# 用于 b64_tab: t.CArray[t.CChar, None] = "ABC..." 等字符串初始化指针类型 +# ============================================================ +def _build_string_ptr_initializer(pool: memhub.MemBuddy | t.CPtr, + mod: llvmlite.LLVMModule | t.CPtr, + var_name: str, + str_val: str) -> str: + """为字符串字面量创建内部常量全局并返回 GEP 初始化器文本,None 失败""" + if str_val is None or var_name is None: + return None + + # 构造内部字符串常量名称: .str.{var_name} + str_name_buf: t.CChar | t.CPtr = pool.alloc(64) + if str_name_buf is None: + return None + viperlib.snprintf(str_name_buf, 64, ".str.%s", var_name) + + # 调用 llvmlite.create_global_string 创建字符串常量全局 + str_gv: llvmlite.GlobalVariable | t.CPtr = llvmlite.create_global_string( + pool, mod, str_name_buf, str_val) + if str_gv is None: + return None + + # 生成 GEP 初始化器文本 + str_len: t.CSizeT = string.strlen(str_val) + init_buf: t.CChar | t.CPtr = pool.alloc(128) + if init_buf is None: + return None + viperlib.snprintf(init_buf, 128, + "getelementptr inbounds ([%d x i8], [%d x i8]* @%s, i32 0, i32 0)", + str_len + 1, str_len + 1, str_name_buf) + return init_buf + + # ============================================================ # handle_module_level_var - 模块级变量声明 → 创建 LLVM 全局变量 # # 当用户已定义 main(无 wrapper main builder)时,模块级 # AnnAssign/Assign 创建全局变量 @var_name 并注册到 SymTab 模块作用域 +# 支持整数、列表字面量、字符串字面量初始值 # ============================================================ def handle_module_level_var(trans: HT.Translator | t.CPtr, node: ast.AST | t.CPtr) -> int: @@ -163,7 +288,9 @@ def handle_module_level_var(trans: HT.Translator | t.CPtr, var_name: str = None var_ty: llvmlite.LLVMType | t.CPtr = llvmlite.Int32(pool) init_val: t.CInt64T = 0 - has_init: int = 0 + init_kind: int = 0 # 0=none, 1=int, 2=list, 3=str + init_str_val: str = None + init_list_node: ast.List | t.CPtr = None if k == ast.ASTKind.AnnAssign: aa: ast.AnnAssign | t.CPtr = (ast.AnnAssign | t.CPtr)(node) @@ -179,12 +306,20 @@ def handle_module_level_var(trans: HT.Translator | t.CPtr, pool, aa.annotation, trans._imported_modules, trans._from_imports, trans) if resolved is not None: var_ty = resolved - # 解析初始值 - if aa.value is not None and aa.value.kind() == ast.ASTKind.Constant: - cn: ast.Constant | t.CPtr = (ast.Constant | t.CPtr)(aa.value) - if cn.const_kind == ast.CONST_INT: - init_val = cn.int_val - has_init = 1 + # 解析初始值(支持整数、列表字面量、字符串字面量) + if aa.value is not None: + val_kind: int = aa.value.kind() + if val_kind == ast.ASTKind.Constant: + cn: ast.Constant | t.CPtr = (ast.Constant | t.CPtr)(aa.value) + if cn.const_kind == ast.CONST_INT: + init_val = cn.int_val + init_kind = 1 + elif cn.const_kind == ast.CONST_STR: + init_str_val = cn.str_val + init_kind = 3 + elif val_kind == ast.ASTKind.List: + init_list_node = (ast.List | t.CPtr)(aa.value) + init_kind = 2 elif k == ast.ASTKind.Assign: asgn: ast.Assign | t.CPtr = (ast.Assign | t.CPtr)(node) if asgn is None or asgn.targets is None: @@ -197,11 +332,19 @@ def handle_module_level_var(trans: HT.Translator | t.CPtr, return 0 nm2: ast.Name | t.CPtr = (ast.Name | t.CPtr)(t0) var_name = nm2.id - if asgn.value is not None and asgn.value.kind() == ast.ASTKind.Constant: - cn2: ast.Constant | t.CPtr = (ast.Constant | t.CPtr)(asgn.value) - if cn2.const_kind == ast.CONST_INT: - init_val = cn2.int_val - has_init = 1 + if asgn.value is not None: + val_kind2: int = asgn.value.kind() + if val_kind2 == ast.ASTKind.Constant: + cn2: ast.Constant | t.CPtr = (ast.Constant | t.CPtr)(asgn.value) + if cn2.const_kind == ast.CONST_INT: + init_val = cn2.int_val + init_kind = 1 + elif cn2.const_kind == ast.CONST_STR: + init_str_val = cn2.str_val + init_kind = 3 + elif val_kind2 == ast.ASTKind.List: + init_list_node = (ast.List | t.CPtr)(asgn.value) + init_kind = 2 if var_name is None: return 0 @@ -225,11 +368,26 @@ def handle_module_level_var(trans: HT.Translator | t.CPtr, # 设置初始值(有初始值时清除 external linkage,因为 LLVM 22+ 不允许 external global 带初始值) gv.Linkage = None - if has_init != 0: + if init_kind == 1: + # 整数初始值 init_buf: t.CChar | t.CPtr = pool.alloc(48) if init_buf is not None: viperlib.snprintf(init_buf, 48, "%lld", init_val) gv.Initializer = init_buf + elif init_kind == 2: + # 列表字面量 → 数组初始化器 [N x elem_ty] [elem_ty val0, ...] + arr_init: str = _build_array_initializer_text(pool, var_ty, init_list_node) + if arr_init is not None: + gv.Initializer = arr_init + else: + gv.Initializer = "zeroinitializer" + elif init_kind == 3: + # 字符串字面量 → 创建字符串常量全局 + GEP 引用 + str_init: str = _build_string_ptr_initializer(pool, mod, var_name, init_str_val) + if str_init is not None: + gv.Initializer = str_init + else: + gv.Initializer = "zeroinitializer" else: # 使用 zeroinitializer 而非 "0":指针类型必须用 null/zeroinitializer, # 整数/聚合类型也兼容 zeroinitializer,避免 "integer constant must have integer type" diff --git a/TransPyV/App/lib/core/Handles/HandlesStruct.py b/TransPyV/App/lib/core/Handles/HandlesStruct.py index db025f6..34ccbb8 100644 --- a/TransPyV/App/lib/core/Handles/HandlesStruct.py +++ b/TransPyV/App/lib/core/Handles/HandlesStruct.py @@ -2,6 +2,7 @@ import t, c from stdint import * import memhub import string +import stdlib import llvmlite import stdio import ast @@ -521,10 +522,28 @@ def lookup_field_by_class(class_name: str, # 回退: 无 SHA1 或 SHA1 匹配失败,按类名查找第一个 entry = find_struct(class_name) if entry is None: - # 诊断:遍历打印所有已注册结构体名,确认目标类是否在注册表中 - for diag_i in range(_struct_count): - diag_entry: StructEntry | t.CPtr = _get_struct_entry(diag_i) + # 诊断:目标类未注册 + fb_lfbc: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_lfbc is not None: + viperlib.snprintf(fb_lfbc, 1024, + "lookup_field_by_class: 类 '%s' 未注册 (struct_count=%d)", + class_name, _struct_count) + VLogger.error(fb_lfbc, "STRUCT") return None + # 诊断:找到结构体但字段未找到,打印字段表 + fb_fields: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_fields is not None: + viperlib.snprintf(fb_fields, 1024, + "lookup_field_by_class: 类 '%s' 已注册 (FieldCount=%d) 但字段 '%s' 未找到", + class_name, entry.FieldCount, field_name) + VLogger.error(fb_fields, "STRUCT") + for fi in range(entry.FieldCount): + fe: FieldEntry | t.CPtr = _get_field_entry(entry, fi) + if fe is not None and fe.Name is not None: + fb_fn: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_fn is not None: + viperlib.snprintf(fb_fn, 1024, " 字段[%d]: %s", fi, fe.Name) + VLogger.error(fb_fn, "STRUCT") for fi in range(entry.FieldCount): fe: FieldEntry | t.CPtr = _get_field_entry(entry, fi) if fe is not None and fe.Name is not None: @@ -534,45 +553,6 @@ def lookup_field_by_class(class_name: str, return None -# ============================================================ -# find_subclass_with_field — 在基类的所有子类中搜索包含指定字段的结构体 -# -# 用于处理 "注解类型是基类但实际值是派生类" 的场景: -# node: AST | t.CPtr = If(...) -# node.orelse = orelse ← orelse 在 If 上,不在 AST 上 -# -# 遍历所有已注册结构体,通过 ParentName 链检查继承关系, -# 返回第一个包含 field_name 的子类 StructEntry。 -# ============================================================ -def find_subclass_with_field(base_class_name: str, - field_name: str) -> StructEntry | t.CPtr: - """在 base_class_name 的所有子类中搜索包含 field_name 的结构体 - - 返回第一个找到的 StructEntry(包含正确的 Ty),None=未找到 - """ - if base_class_name is None or field_name is None: - return None - sc_i: int - for sc_i in range(_struct_count): - sc_entry: StructEntry | t.CPtr = _get_struct_entry(sc_i) - if sc_entry is None or sc_entry.Name is None: - continue - # 检查 sc_entry 是否是 base_class_name 的子类(传递性) - cur_parent: str = get_parent_name(sc_entry.Name) - while cur_parent is not None: - if string.strcmp(cur_parent, base_class_name) == 0: - # 是子类,检查是否有该字段 - sc_fi: int - for sc_fi in range(sc_entry.FieldCount): - sc_fe: FieldEntry | t.CPtr = _get_field_entry(sc_entry, sc_fi) - if sc_fe is not None and sc_fe.Name is not None: - if string.strcmp(sc_fe.Name, field_name) == 0: - return sc_entry - break - cur_parent = get_parent_name(cur_parent) - return None - - # ============================================================ # get_struct_type — 按类名获取结构体的 LLVM 类型 # ============================================================ diff --git a/TransPyV/App/lib/core/Handles/HandlesTranslator.py b/TransPyV/App/lib/core/Handles/HandlesTranslator.py index d8c67ed..2b7d100 100644 --- a/TransPyV/App/lib/core/Handles/HandlesTranslator.py +++ b/TransPyV/App/lib/core/Handles/HandlesTranslator.py @@ -6,6 +6,7 @@ import memhub import string import stdio import stdlib +import viperlib import lib.core.VLogger as VLogger import lib.core.Handles.HandlesVar as HandlesVar import lib.core.Handles.HandlesExprCall as HandlesExprCall diff --git a/TransPyV/App/lib/core/Handles/HandlesType.py b/TransPyV/App/lib/core/Handles/HandlesType.py index 5449800..ecb4f7e 100644 --- a/TransPyV/App/lib/core/Handles/HandlesType.py +++ b/TransPyV/App/lib/core/Handles/HandlesType.py @@ -9,6 +9,8 @@ import sys import stdlib import viperlib import w32.fileio as fileio +import lib.core.VLogger as VLogger +import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesImports as HandlesImports import lib.core.Handles.HandlesStruct as HandlesStruct @@ -143,6 +145,95 @@ def clear_cdefine_constants() -> None: _g_cdefine_values = None +# 常量整数表达式计算成功标志(供 _eval_const_int_expr 使用) +_g_const_eval_ok: int = 0 + + +# ============================================================ +# _eval_const_int_expr - 递归计算常量整数表达式 +# +# 支持: +# - Constant (CONST_INT): 整数字面量 +# - Name: CDefine 常量名(通过 lookup_cdefine_constant 查找) +# - BinOp (Add/Sub/Mult/FloorDiv/BitOr/BitAnd): 递归计算左右操作数 +# +# 成功: 设置 _g_const_eval_ok=1, 返回计算值 +# 失败: 设置 _g_const_eval_ok=0, 返回 0 +# +# 用于 t.CArray count 的静态计算,如 2 * ZHUFF_MAX_CODES +# ============================================================ +def _eval_const_int_expr(node: ast.AST | t.CPtr) -> int: + """递归计算常量整数表达式""" + global _g_const_eval_ok + if node is None: + _g_const_eval_ok = 0 + return 0 + k: int = node.kind() + + # Constant: 整数字面量 + if k == ast.ASTKind.Constant: + cn: ast.Constant | t.CPtr = (ast.Constant | t.CPtr)(node) + if cn.const_kind == ast.CONST_INT: + _g_const_eval_ok = 1 + return cn.int_val + _g_const_eval_ok = 0 + return 0 + + # Name: CDefine 常量名 + if k == ast.ASTKind.Name: + nm: ast.Name | t.CPtr = (ast.Name | t.CPtr)(node) + if nm.id is None: + _g_const_eval_ok = 0 + return 0 + val: int = lookup_cdefine_constant(nm.id) + if is_cdefine_found() == 0: + _g_const_eval_ok = 0 + return 0 + _g_const_eval_ok = 1 + return val + + # BinOp: 算术/位运算 + if k == ast.ASTKind.BinOp: + bop: ast.BinOp | t.CPtr = (ast.BinOp | t.CPtr)(node) + # 递归计算左操作数 + lv: int = _eval_const_int_expr(bop.left) + if _g_const_eval_ok == 0: + return 0 + # 递归计算右操作数 + rv: int = _eval_const_int_expr(bop.right) + if _g_const_eval_ok == 0: + return 0 + # 根据运算符执行计算 + if bop.op == ast.OpKind.Add: + _g_const_eval_ok = 1 + return lv + rv + if bop.op == ast.OpKind.Sub: + _g_const_eval_ok = 1 + return lv - rv + if bop.op == ast.OpKind.Mult: + _g_const_eval_ok = 1 + return lv * rv + if bop.op == ast.OpKind.FloorDiv: + if rv == 0: + _g_const_eval_ok = 0 + return 0 + _g_const_eval_ok = 1 + return lv // rv + if bop.op == ast.OpKind.BitOr: + _g_const_eval_ok = 1 + return lv | rv + if bop.op == ast.OpKind.BitAnd: + _g_const_eval_ok = 1 + return lv & rv + # 不支持的运算符 + _g_const_eval_ok = 0 + return 0 + + # 不支持的节点类型 + _g_const_eval_ok = 0 + return 0 + + def set_generic_context(tp_names: list[str] | t.CPtr, type_args: list[str] | t.CPtr): """设置泛型特化上下文(进入泛型类方法体翻译时调用)""" @@ -850,6 +941,11 @@ def resolve_annotation_type(pool: memhub.MemBuddy | t.CPtr, mod_name: str = HandlesImports.lookup_from_import(from_imports, nm.id) if mod_name is not None: return map_t_type(pool, nm.id) + # 兜底: 尝试 map_t_type 中的硬编码 typedef 映射(VOIDPTR, HANDLE, ULONG 等) + # 这些是跨模块通用的 C typedef 名,即使 from-import 查找失败也能解析 + mapped_ty_fallback: llvmlite.LLVMType | t.CPtr = map_t_type(pool, nm.id) + if mapped_ty_fallback is not None: + return mapped_ty_fallback return None # Attribute 节点: t.CInt, t.CUInt64T, namespace_defs.PlainStruct 等 @@ -874,6 +970,13 @@ def resolve_annotation_type(pool: memhub.MemBuddy | t.CPtr, if mod_struct_ty is not None: return mod_struct_ty return None + # 嵌套 Attribute: w32.win32base.SECURITY_ATTRIBUTES 等三级及以上限定名 + # at.value 是 Attribute 而非 Name,递归提取最终类名(at.attr)查结构体表 + # find_struct 支持模块限定名回退,此处用最外层 attr(简单类名)即可 + if at.value is not None and at.value.kind() == ast.ASTKind.Attribute: + nested_struct_ty: llvmlite.LLVMType | t.CPtr = HandlesStruct.get_struct_type(at.attr) + if nested_struct_ty is not None: + return nested_struct_ty return None # BinOp 节点: 联合类型注解 A | B @@ -929,7 +1032,11 @@ def resolve_annotation_type(pool: memhub.MemBuddy | t.CPtr, # value 是 Name(泛型类名),slice 是类型实参 if sub.value.kind() == ast.ASTKind.Name: gen_nm: ast.Name | t.CPtr = (ast.Name | t.CPtr)(sub.value) + # tuple[...] 类型注解:TransPyV 暂不支持 tuple 返回类型,返回 None 让上层默认处理 + # 避免走到 list[str](pool, 4) 构造路径崩溃(tuple 未定义为泛型类) if gen_nm.id is not None: + if string.strcmp(gen_nm.id, "tuple") == 0: + return None # 先收集类型实参名,再分配缓冲区拼接 mangled name gen_arg_names: list[str] | t.CPtr = list[str](pool, 4) if sub.slice.kind() == ast.ASTKind.Tuple: @@ -1031,28 +1138,20 @@ def resolve_annotation_type(pool: memhub.MemBuddy | t.CPtr, pool, elem_node, imported_modules, from_imports, trans) if elem_ty is None: fatal_type_error(elem_node, "t.CArray 元素类型解析失败") - # 解析 count(必须是整数常量、None 或 CDefine 常量名) + # 解析 count(支持整数常量、None、CDefine 常量名、常量表达式如 2*MAX) # t.CArray[elem_ty, None] 等价于单参数形式 → Ptr(elem_ty) # t.CArray[elem_ty, NAME] 其中 NAME: t.CDefine = value → [value x elem_ty] + # t.CArray[elem_ty, 2 * MAX] 常量表达式静态计算 → [2*MAX x elem_ty] count_val: int = 0 if count_node.kind() == ast.ASTKind.Constant: cnt_cn: ast.Constant | t.CPtr = (ast.Constant | t.CPtr)(count_node) if cnt_cn.const_kind == ast.CONST_NONE: return llvmlite.Ptr(pool, elem_ty) - if cnt_cn.const_kind != ast.CONST_INT: - fatal_type_error(count_node, "t.CArray count 必须是整数常量、None 或 CDefine 常量名") - count_val = cnt_cn.int_val - elif count_node.kind() == ast.ASTKind.Name: - # CDefine 常量名查找 - cnt_nm: ast.Name | t.CPtr = (ast.Name | t.CPtr)(count_node) - if cnt_nm.id is None: - fatal_type_error(count_node, "t.CArray count Name 节点 id 为 None") - looked_up: int = lookup_cdefine_constant(cnt_nm.id) - if is_cdefine_found() == 0: - fatal_type_error(count_node, "t.CArray count 不是已注册的 CDefine 常量") - count_val = looked_up - else: - fatal_type_error(count_node, "t.CArray count 必须是整数常量、None 或 CDefine 常量名") + # 统一用 _eval_const_int_expr 计算常量整数表达式 + # 支持 Constant(INT)、Name(CDefine)、BinOp(2*MAX 等算术/位运算) + count_val = _eval_const_int_expr(count_node) + if _g_const_eval_ok == 0: + fatal_type_error(count_node, "t.CArray count 必须是整数常量、None、CDefine 常量名或常量表达式") if count_val <= 0: fatal_type_error(count_node, "t.CArray count 必须为正数") # 创建 ArrayType(不包装 Ptr) diff --git a/TransPyV/App/lib/core/Phase1.py b/TransPyV/App/lib/core/Phase1.py index 9d3d0bc..c741a8d 100644 --- a/TransPyV/App/lib/core/Phase1.py +++ b/TransPyV/App/lib/core/Phase1.py @@ -73,7 +73,9 @@ def _ScanClassInheritance(mb: memhub.MemBuddy | t.CPtr, sha1_set: str, set_count: int, class_names_buf: bytes, parent_names_buf: bytes, - def_sha1s_buf: bytes) -> int: + def_sha1s_buf: bytes, + generic_file_indices: t.CPtr, + generic_file_count_box: t.CPtr) -> int: """预扫描 includes 文件,收集类继承关系""" if result is None or class_names_buf is None or parent_names_buf is None or def_sha1s_buf is None: return -1 @@ -88,6 +90,7 @@ def _ScanClassInheritance(mb: memhub.MemBuddy | t.CPtr, continue sha1_e: str = entry.Sha1 + file_has_generic: int = 0 # 按需翻译过滤 in_set: int = 0 @@ -147,6 +150,22 @@ def _ScanClassInheritance(mb: memhub.MemBuddy | t.CPtr, if cd is None or cd.name is None: continue + # 检测泛型类(有 type_params),记录文件索引以供 Phase 1a 预注册 + if file_has_generic == 0: + tp_scan: list[str] | t.CPtr = cd.type_params + if tp_scan is not None: + file_has_generic = 1 + if generic_file_count_box is not None: + gfc_ptr_scan: t.CPtr = (t.CInt | t.CPtr)(t.CVoid(generic_file_count_box, t.CPtr)) + if gfc_ptr_scan is not None: + gfc_scan: int = gfc_ptr_scan[0] + if gfc_scan < MAX_FILE_DEPS and generic_file_indices is not None: + gi_addr_scan: t.CUInt64T = t.CUInt64T(generic_file_indices) + gfc_scan * 4 + gi_ptr_scan: t.CPtr = (t.CInt | t.CPtr)(t.CVoid(gi_addr_scan, t.CPtr)) + if gi_ptr_scan is not None: + gi_ptr_scan[0] = i + gfc_ptr_scan[0] = gfc_scan + 1 + if class_count >= MAX_CLASSES: break @@ -513,14 +532,15 @@ def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str, continue string.strcpy(sha1_set + set_count * 17, se_ent.Sha1) set_count += 1 + # 先填充全局 SHA1 映射存储器(即使 set_count==0 也填充,确保 Phase2 能获取 includes 条目) + # 注意:PopulateSha1MapStore 会先 free 旧存储器再重新分配 + StubMerger.PopulateSha1MapStore(result) + # 写入 _sha1_map.txt(人类可读输出,程序内部不读取;机器分析使用 PopulateSha1MapStore 内存存储器) + StubMerger.WriteIncludesSha1Map(mb, temp_dir, result, None, 0) if set_count <= 0: VLogger.warning("扫描结果无有效 SHA1,跳过 Phase1(项目可能无 includes 依赖)", "Phase1") stdlib.free(sha1_set) return 0 - # 写入 _sha1_map.txt(人类可读输出,程序内部不读取;机器分析使用 PopulateSha1MapStore 内存存储器) - StubMerger.WriteIncludesSha1Map(mb, temp_dir, result, None, 0) - # 填充全局 SHA1 映射存储器(内存中,不依赖 _sha1_map.txt 文件) - StubMerger.PopulateSha1MapStore(result) # 构建模块 SHA1 映射(供跨模块函数调用名混淆使用) td_len_p1map: t.CSizeT = string.strlen(temp_dir) p1_sha1_arr: bytes = stdlib.malloc(StubMerger.MAX_INCLUDES * 17) @@ -621,6 +641,8 @@ def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str, p1a_registered += 1 # 生成 .deps.txt(记录依赖模块名,供依赖图按需翻译使用) + # 同时填充内存依赖存储器(PopulateIncludesDeps),供 _BuildReachableSha1Set + # 直接从内存读取,不依赖 .deps.txt 过程文件 td_len_a: t.CSizeT = string.strlen(temp_dir) deps_path_a: str = StubMerger._sliced_path(temp_dir, td_len_a, sha1_a, "deps.txt") if deps_path_a is not None: @@ -631,6 +653,9 @@ def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str, df_a.write(tr_a._imported_modules, dl_a) df_a.close() stdlib.free(deps_path_a) + # 填充内存依赖存储器(供 _BuildReachableSha1Set 使用,不读 .deps.txt) + if tr_a._imported_modules is not None: + StubMerger.PopulateIncludesDeps(sha1_a, tr_a._imported_modules) # 释放 Translator 的 C malloc 资源 if tr_a._global_names is not None: @@ -689,6 +714,12 @@ def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str, def_sha1s_buf: bytes = mb.alloc(MAX_CLASSES * SHA1_LEN) topo_order: t.CPtr = mb.alloc(4 * MAX_FILE_DEPS) topo_count_box: t.CPtr = mb.alloc(4) + generic_file_indices: t.CPtr = mb.alloc(4 * MAX_FILE_DEPS) + generic_file_count_box: t.CPtr = mb.alloc(4) + if generic_file_indices is not None: + string.memset(generic_file_indices, 0, 4 * MAX_FILE_DEPS) + if generic_file_count_box is not None: + string.memset(generic_file_count_box, 0, 4) topo_count: int = 0 if class_names_buf is not None and parent_names_buf is not None and def_sha1s_buf is not None and topo_order is not None and topo_count_box is not None: @@ -697,11 +728,16 @@ def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str, string.memset(def_sha1s_buf, 0, MAX_CLASSES * SHA1_LEN) string.memset(topo_order, 0, 4 * MAX_FILE_DEPS) string.memset(topo_count_box, 0, 4) + if generic_file_indices is not None: + string.memset(generic_file_indices, 0, 4 * MAX_FILE_DEPS) + if generic_file_count_box is not None: + string.memset(generic_file_count_box, 0, 4) class_count_scanned: int = _ScanClassInheritance( mb, result, reachable_set, reachable_count, use_reachable, sha1_set, set_count, - class_names_buf, parent_names_buf, def_sha1s_buf) + class_names_buf, parent_names_buf, def_sha1s_buf, + generic_file_indices, generic_file_count_box) if class_count_scanned > 0: ret_topo: int = _TopoSortFiles( @@ -726,6 +762,87 @@ def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str, VLogger.warning("类继承预扫描无结果,回退到字母序", "Phase1") topo_count = 0 + # ============================================================ + # Phase 1a-pre-generic: 预注册所有泛型类模板 + # + # 在 Phase 1a(struct 注册)之前执行,确保所有泛型类模板 + #(如 GSListNode[T]、GSList[T])已注册。这样当其他文件的 + # 结构体字段使用 GSListNode[Value] 等特化类型时,模板能被找到。 + # ============================================================ + generic_file_count: int = 0 + if generic_file_count_box is not None: + gfc_box_ptr: t.CPtr = (t.CInt | t.CPtr)(t.CVoid(generic_file_count_box, t.CPtr)) + if gfc_box_ptr is not None: + generic_file_count = gfc_box_ptr[0] + + if generic_file_count > 0 and generic_file_indices is not None: + fb_gpre: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_gpre is not None: + viperlib.snprintf(fb_gpre, 1024, "预注册 %d 个泛型类模板文件", generic_file_count) + VLogger.info(fb_gpre, "Phase1") + + for gi in range(generic_file_count): + gi_addr_p: t.CUInt64T = t.CUInt64T(generic_file_indices) + gi * 4 + gi_ptr_p: t.CPtr = (t.CInt | t.CPtr)(t.CVoid(gi_addr_p, t.CPtr)) + if gi_ptr_p is None: + continue + file_idx_gen: int = gi_ptr_p[0] + + gen_entry_addr: t.CUInt64T = t.CUInt64T(result.Entries) + file_idx_gen * entry_size + gen_entry: IncludesScanner.FileEntry | t.CPtr = (IncludesScanner.FileEntry | t.CPtr)(t.CVoid(gen_entry_addr, t.CPtr)) + if gen_entry is None or gen_entry.Sha1 is None: + continue + + gen_path: str = gen_entry.Path + gen_f: fileio.File | t.CPtr = fileio.File(gen_path, fileio.MODE.R) + if gen_f.closed: + continue + + gen_src: bytes = stdlib.malloc(SRC_BUF_SIZE) + if gen_src is None: + gen_f.close() + continue + + gen_br: LONG = gen_f.read_all(gen_src, SRC_BUF_SIZE) + gen_f.close() + if gen_br <= 0: + stdlib.free(gen_src) + continue + if gen_br < SRC_BUF_SIZE: + gen_src[gen_br] = 0 + else: + gen_src[SRC_BUF_SIZE - 1] = 0 + + gen_lx: ast.Lexer | t.CPtr = ast.new_lexer(mb) + if gen_lx is None: + stdlib.free(gen_src) + continue + ast._lexer_init(gen_lx, gen_src, mb) + gen_tokens: ast.Token | t.CPtr = ast.tokenize(gen_lx) + gen_tree: ast.AST | t.CPtr = ast.parse_tokens(mb, gen_tokens) + if gen_tree is None: + stdlib.free(gen_src) + continue + + gen_tr: HandlesTranslator.Translator | t.CPtr = HandlesTranslator.Translator() + if gen_tr is None: + stdlib.free(gen_src) + continue + gen_tr.ModuleSha1 = gen_entry.Sha1 + gen_tr._declare_only = 1 + gen_tr.CurrentPackage = HandlesImports.compute_package_from_relpath(mb, gen_entry.RelPath) + HandlesType.set_current_file(gen_path) + HandlesType.set_current_module_sha1(gen_entry.Sha1) + HandlesType.clear_cdefine_constants() + HandlesStruct.reset_visible_structs(mb, 0) + gen_tr.translate(gen_tree) + + if gen_tr._global_names is not None: + stdlib.free(gen_tr._global_names) + if gen_tr._nonlocal_names is not None: + stdlib.free(gen_tr._nonlocal_names) + stdlib.free(gen_src) + # 遍历文件:优先使用拓扑顺序,回退到字母序 iter_count: int = topo_count if topo_count > 0 else result.Count for i in range(iter_count): @@ -834,6 +951,10 @@ def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str, mb.free(topo_order) if topo_count_box is not None: mb.free(topo_count_box) + if generic_file_indices is not None: + mb.free(generic_file_indices) + if generic_file_count_box is not None: + mb.free(generic_file_count_box) # ============================================================ # Phase 1b: 全量翻译(struct 已注册,走 existing 路径翻译方法体) diff --git a/TransPyV/App/lib/core/Phase2.py b/TransPyV/App/lib/core/Phase2.py index 0cf358b..21fd1ec 100644 --- a/TransPyV/App/lib/core/Phase2.py +++ b/TransPyV/App/lib/core/Phase2.py @@ -19,6 +19,7 @@ import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.Handles.HandlesImports as HandlesImports import lib.core.Handles.HandlesStruct as HandlesStruct import lib.core.BuildPipeline as BuildPipeline +import lib.core.IncludesScanner as IncludesScanner import lib.core.StubMerger as StubMerger import lib.Projectrans.Utils as Utils import lib.Projectrans.Config as Config @@ -207,6 +208,19 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, BuildPipeline.ensure_dir(temp_dir) BuildPipeline.ensure_dir(output_dir) + # === 0.5 扫描 includes 目录填充 Sha1Store(消除 Phase1 依赖)=== + # Phase2 不依赖 Phase1 的副作用:如果 Sha1Store 为空(Phase1 未运行或提前返回), + # 自行扫描 includes 目录并填充 Sha1Store,确保后续"编译缺失 includes"逻辑能正常工作 + if includes_dir is not None: + if StubMerger.GetSha1StoreCount() == 0: + inc_scan_result: IncludesScanner.ScanResult | t.CPtr = IncludesScanner.scan_includes(mb, includes_dir) + if inc_scan_result is not None: + inc_filled: int = StubMerger.PopulateSha1MapStore(inc_scan_result) + fb_inc: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_inc is not None: + viperlib.snprintf(fb_inc, 1024, "Phase2 自主填充 includes Sha1Store: %d 个", inc_filled) + VLogger.info(fb_inc, "project") + # 追加 App 源文件 SHA1 到 _sha1_map.txt(人类可读输出,程序内部不读取此文件) # 格式: {sha1}:{rel_path}\n (保留目录结构,如 lib/core/VLogger.py) # 同步追加到内存存储器(AppendToSha1MapStore,供跨模块 CDefine 查找) @@ -296,10 +310,62 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, # === 2. Phase A: 为每个文件生成 stub + text === + # app_deps_buf: 收集所有 App 源文件的直接依赖模块名(空格分隔) + # 供 Phase B+ 的 _BuildReachableSha1Set 作为初始 worklist,实现按需编译 + # 声明在 if 块外,确保 Phase B+ 和清理代码能访问 + APP_DEPS_BUF_SIZE: t.CSizeT = 8192 + app_deps_buf: bytes = None + app_deps_len: t.CSizeT = 0 if do_phase1 != 0: if log is not None: log.banner("Phase A: 生成 stub + text") + # === Phase A-pre-inc: includes 预注册 struct + 依赖填充 === + # 必须在 App 源文件预注册之前执行:App 源文件(strict_mode=1)可能继承 + # 或引用 includes 中的 struct(如 ast.AST)。若 includes struct 未注册, + # App 源文件翻译会失败 → .obj 缺失 → undefined reference。 + # 同时填充 PopulateIncludesDeps,供 Phase B+ 的 _BuildReachableSha1Set 使用。 + # 多遍扫描:解决跨文件继承问题(如 Constant(AST) 在 AST 未注册时被跳过)。 + if includes_dir is not None and includes_binary_dir is not None: + store_count_inc_pre: int = StubMerger.GetSha1StoreCount() + if store_count_inc_pre > 0: + store_sha1_inc_pre: bytes | t.CPtr = StubMerger.GetSha1StoreArrPtr() + store_rel_inc_pre: bytes | t.CPtr = StubMerger.GetSha1StoreRelArrPtr() + inc_dir_len_pre: t.CSizeT = string.strlen(includes_dir) + deps_filled_pre: int = 0 + PHASE_A_INC_MAX_PASSES: t.CInt = 3 + for pass_inc_i in range(PHASE_A_INC_MAX_PASSES): + struct_count_before_inc: int = HandlesStruct.get_struct_count() + for si_inc in range(store_count_inc_pre): + inc_sha1_pre: str = store_sha1_inc_pre + t.CSizeT(si_inc) * 17 + inc_rel_pre: str = store_rel_inc_pre + t.CSizeT(si_inc) * StubMerger.MAX_REL_PATH_LEN + if inc_rel_pre is None or inc_rel_pre[0] == '\0': + continue + rel_len_pre: t.CSizeT = string.strlen(inc_rel_pre) + full_path_pre: bytes = stdlib.malloc(inc_dir_len_pre + rel_len_pre + 2) + if full_path_pre is None: + continue + viperlib.snprintf(full_path_pre, inc_dir_len_pre + rel_len_pre + 2, + "%s/%s", includes_dir, inc_rel_pre) + pkg_inc_pre: str = HandlesImports.compute_package_from_relpath(mb, inc_rel_pre) + tr_inc_pre: HandlesTranslator.Translator | t.CPtr = BuildPipeline.TranslateFileGetTrans( + mb, full_path_pre, inc_sha1_pre, pkg_inc_pre, 1) + stdlib.free(full_path_pre) + if tr_inc_pre is not None: + # 依赖填充只在第一遍执行(PopulateIncludesDeps 内部有去重) + if pass_inc_i == 0: + if tr_inc_pre._imported_modules is not None: + if StubMerger.PopulateIncludesDeps(inc_sha1_pre, tr_inc_pre._imported_modules) == 0: + deps_filled_pre = deps_filled_pre + 1 + struct_count_after_inc: int = HandlesStruct.get_struct_count() + # 收敛检查:本遍没有新结构体注册 → 所有类已注册 + if struct_count_after_inc == struct_count_before_inc: + break + fb_inc_pre: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_inc_pre is not None: + viperlib.snprintf(fb_inc_pre, 1024, "includes 预注册 + 依赖填充: %d/%d", deps_filled_pre, store_count_inc_pre) + VLogger.info(fb_inc_pre, "prePhaseA") + # === Phase A-pre: 预注册所有源文件的 struct/enum/union === # 解决循环引用问题:circ_a 翻译时需要知道 circ_b.ClassB 的 struct 定义 # 仅注册 struct/enum/union(declare_only=1),不翻译方法体 @@ -334,6 +400,14 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, PHASE_A_IR_SIZE: t.CSizeT = 1048576 td_len_pa: t.CSizeT = string.strlen(temp_dir) + # app_deps_buf: 收集所有 App 源文件的直接依赖模块名(空格分隔) + # 供 Phase B+ 的 _BuildReachableSha1Set 作为初始 worklist 使用 + # 声明已在 if 块外,此处仅赋值 + app_deps_buf = stdlib.malloc(APP_DEPS_BUF_SIZE) + app_deps_len = 0 + if app_deps_buf is not None: + app_deps_buf[0] = '\0' + for i in range(file_count): ea: t.CUInt64T = t.CUInt64T(entries) + i * entry_size ent: SrcFileEntry | t.CPtr = (SrcFileEntry | t.CPtr)(t.CVoid(ea, t.CPtr)) @@ -394,8 +468,21 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, df_a.close() stdlib.free(deps_path_a) + # 收集 _imported_modules 到 app_deps_buf(供 Phase B+ 按需编译) + if tr_a._imported_modules is not None and app_deps_buf is not None: + im_len_a: t.CSizeT = string.strlen(tr_a._imported_modules) + if im_len_a > 0 and app_deps_len + im_len_a + 1 < APP_DEPS_BUF_SIZE: + if app_deps_len > 0: + app_deps_buf[app_deps_len] = ' ' + app_deps_len = app_deps_len + 1 + string.strcpy(app_deps_buf + app_deps_len, tr_a._imported_modules) + app_deps_len = app_deps_len + im_len_a + app_deps_buf[app_deps_len] = '\0' + if do_phase2 == 0: VLogger.info("Phase A 完成(仅 stub 生成)", "project") + if app_deps_buf is not None: + stdlib.free(app_deps_buf) stdlib.free(entries) return 0 @@ -404,8 +491,11 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, if log is not None: log.banner("Phase B: 编译 .obj") - # 收集 .obj 路径 - OBJ_PATHS_SIZE: t.CSizeT = 8192 + # 收集 .obj 路径(增大到 64KB,避免 includes .obj 路径溢出导致链接丢失符号) + # reachable_set/reachable_count: Phase B+ 填充,Phase C 用于按需链接 + reachable_set: bytes = None + reachable_count: int = 0 + OBJ_PATHS_SIZE: t.CSizeT = 65536 obj_paths: bytes = stdlib.malloc(OBJ_PATHS_SIZE) if obj_paths is None: return 1 @@ -457,6 +547,11 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, sys.exit(1) compiled_count += 1 + # 显示编译完成的文件 + fb_comp: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_comp is not None: + viperlib.snprintf(fb_comp, 1024, "[%d/%d] 编译完成: %s", i + 1, file_count, ent.Path) + VLogger.info(fb_comp, "PhaseB") # 构造 .obj 路径,检测是否是 main 模块(test_main.py 或 main.py) od_len: t.CSizeT = string.strlen(output_dir) is_main_mod: int = 0 @@ -497,39 +592,85 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, stdlib.free(entries) return 1 - # === 3.5 编译缺失的 includes 文件 === - # includes.binary 可能缺少某些 includes .obj(如 testcheck.py), - # 这些文件被用户项目导入但未被 TransPyV 自身依赖,Projectrans.py 未编译它们。 - # 检测并编译缺失的 includes 文件到 output_dir,加入链接命令。 - # 数据来源:StubMerger 全局内存存储器(不读取 _sha1_map.txt 文件) + # === 3.5 编译缺失的 includes 文件(按依赖图按需编译)=== + # 只编译被 App 源文件直接/间接引用的 includes 文件(可达集合), + # 而非遍历整个 includes 目录。通过 _BuildReachableSha1Set 构建依赖图。 if includes_dir is not None and includes_binary_dir is not None: inc_compiled: int = 0 td_len_mi: t.CSizeT = string.strlen(temp_dir) + + # 诊断日志:确认 Phase B+ 入口和 Sha1Store 状态 + fb_pbp_enter: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_pbp_enter is not None: + viperlib.snprintf(fb_pbp_enter, 1024, + "PhaseB+ 入口: store_count=%d includes_binary_dir=%s", + StubMerger.GetSha1StoreCount(), includes_binary_dir) + VLogger.info(fb_pbp_enter, "PhaseB+") + + # 创建 includes_binary_dir 目录(确保 .obj 能写入和 collect_obj_files 能扫描) + BuildPipeline.ensure_dir(includes_binary_dir) + + # declare_only 预处理已移至 Phase A 之前(Phase A-pre-inc), + # 确保 Phase A 翻译 App 源文件时 includes struct 已注册。 + # PopulateIncludesDeps 已在 Phase A-pre-inc 中填充。 + + # 构建可达 SHA1 集合(依赖图遍历) + # app_deps_buf 为 None 时回退到扫描 source_dir(非递归) + REACHABLE_SET_SIZE: t.CSizeT = t.CSizeT(StubMerger.MAX_INCLUDES_SHA1) * 17 + reachable_set: bytes = stdlib.malloc(REACHABLE_SET_SIZE) + reachable_count: int = 0 + if reachable_set is not None: + string.memset(reachable_set, 0, REACHABLE_SET_SIZE) + reachable_count = StubMerger._BuildReachableSha1Set( + mb, source_dir, temp_dir, reachable_set, app_deps_buf) + fb_reach: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_reach is not None: + viperlib.snprintf(fb_reach, 1024, "可达 includes SHA1: %d 个", reachable_count) + VLogger.info(fb_reach, "PhaseB+") + # fast-fail: 可达集合构建失败(依赖未找到),永不回退,直接终止 + if reachable_count < 0: + VLogger.error("可达集合构建失败(fast-fail),终止编译", "PhaseB+") + return 1 + else: + VLogger.error("reachable_set 分配失败,终止编译", "PhaseB+") + return 1 + + # 释放 app_deps_buf(已构建完 reachable_set,不再需要) + if app_deps_buf is not None: + stdlib.free(app_deps_buf) + app_deps_buf = None + # 从全局存储器获取 SHA1/模块名/rel_path 数组(直接访问器,避免 box 解引用问题) store_count_mi: int = StubMerger.GetSha1StoreCount() if store_count_mi > 0: store_sha1_arr_mi: bytes | t.CPtr = StubMerger.GetSha1StoreArrPtr() store_mod_arr_mi: bytes | t.CPtr = StubMerger.GetSha1StoreModArrPtr() store_rel_arr_mi: bytes | t.CPtr = StubMerger.GetSha1StoreRelArrPtr() + for si_mi in range(store_count_mi): # 获取当前条目的 SHA1 和 rel_path inc_sha1_mi: str = store_sha1_arr_mi + t.CSizeT(si_mi) * 17 inc_rel_mi: str = store_rel_arr_mi + t.CSizeT(si_mi) * StubMerger.MAX_REL_PATH_LEN - # 检查 .obj 是否已存在于 includes.binary + # 按需编译过滤:只处理 reachable_set 中的 includes + # 永不回退:reachable_count > 0 时严格按可达集合过滤 + if reachable_count > 0: + if StubMerger._is_in_sha1_set(inc_sha1_mi, reachable_set, reachable_count) == 0: + continue + # 检查 .obj 是否已存在于 includes.binary(切片子目录) ibd_len_mi: t.CSizeT = string.strlen(includes_binary_dir) - check_pat_mi: bytes = stdlib.malloc(ibd_len_mi + 35) - if check_pat_mi is None: - continue - viperlib.snprintf(check_pat_mi, ibd_len_mi + 35, "%s/%s*.obj", includes_binary_dir, inc_sha1_mi) + check_pat_mi: str = StubMerger._sliced_path(includes_binary_dir, ibd_len_mi, inc_sha1_mi, "obj") check_fd_mi: w32.win32file.WIN32_FIND_DATAA | t.CPtr = stdlib.malloc(w32.win32file.WIN32_FIND_DATAA.__sizeof__()) obj_exists_mi: int = 0 - if check_fd_mi is not None: + if check_pat_mi is not None and check_fd_mi is not None: string.memset(check_fd_mi, 0, w32.win32file.WIN32_FIND_DATAA.__sizeof__()) check_h_mi: w32.win32base.HANDLE = w32.win32file.FindFirstFileA(check_pat_mi, check_fd_mi) if check_h_mi != w32.win32base.INVALID_HANDLE_VALUE: w32.win32file.FindClose(check_h_mi) obj_exists_mi = 1 if obj_exists_mi != 0: + if check_pat_mi is not None: + stdlib.free(check_pat_mi) + stdlib.free(check_fd_mi) continue # .obj 不存在,需要编译 @@ -538,6 +679,9 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, inc_dir_len_mi: t.CSizeT = string.strlen(includes_dir) src_fp_mi: bytes = stdlib.malloc(inc_dir_len_mi + 1 + rel_path_len_mi + 1) if src_fp_mi is None: + stdlib.free(check_pat_mi) + if check_fd_mi is not None: + stdlib.free(check_fd_mi) continue viperlib.snprintf(src_fp_mi, inc_dir_len_mi + 1 + rel_path_len_mi + 1, "%s/%s", includes_dir, inc_rel_mi) @@ -571,20 +715,35 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, tpos_mi += 1 if tll_mi >= 7 and string.strncmp(tbuf_mi + tls_mi, "define ", 7) == 0: # 临时在行尾加 \0 供 strstr 使用 - saved_mi: t.CChar = tbuf_mi[tls_mi + tll_mi] - tbuf_mi[tls_mi + tll_mi] = '\0' + # 仅当行尾不在缓冲区末尾时才需保存/恢复 + # (缓冲区末尾已在上方 read_all 后截断为 '\0',直接用即可) + # 避免 tls_mi + tll_mi == tbr_mi 时越界写 + end_pos_mi: t.CSizeT = tls_mi + tll_mi + saved_mi: t.CChar = '\0' + need_restore_mi: int = 0 + if end_pos_mi < tbr_mi: + saved_mi = tbuf_mi[end_pos_mi] + tbuf_mi[end_pos_mi] = '\0' + need_restore_mi = 1 if string.strstr(tbuf_mi + tls_mi, "@\"") is not None: - tbuf_mi[tls_mi + tll_mi] = saved_mi + if need_restore_mi != 0: + tbuf_mi[end_pos_mi] = saved_mi is_decl_mi = 0 break - tbuf_mi[tls_mi + tll_mi] = saved_mi + if need_restore_mi != 0: + tbuf_mi[end_pos_mi] = saved_mi stdlib.free(tbuf_mi) tf_mi.close() stdlib.free(tpath_mi) - # is_decl_mi == -1: text.ll 不存在(Phase1 未翻译此文件,可能不被项目导入) + # is_decl_mi == -1: text.ll 不存在(Phase1 未翻译此文件) # is_decl_mi == 1: 声明文件(仅 declare 无 define) - # 两种情况都跳过:不编译未被 Phase1 翻译的 includes 文件 - if is_decl_mi != 0: + # is_decl_mi == 0: 实现文件(有 define) + # 只跳过声明文件(is_decl_mi == 1);text.ll 不存在时继续,让后续翻译逻辑处理 + if is_decl_mi == 1: + stdlib.free(check_pat_mi) + if check_fd_mi is not None: + stdlib.free(check_fd_mi) + stdlib.free(src_fp_mi) continue # 尝试 BuildCombinedIR(stub/text 应已由 Phase1 生成) @@ -633,19 +792,43 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, inc_combined_len_mi = StubMerger.BuildCombinedIR(temp_dir, inc_sha1_mi, inc_combined_mi, COMBINED_IR_SIZE) if inc_combined_len_mi == 0: + # 诊断:检查 stub.ll/text.ll 是否存在 + diag_stub: str = StubMerger._sliced_path(temp_dir, td_len_mi, inc_sha1_mi, "stub.ll") + diag_text: str = StubMerger._sliced_path(temp_dir, td_len_mi, inc_sha1_mi, "text.ll") + diag_stub_ex: int = 0 + diag_text_ex: int = 0 + if diag_stub is not None: + df_diag_s: fileio.File | t.CPtr = fileio.File(diag_stub, fileio.MODE.R) + if not df_diag_s.closed: + diag_stub_ex = 1 + df_diag_s.close() + stdlib.free(diag_stub) + if diag_text is not None: + df_diag_t: fileio.File | t.CPtr = fileio.File(diag_text, fileio.MODE.R) + if not df_diag_t.closed: + diag_text_ex = 1 + df_diag_t.close() + stdlib.free(diag_text) fb: t.CChar | t.CPtr = VLogger.fmt_buf() if fb is not None: - viperlib.snprintf(fb, 1024, "BuildCombinedIR 失败: %s", src_fp_mi) + viperlib.snprintf(fb, 1024, + "BuildCombinedIR 失败: %s (stub=%d text=%d is_decl=%d)", + src_fp_mi, diag_stub_ex, diag_text_ex, is_decl_mi) VLogger.error(fb, "PhaseB+") if inc_combined_mi is not None: stdlib.free(inc_combined_mi) + stdlib.free(check_pat_mi) + if check_fd_mi is not None: + stdlib.free(check_fd_mi) + stdlib.free(src_fp_mi) continue - # 编译为 .obj + # 编译为 .obj(输出到 includes_binary_dir,与存在性检查和链接收集一致) inc_cret_mi: int = BuildPipeline.compile_module_to_obj( - inc_combined_mi, inc_combined_len_mi, temp_dir, output_dir, inc_sha1_mi, + inc_combined_mi, inc_combined_len_mi, temp_dir, includes_binary_dir, inc_sha1_mi, cc_cmd, cc_flags) stdlib.free(inc_combined_mi) + if inc_cret_mi != 0: fb: t.CChar | t.CPtr = VLogger.fmt_buf() if fb is not None: @@ -654,10 +837,16 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, sys.exit(1) inc_compiled += 1 + # 显示编译完成的 includes 文件 + fb_inc_comp: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_inc_comp is not None: + viperlib.snprintf(fb_inc_comp, 1024, "[includes %d] 编译完成: %s", inc_compiled, src_fp_mi) + VLogger.info(fb_inc_comp, "PhaseB+") + + # 添加到 obj_paths (切片路径,从 includes_binary_dir 取) + ibd_len_mi2: t.CSizeT = string.strlen(includes_binary_dir) + inc_obj_sliced: str = StubMerger._sliced_path(includes_binary_dir, ibd_len_mi2, inc_sha1_mi, "obj") - # 添加到 obj_paths (切片路径) - od_len_mi: t.CSizeT = string.strlen(output_dir) - inc_obj_sliced: str = StubMerger._sliced_path(output_dir, od_len_mi, inc_sha1_mi, "obj") if inc_obj_sliced is not None: inc_obj_len: t.CSizeT = string.strlen(inc_obj_sliced) if obj_pos + inc_obj_len + 2 < OBJ_PATHS_SIZE: @@ -669,11 +858,25 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, obj_paths[obj_pos] = '\0' stdlib.free(inc_obj_sliced) + # 释放本次迭代的临时内存 + if check_pat_mi is not None: + stdlib.free(check_pat_mi) + + if check_fd_mi is not None: + stdlib.free(check_fd_mi) + + stdlib.free(src_fp_mi) + fb: t.CChar | t.CPtr = VLogger.fmt_buf() if fb is not None: viperlib.snprintf(fb, 1024, "编译缺失 includes: %d 个", inc_compiled) VLogger.info(fb, "PhaseB+") + # 释放 app_deps_buf(Phase B+ 块未执行时此处兜底释放) + if app_deps_buf is not None: + stdlib.free(app_deps_buf) + app_deps_buf = None + # === 4. Phase C: 链接所有 .obj → .exe === if log is not None: log.banner("Phase C: 链接") @@ -708,6 +911,18 @@ def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, final_obj_paths[fop_pos] = '\0' obj_paths_len: t.CSizeT = fop_pos + + # 暂时禁用按图链接:始终全量链接 includes.binary 中的 .obj + # 按图链接在 --clean 后 deps.txt 缺失时无法正确工作(跨包传递依赖丢失) + # 按图编译(Phase B+)仍保留:只编译 reachable_set 中的缺失 includes + # TODO: 待 deps.txt 生成机制完善后(如 Phase A 翻译所有 includes 的 imports),重新启用按图链接 + + # 释放 reachable_set(Phase B+ 已使用完毕) + if reachable_set is not None: + stdlib.free(reachable_set) + reachable_set = None + + # 始终传 includes_binary_dir 给 link_objs_to_exe,由其全量收集 .obj lret: int = BuildPipeline.link_objs_to_exe( final_obj_paths, obj_paths_len, linker_cmd, linker_flags, exe_path, diff --git a/TransPyV/App/lib/core/StubMerger.py b/TransPyV/App/lib/core/StubMerger.py index 33d0ffb..04e8ccc 100644 --- a/TransPyV/App/lib/core/StubMerger.py +++ b/TransPyV/App/lib/core/StubMerger.py @@ -51,6 +51,19 @@ _sha1_store_mod: bytes # 模块名数组(每个 64 字节,MAX_INCLUDES 个 _sha1_store_rel: bytes # 相对路径数组(每个 256 字节,MAX_INCLUDES 个) _sha1_store_count: int # 条目数 +# 可达集合是否不完整(1=有 includes deps.txt 缺失,Phase C 应回退全量链接) +_g_reachable_incomplete: int + +# includes 依赖内存存储(不依赖 deps.txt 过程文件) +# Phase B+ 前用 declare_only 翻译所有 includes 文件,提取 _imported_modules 存入此处 +# _BuildReachableSha1Set 从此处读取依赖,不读 deps.txt +_includes_deps_sha1: bytes # SHA1 数组(每个 17 字节,MAX_INCLUDES 个) +_includes_deps_str: bytes # 依赖字符串数组(每个 512 字节,MAX_INCLUDES 个) +_includes_deps_count: int # 条目数 + +# 单条依赖字符串最大长度 +MAX_DEPS_STR_LEN: t.CDefine = 512 + # rel_path 最大长度 MAX_REL_PATH_LEN: t.CDefine = 256 @@ -493,6 +506,85 @@ def GetSha1StoreCount() -> int: return _sha1_store_count +def IsReachableIncomplete() -> int: + """返回可达集合是否不完整(1=有 deps.txt 缺失,应回退全量链接)""" + return _g_reachable_incomplete + + +# ============================================================ +# PopulateIncludesDeps - 将 includes 文件的依赖存入内存 +# +# Phase B+ 前用 declare_only 翻译 includes 文件,提取 _imported_modules +# 后调用此函数存入内存。_BuildReachableSha1Set 从内存读取,不读 deps.txt。 +# +# Args: +# sha1: includes 文件的 SHA1(16字符) +# deps_str: 依赖模块名字符串(空格分隔,如 "t c stdint string") +# +# Returns: +# 0 成功,非 0 失败 +# ============================================================ +def PopulateIncludesDeps(sha1: str, deps_str: str) -> int: + """将 includes 文件的依赖存入内存""" + global _includes_deps_sha1, _includes_deps_str, _includes_deps_count + if sha1 is None: + return 1 + # 延迟初始化 + if _includes_deps_sha1 is None: + _includes_deps_sha1 = stdlib.malloc(MAX_INCLUDES * 17) + _includes_deps_str = stdlib.malloc(MAX_INCLUDES * MAX_DEPS_STR_LEN) + if _includes_deps_sha1 is None or _includes_deps_str is None: + return 1 + string.memset(_includes_deps_sha1, 0, MAX_INCLUDES * 17) + string.memset(_includes_deps_str, 0, MAX_INCLUDES * MAX_DEPS_STR_LEN) + _includes_deps_count = 0 + if _includes_deps_count >= MAX_INCLUDES: + return 1 + # 去重:若 SHA1 已存在则跳过 + for i in range(_includes_deps_count): + sidx: t.CSizeT = t.CSizeT(i) * 17 + if string.strcmp(_includes_deps_sha1 + sidx, sha1) == 0: + return 0 + # 写入 SHA1 + idx: t.CSizeT = t.CSizeT(_includes_deps_count) * 17 + string.strcpy(_includes_deps_sha1 + idx, sha1) + # 写入依赖字符串 + idx2: t.CSizeT = t.CSizeT(_includes_deps_count) * MAX_DEPS_STR_LEN + if deps_str is not None: + dl: t.CSizeT = string.strlen(deps_str) + if dl < MAX_DEPS_STR_LEN: + string.strcpy(_includes_deps_str + idx2, deps_str) + else: + string.strncpy(_includes_deps_str + idx2, deps_str, MAX_DEPS_STR_LEN - 1) + else: + _includes_deps_str[idx2] = '\0' + _includes_deps_count = _includes_deps_count + 1 + return 0 + + +# ============================================================ +# LookupIncludesDeps - 从内存查找 includes 文件的依赖 +# +# Args: +# sha1: includes 文件的 SHA1(16字符) +# +# Returns: +# 依赖模块名字符串指针(空格分隔),None 表示未找到 +# ============================================================ +def LookupIncludesDeps(sha1: str) -> str: + """从内存查找 includes 文件的依赖""" + if sha1 is None or _includes_deps_sha1 is None: + return None + if _includes_deps_count <= 0: + return None + for i in range(_includes_deps_count): + sidx: t.CSizeT = t.CSizeT(i) * 17 + if string.strcmp(_includes_deps_sha1 + sidx, sha1) == 0: + idx2: t.CSizeT = t.CSizeT(i) * MAX_DEPS_STR_LEN + return _includes_deps_str + idx2 + return None + + def GetSha1StoreArrPtr() -> bytes | t.CPtr: """返回 SHA1 数组指针(每个条目 17 字节)""" return _sha1_store_arr @@ -538,6 +630,32 @@ def GetSha1StoreArr(out_sha1_arr: t.CPtr, out_mod_arr: t.CPtr, out_rel_arr: t.CP return _sha1_store_count +# ============================================================ +# LookupSha1RelPath - 通过 SHA1 查找相对路径 +# +# 遍历全局存储器,返回 sha1 对应的相对路径指针(只读,不要 free)。 +# 用于错误提示:将 sha1 转换为人类可读的文件路径。 +# +# Args: +# sha1: SHA1 字符串(16 字符) +# +# Returns: +# 相对路径字符串指针(只读),None=未找到 +# ============================================================ +def LookupSha1RelPath(sha1: str) -> str: + """通过 SHA1 查找相对路径,返回只读指针,None=未找到""" + if sha1 is None: + return None + if _sha1_store_arr is None or _sha1_store_rel is None: + return None + for i in range(_sha1_store_count): + sidx: t.CSizeT = t.CSizeT(i) * 17 + if string.strcmp(_sha1_store_arr + sidx, sha1) == 0: + ridx: t.CSizeT = t.CSizeT(i) * MAX_REL_PATH_LEN + return _sha1_store_rel + ridx + return None + + # ============================================================ # _IsFuncDeclaredOrDefined - 检查 out_buf 中是否已有函数的 declare/define # @@ -1265,11 +1383,19 @@ def _AddSha1ToSet(set_buf: t.CChar | t.CPtr, count: int, sha1: str) -> int: # ============================================================ def _BuildReachableSha1Set(mb: memhub.MemBuddy | t.CPtr, source_dir: str, temp_dir: str, - reachable_set: t.CChar | t.CPtr) -> int: - """构建可达 SHA1 集合(依赖图按需翻译)""" + reachable_set: t.CChar | t.CPtr, + app_deps: str = None) -> int: + """构建可达 SHA1 集合(依赖图按需翻译) + + app_deps: App 源文件的直接依赖模块名(空格分隔),如果非空则跳过自己的扫描步骤 + """ + global _g_reachable_incomplete if source_dir is None or temp_dir is None or reachable_set is None: return -1 + # 重置不完整标志 + _g_reachable_incomplete = 0 + SRC_BUF_SIZE_R: t.CSizeT = 1048576 # 1. 构建 SHA1→module_name 映射 @@ -1293,29 +1419,9 @@ def _BuildReachableSha1Set(mb: memhub.MemBuddy | t.CPtr, source_dir: str, viperlib.snprintf(fb, 1024, "SHA1 映射: %d 个", map_count) VLogger.debug(fb, "Reachable") - # 2. 扫描 source_dir 下的 .py 文件,收集直接依赖 - dir_len: t.CSizeT = string.strlen(source_dir) - pattern: bytes = stdlib.malloc(dir_len + 8) - if pattern is None: - stdlib.free(sha1_arr) - stdlib.free(mod_arr) - return -1 - viperlib.snprintf(pattern, dir_len + 8, "%s/*.py", source_dir) - - find_data_size: t.CSizeT = win32file.WIN32_FIND_DATAA.__sizeof__() - find_data: win32file.WIN32_FIND_DATAA | t.CPtr = stdlib.malloc(find_data_size + 16) - if find_data is None: - stdlib.free(pattern) - stdlib.free(sha1_arr) - stdlib.free(mod_arr) - return -1 - string.memset(find_data, 0, find_data_size + 16) - # 工作列表(空格分隔的模块名) worklist: bytes = stdlib.malloc(8192) if worklist is None: - stdlib.free(pattern) - stdlib.free(find_data) stdlib.free(sha1_arr) stdlib.free(mod_arr) return -1 @@ -1324,70 +1430,104 @@ def _BuildReachableSha1Set(mb: memhub.MemBuddy | t.CPtr, source_dir: str, reachable_count: int = 0 - handle: win32base.HANDLE = win32file.FindFirstFileA(pattern, find_data) - if handle == win32base.INVALID_HANDLE_VALUE: - fb: t.CChar | t.CPtr = VLogger.fmt_buf() - if fb is not None: - viperlib.snprintf(fb, 1024, "未找到 .py 文件: %s", pattern) - VLogger.warning(fb, "Reachable") - stdlib.free(pattern) - stdlib.free(find_data) - stdlib.free(sha1_arr) - stdlib.free(mod_arr) - stdlib.free(worklist) - return -1 + # 2. 如果 app_deps 非空,直接使用它作为初始 worklist(跳过自己的非递归扫描) + # 否则,回退到自己的非递归扫描(source_dir/*.py,只扫描顶层) + if app_deps is not None and app_deps[0] != '\0': + ad_len: t.CSizeT = string.strlen(app_deps) + if ad_len > 0 and ad_len < 8192: + string.strcpy(worklist, app_deps) + wl_len = ad_len + else: + # 回退到自己的非递归扫描 + dir_len: t.CSizeT = string.strlen(source_dir) + pattern: bytes = stdlib.malloc(dir_len + 8) + if pattern is None: + stdlib.free(sha1_arr) + stdlib.free(mod_arr) + stdlib.free(worklist) + return -1 + viperlib.snprintf(pattern, dir_len + 8, "%s/*.py", source_dir) - while True: - fname: str = find_data.cFileName - if fname is not None: - fname_len: t.CSizeT = string.strlen(fname) - if fname_len > 3: - is_py: int = 0 - if fname[fname_len - 3] == '.' and fname[fname_len - 2] == 'p' and fname[fname_len - 1] == 'y': - is_py = 1 - if is_py != 0: - full_path: bytes = stdlib.malloc(dir_len + fname_len + 2) - if full_path is not None: - viperlib.snprintf(full_path, dir_len + fname_len + 2, "%s/%s", source_dir, fname) - sf: fileio.File | t.CPtr = fileio.File(full_path, fileio.MODE.R) - if not sf.closed: - sbuf: bytes = stdlib.malloc(SRC_BUF_SIZE_R) - if sbuf is not None: - br: LONG = sf.read_all(sbuf, SRC_BUF_SIZE_R) - sf.close() - if br > 0: - if br < SRC_BUF_SIZE_R: - sbuf[br] = 0 - else: - sbuf[SRC_BUF_SIZE_R - 1] = 0 - # 解析 AST 获取 _imported_modules - lx: ast.Lexer | t.CPtr = ast.new_lexer(mb) - if lx is not None: - ast._lexer_init(lx, sbuf, mb) - tokens: ast.Token | t.CPtr = ast.tokenize(lx) - tree: ast.AST | t.CPtr = ast.parse_tokens(mb, tokens) - if tree is not None: - tr: HandlesTranslator.Translator | t.CPtr = HandlesTranslator.Translator() - if tr is not None: - tr._declare_only = 2 - # 源文件包名:fname 是顶级文件名(无目录分隔符),包为 None - tr.CurrentPackage = HandlesImports.compute_package_from_relpath(mb, fname) - HandlesStruct.reset_visible_structs(mb, 0) - tr.translate(tree) - # 获取 _imported_modules - if tr._imported_modules is not None: - im_len: t.CSizeT = string.strlen(tr._imported_modules) - if im_len > 0 and wl_len + im_len + 1 < 8192: - string.strcpy(worklist + wl_len, tr._imported_modules) - wl_len += im_len - worklist[wl_len] = ' ' - wl_len += 1 - worklist[wl_len] = '\0' - # 释放 Translator 资源 - if tr._global_names is not None: - stdlib.free(tr._global_names) - if tr._nonlocal_names is not None: - stdlib.free(tr._nonlocal_names) + find_data_size: t.CSizeT = win32file.WIN32_FIND_DATAA.__sizeof__() + find_data: win32file.WIN32_FIND_DATAA | t.CPtr = stdlib.malloc(find_data_size + 16) + if find_data is None: + stdlib.free(pattern) + stdlib.free(sha1_arr) + stdlib.free(mod_arr) + stdlib.free(worklist) + return -1 + string.memset(find_data, 0, find_data_size + 16) + + handle: win32base.HANDLE = win32file.FindFirstFileA(pattern, find_data) + if handle == win32base.INVALID_HANDLE_VALUE: + fb_fd: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_fd is not None: + viperlib.snprintf(fb_fd, 1024, "未找到 .py 文件: %s", pattern) + VLogger.warning(fb_fd, "Reachable") + stdlib.free(pattern) + stdlib.free(find_data) + stdlib.free(sha1_arr) + stdlib.free(mod_arr) + stdlib.free(worklist) + return -1 + + while True: + fname: str = find_data.cFileName + if fname is not None: + fname_len: t.CSizeT = string.strlen(fname) + if fname_len > 3: + is_py: int = 0 + if fname[fname_len - 3] == '.' and fname[fname_len - 2] == 'p' and fname[fname_len - 1] == 'y': + is_py = 1 + if is_py != 0: + full_path: bytes = stdlib.malloc(dir_len + fname_len + 2) + if full_path is not None: + viperlib.snprintf(full_path, dir_len + fname_len + 2, "%s/%s", source_dir, fname) + sf: fileio.File | t.CPtr = fileio.File(full_path, fileio.MODE.R) + if not sf.closed: + sbuf: bytes = stdlib.malloc(SRC_BUF_SIZE_R) + if sbuf is not None: + br: LONG = sf.read_all(sbuf, SRC_BUF_SIZE_R) + sf.close() + if br > 0: + if br < SRC_BUF_SIZE_R: + sbuf[br] = 0 + else: + sbuf[SRC_BUF_SIZE_R - 1] = 0 + # 解析 AST 获取 _imported_modules + lx: ast.Lexer | t.CPtr = ast.new_lexer(mb) + if lx is not None: + ast._lexer_init(lx, sbuf, mb) + tokens: ast.Token | t.CPtr = ast.tokenize(lx) + tree: ast.AST | t.CPtr = ast.parse_tokens(mb, tokens) + if tree is not None: + tr: HandlesTranslator.Translator | t.CPtr = HandlesTranslator.Translator() + if tr is not None: + tr._declare_only = 2 + # 源文件包名:fname 是顶级文件名(无目录分隔符),包为 None + tr.CurrentPackage = HandlesImports.compute_package_from_relpath(mb, fname) + HandlesStruct.reset_visible_structs(mb, 0) + tr.translate(tree) + # 获取 _imported_modules + if tr._imported_modules is not None: + im_len: t.CSizeT = string.strlen(tr._imported_modules) + if im_len > 0 and wl_len + im_len + 1 < 8192: + string.strcpy(worklist + wl_len, tr._imported_modules) + wl_len += im_len + worklist[wl_len] = ' ' + wl_len += 1 + worklist[wl_len] = '\0' + # 计算 App 源文件 SHA1,填充依赖到内存存储器 + # worklist 遍历时,LookupIncludesDeps 能找到 App 源文件的依赖 + app_sha1_r: str = IncludesScanner.compute_file_sha1(mb, full_path) + if app_sha1_r is not None: + PopulateIncludesDeps(app_sha1_r, tr._imported_modules) + stdlib.free(app_sha1_r) + # 释放 Translator 资源 + if tr._global_names is not None: + stdlib.free(tr._global_names) + if tr._nonlocal_names is not None: + stdlib.free(tr._nonlocal_names) stdlib.free(sbuf) else: stdlib.free(sbuf) @@ -1395,16 +1535,16 @@ def _BuildReachableSha1Set(mb: memhub.MemBuddy | t.CPtr, source_dir: str, sf.close() stdlib.free(full_path) - if win32file.FindNextFileA(handle, find_data) == 0: - break - win32base.FindClose(handle) - stdlib.free(pattern) - stdlib.free(find_data) + if win32file.FindNextFileA(handle, find_data) == 0: + break + win32base.FindClose(handle) + stdlib.free(pattern) + stdlib.free(find_data) - # 去掉末尾多余空格 - if wl_len > 0 and worklist[wl_len - 1] == ' ': - worklist[wl_len - 1] = '\0' - wl_len -= 1 + # 去掉末尾多余空格 + if wl_len > 0 and worklist[wl_len - 1] == ' ': + worklist[wl_len - 1] = '\0' + wl_len -= 1 fb: t.CChar | t.CPtr = VLogger.fmt_buf() if fb is not None: @@ -1512,36 +1652,55 @@ def _BuildReachableSha1Set(mb: memhub.MemBuddy | t.CPtr, source_dir: str, # 加入 reachable_set reachable_count = _AddSha1ToSet(reachable_set, reachable_count, found_sha1) - # 读取 .deps.txt 追加到 worklist - deps_path: str = _sliced_path(temp_dir, td_len_r, found_sha1, "deps.txt") - if deps_path is not None: - df: fileio.File | t.CPtr = fileio.File(deps_path, fileio.MODE.R) - if not df.closed: - deps_buf: bytes = stdlib.malloc(2048) - if deps_buf is not None: - dbr: t.CInt64T = df.read_all(deps_buf, 2048) - df.close() - if dbr > 0: - if dbr < 2048: - deps_buf[dbr] = '\0' - else: - deps_buf[2047] = '\0' - # 追加到 worklist(嵌套 if 拆分 + 用 = 代替 += 绕过 TPC AUGASGN bug) - dl: t.CSizeT = string.strlen(deps_buf) - if worklist is not None: - if dl > 0 and wl_len + dl + 2 < 8192: - if wl_len > 0 and worklist[wl_len - 1] != ' ': - worklist[wl_len] = ' ' - wl_len = wl_len + 1 - string.strcpy(worklist + wl_len, deps_buf) - wl_len = wl_len + dl - worklist[wl_len] = ' ' - wl_len = wl_len + 1 - worklist[wl_len] = '\0' - stdlib.free(deps_buf) - else: - df.close() - stdlib.free(deps_path) + # 从内存查找依赖(不读 deps.txt 过程文件) + # Phase B+ 前用 declare_only 翻译所有 includes 文件,提取 _imported_modules 存入内存 + deps_str: str = LookupIncludesDeps(found_sha1) + if deps_str is not None: + dl: t.CSizeT = string.strlen(deps_str) + if dl > 0: + if wl_len + dl + 2 < 8192: + if wl_len > 0 and worklist[wl_len - 1] != ' ': + worklist[wl_len] = ' ' + wl_len = wl_len + 1 + string.strcpy(worklist + wl_len, deps_str) + wl_len = wl_len + dl + worklist[wl_len] = ' ' + wl_len = wl_len + 1 + worklist[wl_len] = '\0' + # deps_str 为空字符串视为无依赖(合法情况,如叶子模块) + else: + # 依赖未在内存中找到 + # 按需过滤: 检查是否是 App 源文件(source_dir 下的 .py 文件) + # App 源文件不需要加入 reachable_set(只用于 includes 过滤),跳过 + sd_len_ff: t.CSizeT = string.strlen(source_dir) + mb_len_ff: t.CSizeT = string.strlen(mod_buf) + app_mod_path: bytes = stdlib.malloc(sd_len_ff + mb_len_ff + 6) + is_app_src: int = 0 + if app_mod_path is not None: + viperlib.snprintf(app_mod_path, sd_len_ff + mb_len_ff + 6, "%s/%s.py", source_dir, mod_buf) + af: fileio.File | t.CPtr = fileio.File(app_mod_path, fileio.MODE.R) + if not af.closed: + is_app_src = 1 + af.close() + stdlib.free(app_mod_path) + if is_app_src != 0: + # App 源文件,跳过(不 fast-fail) + fb_skip: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_skip is not None: + viperlib.snprintf(fb_skip, 1024, "跳过 App 源文件: %s (sha1=%s)", mod_buf, found_sha1) + VLogger.debug(fb_skip, "Reachable") + else: + # fast-fail: includes 文件依赖未在内存中找到,Phase 1a-pre 未正确填充 + fb_ff: t.CChar | t.CPtr = VLogger.fmt_buf() + if fb_ff is not None: + viperlib.snprintf(fb_ff, 1024, "依赖未找到 fast-fail: 模块 %s (sha1=%s) 的依赖未在内存中注册", mod_buf, found_sha1) + VLogger.error(fb_ff, "Reachable") + stdlib.free(sha1_arr) + stdlib.free(mod_arr) + stdlib.free(worklist) + stdlib.free(processed) + stdlib.free(mod_buf) + return -1 stdlib.free(mod_buf) stdlib.free(sha1_arr) stdlib.free(mod_arr) diff --git a/TransPyV/App/lib/core/VLogger.py b/TransPyV/App/lib/core/VLogger.py index 1afbbd2..316115c 100644 --- a/TransPyV/App/lib/core/VLogger.py +++ b/TransPyV/App/lib/core/VLogger.py @@ -101,7 +101,7 @@ class Logger: self._reset_color() # category 可选 if category is not None and category[0] != 0: - stdio.printf("[%s]", category) + stdio.printf(" [%s]", category) stdio.printf(": %s\n", msg) return 0 diff --git a/TransPyV/output/51f0144d6e8188d9.deps.json b/TransPyV/output/51f0144d6e8188d9.deps.json index f6932b6..ea6b2e1 100644 --- a/TransPyV/output/51f0144d6e8188d9.deps.json +++ b/TransPyV/output/51f0144d6e8188d9.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "llvmlite.__function": "0c9a196ed8f137a8", "__function": "0c9a196ed8f137a8", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "lib.core.Handles.HandlesFunctions": "1073ffca7e27aae5", "HandlesFunctions": "1073ffca7e27aae5", "lib.core.Handles.HandlesImports": "134678d620920327", "HandlesImports": "134678d620920327", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "lib.core.Handles.HandlesReturn": "2703a899f26b771d", "HandlesReturn": "2703a899f26b771d", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesType": "36f17e746044defb", "HandlesType": "36f17e746044defb", "lib.core.Handles.HandlesStruct": "3a8870350b3cb1f7", "HandlesStruct": "3a8870350b3cb1f7", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.BuildPipeline": "518fd98d3ebec951", "BuildPipeline": "518fd98d3ebec951", "json.__init__": "57288496f7c2d1ad", "__init__": "f3444ec56937284f", "json": "57288496f7c2d1ad", "lib.core.IncludesScanner": "6282c9b745a35b8f", "IncludesScanner": "6282c9b745a35b8f", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "lib.core.Handles.HandlesExprCall": "647c596aeb1fd27c", "HandlesExprCall": "647c596aeb1fd27c", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "lib.__init__": "6a19179426e9a883", "lib": "6a19179426e9a883", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "string": "6be4daa5dc5fa7ce", "lib.core.Phase2": "6d88e12d1fb0efee", "Phase2": "6d88e12d1fb0efee", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "lib.core.Handles.HandlesFor": "727a218636fc49ab", "HandlesFor": "727a218636fc49ab", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesMain": "88811298a7b47d02", "HandlesMain": "88811298a7b47d02", "lib.core.Handles.HandlesAssign": "8cf4461e82a4ecf2", "HandlesAssign": "8cf4461e82a4ecf2", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.StubGen.Converter": "a299b2ce21d25f48", "Converter": "a299b2ce21d25f48", "llvmlite.__builder": "adde71d4f0a1f628", "__builder": "adde71d4f0a1f628", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "ast.parser": "b4d2098ceb689168", "parser": "b4d2098ceb689168", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "memhub": "ba2b074357dcd3b5", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.core.Handles.HandlesClassDef": "bfa1cc81748c0271", "HandlesClassDef": "bfa1cc81748c0271", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "main": "c2010cffc6092ea2", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesExpr": "c6b0b8148dc63d5c", "HandlesExpr": "c6b0b8148dc63d5c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "argparse": "ca44e2bae615339f", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "lib.core.Handles.HandlesAnnAssign": "dda2d0326dda1ff5", "HandlesAnnAssign": "dda2d0326dda1ff5", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "lib.core.Phase1": "ec8cf4a355eb1a65", "Phase1": "ec8cf4a355eb1a65", "lib.core.StubMerger": "ede1b9cd3f28e8c8", "StubMerger": "ede1b9cd3f28e8c8", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "lib.core.VLogger": "f1e8dabe2ec63f05", "VLogger": "f1e8dabe2ec63f05", "llvmlite.__init__": "f23f91ad42cb466f", "llvmlite": "f23f91ad42cb466f", "lib.core.Handles.HandlesTranslator": "f331c46316ec1dd3", "HandlesTranslator": "f331c46316ec1dd3", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "lib.core.Handles.HandlesFunctions": "1073ffca7e27aae5", "HandlesFunctions": "1073ffca7e27aae5", "lib.core.Handles.HandlesAnnAssign": "15bb32adb7093ed7", "HandlesAnnAssign": "15bb32adb7093ed7", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "llvmlite.__init__": "1d74d1d3a174c684", "__init__": "f3444ec56937284f", "llvmlite": "1d74d1d3a174c684", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "lib.core.Handles.HandlesReturn": "2703a899f26b771d", "HandlesReturn": "2703a899f26b771d", "atom": "271ea3decb810db2", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "lib.core.Handles.HandlesAssign": "2b59175b77f1304e", "HandlesAssign": "2b59175b77f1304e", "lib.core.Phase1": "2d523679d6b886ad", "Phase1": "2d523679d6b886ad", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "hashtable": "2fbec3db55b30ad4", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesStruct": "371fa89e15d8c015", "HandlesStruct": "371fa89e15d8c015", "stdlib": "3aa6057398be5673", "lib.StubGen.Converter": "3c5f1c61545644a9", "Converter": "3c5f1c61545644a9", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.core.Handles.HandlesFor": "456fb516ba3c5002", "HandlesFor": "456fb516ba3c5002", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "lib.core.Handles.HandlesMain": "4a7b57e6bd18f65e", "HandlesMain": "4a7b57e6bd18f65e", "string": "4daf5ed3f8e421a1", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "llvmlite.__builder": "5a1d8c48f1243746", "__builder": "5a1d8c48f1243746", "lib.core.Handles.HandlesExprCall": "5c482c6aac2ba83b", "HandlesExprCall": "5c482c6aac2ba83b", "lib.core.Handles.HandlesTranslator": "62805d8ad3e9b5ba", "HandlesTranslator": "62805d8ad3e9b5ba", "lib.core.IncludesScanner": "6282c9b745a35b8f", "IncludesScanner": "6282c9b745a35b8f", "lib.core.Handles.HandlesImports": "6293eee0a5805aa5", "HandlesImports": "6293eee0a5805aa5", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "lib.core.Handles.HandlesExpr": "68f2617198f5757f", "HandlesExpr": "68f2617198f5757f", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "lib.__init__": "6a19179426e9a883", "lib": "6a19179426e9a883", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Phase2": "7ba06a9edf0fa6c7", "Phase2": "7ba06a9edf0fa6c7", "_list": "7cadfe07e983fd90", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "subprocess": "a335eb99f2e34479", "linkedlist": "a5e9a83e9db303ad", "lib.core.Handles.HandlesClassDef": "aa45364399b86a03", "HandlesClassDef": "aa45364399b86a03", "lib.core.Handles.HandlesType": "af1cc6aaab47a7d1", "HandlesType": "af1cc6aaab47a7d1", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "argparse": "b370d93b74bf55cc", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.VLogger": "bdf5730851fb95f2", "VLogger": "bdf5730851fb95f2", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "main": "c2010cffc6092ea2", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "memhub": "ca40915f11b8b6ad", "lib.core.StubMerger": "cae1b2c5898ed6e5", "StubMerger": "cae1b2c5898ed6e5", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "viperlib": "e307a2d809cef071", "lib.core.BuildPipeline": "e991626c0aee9d7b", "BuildPipeline": "e991626c0aee9d7b", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file diff --git a/TransPyV/output/66de93aaeebc0601.deps.json b/TransPyV/output/66de93aaeebc0601.deps.json index 5460ab4..f47c1e0 100644 --- a/TransPyV/output/66de93aaeebc0601.deps.json +++ b/TransPyV/output/66de93aaeebc0601.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "llvmlite.__function": "0c9a196ed8f137a8", "__function": "0c9a196ed8f137a8", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "lib.core.Handles.HandlesFunctions": "1073ffca7e27aae5", "HandlesFunctions": "1073ffca7e27aae5", "lib.core.Handles.HandlesImports": "134678d620920327", "HandlesImports": "134678d620920327", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "lib.core.Handles.HandlesReturn": "2703a899f26b771d", "HandlesReturn": "2703a899f26b771d", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesType": "36f17e746044defb", "HandlesType": "36f17e746044defb", "lib.core.Handles.HandlesStruct": "3a8870350b3cb1f7", "HandlesStruct": "3a8870350b3cb1f7", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.BuildPipeline": "518fd98d3ebec951", "BuildPipeline": "518fd98d3ebec951", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "json.__init__": "57288496f7c2d1ad", "__init__": "f3444ec56937284f", "json": "57288496f7c2d1ad", "lib.core.IncludesScanner": "6282c9b745a35b8f", "IncludesScanner": "6282c9b745a35b8f", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "lib.core.Handles.HandlesExprCall": "647c596aeb1fd27c", "HandlesExprCall": "647c596aeb1fd27c", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "lib.__init__": "6a19179426e9a883", "lib": "6a19179426e9a883", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "string": "6be4daa5dc5fa7ce", "lib.core.Phase2": "6d88e12d1fb0efee", "Phase2": "6d88e12d1fb0efee", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "lib.core.Handles.HandlesFor": "727a218636fc49ab", "HandlesFor": "727a218636fc49ab", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesMain": "88811298a7b47d02", "HandlesMain": "88811298a7b47d02", "lib.core.Handles.HandlesAssign": "8cf4461e82a4ecf2", "HandlesAssign": "8cf4461e82a4ecf2", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.StubGen.Converter": "a299b2ce21d25f48", "Converter": "a299b2ce21d25f48", "llvmlite.__builder": "adde71d4f0a1f628", "__builder": "adde71d4f0a1f628", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "ast.parser": "b4d2098ceb689168", "parser": "b4d2098ceb689168", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "memhub": "ba2b074357dcd3b5", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.core.Handles.HandlesClassDef": "bfa1cc81748c0271", "HandlesClassDef": "bfa1cc81748c0271", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "main": "c2010cffc6092ea2", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesExpr": "c6b0b8148dc63d5c", "HandlesExpr": "c6b0b8148dc63d5c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "argparse": "ca44e2bae615339f", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "lib.core.Handles.HandlesAnnAssign": "dda2d0326dda1ff5", "HandlesAnnAssign": "dda2d0326dda1ff5", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "lib.core.Phase1": "ec8cf4a355eb1a65", "Phase1": "ec8cf4a355eb1a65", "lib.core.StubMerger": "ede1b9cd3f28e8c8", "StubMerger": "ede1b9cd3f28e8c8", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "lib.core.VLogger": "f1e8dabe2ec63f05", "VLogger": "f1e8dabe2ec63f05", "llvmlite.__init__": "f23f91ad42cb466f", "llvmlite": "f23f91ad42cb466f", "lib.core.Handles.HandlesTranslator": "f331c46316ec1dd3", "HandlesTranslator": "f331c46316ec1dd3", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "lib.core.Handles.HandlesFunctions": "1073ffca7e27aae5", "HandlesFunctions": "1073ffca7e27aae5", "lib.core.Handles.HandlesAnnAssign": "15bb32adb7093ed7", "HandlesAnnAssign": "15bb32adb7093ed7", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "llvmlite.__init__": "1d74d1d3a174c684", "__init__": "f3444ec56937284f", "llvmlite": "1d74d1d3a174c684", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "lib.core.Handles.HandlesReturn": "2703a899f26b771d", "HandlesReturn": "2703a899f26b771d", "atom": "271ea3decb810db2", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "lib.core.Handles.HandlesAssign": "2b59175b77f1304e", "HandlesAssign": "2b59175b77f1304e", "lib.core.Phase1": "2d523679d6b886ad", "Phase1": "2d523679d6b886ad", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "hashtable": "2fbec3db55b30ad4", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesStruct": "371fa89e15d8c015", "HandlesStruct": "371fa89e15d8c015", "stdlib": "3aa6057398be5673", "lib.StubGen.Converter": "3c5f1c61545644a9", "Converter": "3c5f1c61545644a9", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.core.Handles.HandlesFor": "456fb516ba3c5002", "HandlesFor": "456fb516ba3c5002", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "lib.core.Handles.HandlesMain": "4a7b57e6bd18f65e", "HandlesMain": "4a7b57e6bd18f65e", "string": "4daf5ed3f8e421a1", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "llvmlite.__builder": "5a1d8c48f1243746", "__builder": "5a1d8c48f1243746", "lib.core.Handles.HandlesExprCall": "5c482c6aac2ba83b", "HandlesExprCall": "5c482c6aac2ba83b", "lib.core.Handles.HandlesTranslator": "62805d8ad3e9b5ba", "HandlesTranslator": "62805d8ad3e9b5ba", "lib.core.IncludesScanner": "6282c9b745a35b8f", "IncludesScanner": "6282c9b745a35b8f", "lib.core.Handles.HandlesImports": "6293eee0a5805aa5", "HandlesImports": "6293eee0a5805aa5", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "lib.core.Handles.HandlesExpr": "68f2617198f5757f", "HandlesExpr": "68f2617198f5757f", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "lib.__init__": "6a19179426e9a883", "lib": "6a19179426e9a883", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Phase2": "7ba06a9edf0fa6c7", "Phase2": "7ba06a9edf0fa6c7", "_list": "7cadfe07e983fd90", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "subprocess": "a335eb99f2e34479", "linkedlist": "a5e9a83e9db303ad", "lib.core.Handles.HandlesClassDef": "aa45364399b86a03", "HandlesClassDef": "aa45364399b86a03", "lib.core.Handles.HandlesType": "af1cc6aaab47a7d1", "HandlesType": "af1cc6aaab47a7d1", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "argparse": "b370d93b74bf55cc", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.VLogger": "bdf5730851fb95f2", "VLogger": "bdf5730851fb95f2", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "main": "c2010cffc6092ea2", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "memhub": "ca40915f11b8b6ad", "lib.core.StubMerger": "cae1b2c5898ed6e5", "StubMerger": "cae1b2c5898ed6e5", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "viperlib": "e307a2d809cef071", "lib.core.BuildPipeline": "e991626c0aee9d7b", "BuildPipeline": "e991626c0aee9d7b", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file diff --git a/TransPyV/output/81eb28ba912467a6.deps.json b/TransPyV/output/81eb28ba912467a6.deps.json index 6379aa1..e0db6f6 100644 --- a/TransPyV/output/81eb28ba912467a6.deps.json +++ b/TransPyV/output/81eb28ba912467a6.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "llvmlite.__function": "0c9a196ed8f137a8", "__function": "0c9a196ed8f137a8", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "lib.core.Handles.HandlesFunctions": "1073ffca7e27aae5", "HandlesFunctions": "1073ffca7e27aae5", "lib.core.Handles.HandlesImports": "134678d620920327", "HandlesImports": "134678d620920327", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "lib.core.Handles.HandlesReturn": "2703a899f26b771d", "HandlesReturn": "2703a899f26b771d", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesType": "36f17e746044defb", "HandlesType": "36f17e746044defb", "lib.core.Handles.HandlesStruct": "3a8870350b3cb1f7", "HandlesStruct": "3a8870350b3cb1f7", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.BuildPipeline": "518fd98d3ebec951", "BuildPipeline": "518fd98d3ebec951", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "json.__init__": "57288496f7c2d1ad", "__init__": "f3444ec56937284f", "json": "57288496f7c2d1ad", "lib.core.IncludesScanner": "6282c9b745a35b8f", "IncludesScanner": "6282c9b745a35b8f", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "lib.core.Handles.HandlesExprCall": "647c596aeb1fd27c", "HandlesExprCall": "647c596aeb1fd27c", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "lib.__init__": "6a19179426e9a883", "lib": "6a19179426e9a883", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "string": "6be4daa5dc5fa7ce", "lib.core.Phase2": "6d88e12d1fb0efee", "Phase2": "6d88e12d1fb0efee", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "lib.core.Handles.HandlesFor": "727a218636fc49ab", "HandlesFor": "727a218636fc49ab", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Handles.HandlesMain": "88811298a7b47d02", "HandlesMain": "88811298a7b47d02", "lib.core.Handles.HandlesAssign": "8cf4461e82a4ecf2", "HandlesAssign": "8cf4461e82a4ecf2", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.StubGen.Converter": "a299b2ce21d25f48", "Converter": "a299b2ce21d25f48", "llvmlite.__builder": "adde71d4f0a1f628", "__builder": "adde71d4f0a1f628", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "ast.parser": "b4d2098ceb689168", "parser": "b4d2098ceb689168", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "memhub": "ba2b074357dcd3b5", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.core.Handles.HandlesClassDef": "bfa1cc81748c0271", "HandlesClassDef": "bfa1cc81748c0271", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "main": "c2010cffc6092ea2", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesExpr": "c6b0b8148dc63d5c", "HandlesExpr": "c6b0b8148dc63d5c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "argparse": "ca44e2bae615339f", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "lib.core.Handles.HandlesAnnAssign": "dda2d0326dda1ff5", "HandlesAnnAssign": "dda2d0326dda1ff5", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "lib.core.Phase1": "ec8cf4a355eb1a65", "Phase1": "ec8cf4a355eb1a65", "lib.core.StubMerger": "ede1b9cd3f28e8c8", "StubMerger": "ede1b9cd3f28e8c8", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "lib.core.VLogger": "f1e8dabe2ec63f05", "VLogger": "f1e8dabe2ec63f05", "llvmlite.__init__": "f23f91ad42cb466f", "llvmlite": "f23f91ad42cb466f", "lib.core.Handles.HandlesTranslator": "f331c46316ec1dd3", "HandlesTranslator": "f331c46316ec1dd3", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "lib.core.Handles.HandlesFunctions": "1073ffca7e27aae5", "HandlesFunctions": "1073ffca7e27aae5", "lib.core.Handles.HandlesAnnAssign": "15bb32adb7093ed7", "HandlesAnnAssign": "15bb32adb7093ed7", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "llvmlite.__init__": "1d74d1d3a174c684", "__init__": "f3444ec56937284f", "llvmlite": "1d74d1d3a174c684", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "lib.core.Handles.HandlesReturn": "2703a899f26b771d", "HandlesReturn": "2703a899f26b771d", "atom": "271ea3decb810db2", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "lib.core.Handles.HandlesAssign": "2b59175b77f1304e", "HandlesAssign": "2b59175b77f1304e", "lib.core.Phase1": "2d523679d6b886ad", "Phase1": "2d523679d6b886ad", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "hashtable": "2fbec3db55b30ad4", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesStruct": "371fa89e15d8c015", "HandlesStruct": "371fa89e15d8c015", "stdlib": "3aa6057398be5673", "lib.StubGen.Converter": "3c5f1c61545644a9", "Converter": "3c5f1c61545644a9", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.core.Handles.HandlesFor": "456fb516ba3c5002", "HandlesFor": "456fb516ba3c5002", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "lib.core.Handles.HandlesMain": "4a7b57e6bd18f65e", "HandlesMain": "4a7b57e6bd18f65e", "string": "4daf5ed3f8e421a1", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "llvmlite.__builder": "5a1d8c48f1243746", "__builder": "5a1d8c48f1243746", "lib.core.Handles.HandlesExprCall": "5c482c6aac2ba83b", "HandlesExprCall": "5c482c6aac2ba83b", "lib.core.Handles.HandlesTranslator": "62805d8ad3e9b5ba", "HandlesTranslator": "62805d8ad3e9b5ba", "lib.core.IncludesScanner": "6282c9b745a35b8f", "IncludesScanner": "6282c9b745a35b8f", "lib.core.Handles.HandlesImports": "6293eee0a5805aa5", "HandlesImports": "6293eee0a5805aa5", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "lib.core.Handles.HandlesExpr": "68f2617198f5757f", "HandlesExpr": "68f2617198f5757f", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "lib.__init__": "6a19179426e9a883", "lib": "6a19179426e9a883", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Phase2": "7ba06a9edf0fa6c7", "Phase2": "7ba06a9edf0fa6c7", "_list": "7cadfe07e983fd90", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "subprocess": "a335eb99f2e34479", "linkedlist": "a5e9a83e9db303ad", "lib.core.Handles.HandlesClassDef": "aa45364399b86a03", "HandlesClassDef": "aa45364399b86a03", "lib.core.Handles.HandlesType": "af1cc6aaab47a7d1", "HandlesType": "af1cc6aaab47a7d1", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "argparse": "b370d93b74bf55cc", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.VLogger": "bdf5730851fb95f2", "VLogger": "bdf5730851fb95f2", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "main": "c2010cffc6092ea2", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "memhub": "ca40915f11b8b6ad", "lib.core.StubMerger": "cae1b2c5898ed6e5", "StubMerger": "cae1b2c5898ed6e5", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "viperlib": "e307a2d809cef071", "lib.core.BuildPipeline": "e991626c0aee9d7b", "BuildPipeline": "e991626c0aee9d7b", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file diff --git a/TransPyV/output/af9484a65085bf4b.deps.json b/TransPyV/output/af9484a65085bf4b.deps.json index 67af6ce..28f0892 100644 --- a/TransPyV/output/af9484a65085bf4b.deps.json +++ b/TransPyV/output/af9484a65085bf4b.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "llvmlite.__function": "0c9a196ed8f137a8", "__function": "0c9a196ed8f137a8", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "lib.core.Handles.HandlesFunctions": "1073ffca7e27aae5", "HandlesFunctions": "1073ffca7e27aae5", "lib.core.Handles.HandlesImports": "134678d620920327", "HandlesImports": "134678d620920327", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "lib.core.Handles.HandlesReturn": "2703a899f26b771d", "HandlesReturn": "2703a899f26b771d", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesType": "36f17e746044defb", "HandlesType": "36f17e746044defb", "lib.core.Handles.HandlesStruct": "3a8870350b3cb1f7", "HandlesStruct": "3a8870350b3cb1f7", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.BuildPipeline": "518fd98d3ebec951", "BuildPipeline": "518fd98d3ebec951", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "json.__init__": "57288496f7c2d1ad", "__init__": "f3444ec56937284f", "json": "57288496f7c2d1ad", "lib.core.IncludesScanner": "6282c9b745a35b8f", "IncludesScanner": "6282c9b745a35b8f", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "lib.core.Handles.HandlesExprCall": "647c596aeb1fd27c", "HandlesExprCall": "647c596aeb1fd27c", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "lib.__init__": "6a19179426e9a883", "lib": "6a19179426e9a883", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "string": "6be4daa5dc5fa7ce", "lib.core.Phase2": "6d88e12d1fb0efee", "Phase2": "6d88e12d1fb0efee", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "lib.core.Handles.HandlesFor": "727a218636fc49ab", "HandlesFor": "727a218636fc49ab", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesMain": "88811298a7b47d02", "HandlesMain": "88811298a7b47d02", "lib.core.Handles.HandlesAssign": "8cf4461e82a4ecf2", "HandlesAssign": "8cf4461e82a4ecf2", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.StubGen.Converter": "a299b2ce21d25f48", "Converter": "a299b2ce21d25f48", "llvmlite.__builder": "adde71d4f0a1f628", "__builder": "adde71d4f0a1f628", "ast.parser": "b4d2098ceb689168", "parser": "b4d2098ceb689168", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "memhub": "ba2b074357dcd3b5", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.core.Handles.HandlesClassDef": "bfa1cc81748c0271", "HandlesClassDef": "bfa1cc81748c0271", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "main": "c2010cffc6092ea2", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesExpr": "c6b0b8148dc63d5c", "HandlesExpr": "c6b0b8148dc63d5c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "argparse": "ca44e2bae615339f", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "lib.core.Handles.HandlesAnnAssign": "dda2d0326dda1ff5", "HandlesAnnAssign": "dda2d0326dda1ff5", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "lib.core.Phase1": "ec8cf4a355eb1a65", "Phase1": "ec8cf4a355eb1a65", "lib.core.StubMerger": "ede1b9cd3f28e8c8", "StubMerger": "ede1b9cd3f28e8c8", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "lib.core.VLogger": "f1e8dabe2ec63f05", "VLogger": "f1e8dabe2ec63f05", "llvmlite.__init__": "f23f91ad42cb466f", "llvmlite": "f23f91ad42cb466f", "lib.core.Handles.HandlesTranslator": "f331c46316ec1dd3", "HandlesTranslator": "f331c46316ec1dd3", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "lib.core.Handles.HandlesFunctions": "1073ffca7e27aae5", "HandlesFunctions": "1073ffca7e27aae5", "lib.core.Handles.HandlesAnnAssign": "15bb32adb7093ed7", "HandlesAnnAssign": "15bb32adb7093ed7", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "llvmlite.__init__": "1d74d1d3a174c684", "__init__": "f3444ec56937284f", "llvmlite": "1d74d1d3a174c684", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "lib.core.Handles.HandlesReturn": "2703a899f26b771d", "HandlesReturn": "2703a899f26b771d", "atom": "271ea3decb810db2", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "lib.core.Handles.HandlesAssign": "2b59175b77f1304e", "HandlesAssign": "2b59175b77f1304e", "lib.core.Phase1": "2d523679d6b886ad", "Phase1": "2d523679d6b886ad", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "hashtable": "2fbec3db55b30ad4", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesStruct": "371fa89e15d8c015", "HandlesStruct": "371fa89e15d8c015", "stdlib": "3aa6057398be5673", "lib.StubGen.Converter": "3c5f1c61545644a9", "Converter": "3c5f1c61545644a9", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.core.Handles.HandlesFor": "456fb516ba3c5002", "HandlesFor": "456fb516ba3c5002", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "lib.core.Handles.HandlesMain": "4a7b57e6bd18f65e", "HandlesMain": "4a7b57e6bd18f65e", "string": "4daf5ed3f8e421a1", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "llvmlite.__builder": "5a1d8c48f1243746", "__builder": "5a1d8c48f1243746", "lib.core.Handles.HandlesExprCall": "5c482c6aac2ba83b", "HandlesExprCall": "5c482c6aac2ba83b", "lib.core.Handles.HandlesTranslator": "62805d8ad3e9b5ba", "HandlesTranslator": "62805d8ad3e9b5ba", "lib.core.IncludesScanner": "6282c9b745a35b8f", "IncludesScanner": "6282c9b745a35b8f", "lib.core.Handles.HandlesImports": "6293eee0a5805aa5", "HandlesImports": "6293eee0a5805aa5", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "lib.core.Handles.HandlesExpr": "68f2617198f5757f", "HandlesExpr": "68f2617198f5757f", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "lib.__init__": "6a19179426e9a883", "lib": "6a19179426e9a883", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Phase2": "7ba06a9edf0fa6c7", "Phase2": "7ba06a9edf0fa6c7", "_list": "7cadfe07e983fd90", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "subprocess": "a335eb99f2e34479", "linkedlist": "a5e9a83e9db303ad", "lib.core.Handles.HandlesClassDef": "aa45364399b86a03", "HandlesClassDef": "aa45364399b86a03", "lib.core.Handles.HandlesType": "af1cc6aaab47a7d1", "HandlesType": "af1cc6aaab47a7d1", "argparse": "b370d93b74bf55cc", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.VLogger": "bdf5730851fb95f2", "VLogger": "bdf5730851fb95f2", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "main": "c2010cffc6092ea2", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "memhub": "ca40915f11b8b6ad", "lib.core.StubMerger": "cae1b2c5898ed6e5", "StubMerger": "cae1b2c5898ed6e5", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "viperlib": "e307a2d809cef071", "lib.core.BuildPipeline": "e991626c0aee9d7b", "BuildPipeline": "e991626c0aee9d7b", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file diff --git a/TransPyV/temp/2d39c6c7d3557b3e.pyi b/TransPyV/temp/2d39c6c7d3557b3e.pyi deleted file mode 100644 index fc259bd..0000000 --- a/TransPyV/temp/2d39c6c7d3557b3e.pyi +++ /dev/null @@ -1,63 +0,0 @@ -""" -Auto-generated Python stub file from linkedlist.py -Module: linkedlist -""" - - -import t, c -from stdint import * - -@t.NoVTable -class LinkedNode: - next: 'LinkedNode' | t.CPtr - prev: 'LinkedNode' | t.CPtr - child: 'LinkedNode' | t.CPtr - last_child: 'LinkedNode' | t.CPtr - parent: 'LinkedNode' | t.CPtr - child_count: t.CSizeT - def append(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def prepend(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_before(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_after(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def remove_child(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def detach(self: LinkedNode) -> t.CInt: pass - def unlink(self: LinkedNode) -> t.CInt: pass - def has_children(self: LinkedNode) -> t.CInt: pass - def child_at(self: LinkedNode, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass - def count_children(self: LinkedNode) -> t.CSizeT: pass - def first_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass - def last_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass -@t.NoVTable -class SListNode: - Next: 'SListNode' | t.CPtr - def append(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def append_after(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def count(self: SListNode) -> t.CSizeT: pass - def at(self: SListNode, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass - def remove(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self: GSList) -> t.CInt: pass - def append(self: GSList, node: T) -> t.CInt: pass - def count(self: GSList) -> t.CSizeT: pass - def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass -@t.NoVTable -class GTreeNode[T]: - Next: T | t.CPtr - Prev: T | t.CPtr - Child: T | t.CPtr - LastChild: T | t.CPtr - Parent: T | t.CPtr - Count: t.CSizeT - def append(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def prepend(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def detach(self: GTreeNode) -> t.CInt: pass - def has_children(self: GTreeNode) -> t.CInt: pass - def child_at(self: GTreeNode, index: t.CSizeT) -> T | t.CPtr: pass - def count_children(self: GTreeNode) -> t.CSizeT: pass \ No newline at end of file diff --git a/TransPyV/temp/2da636c61863c815.pyi b/TransPyV/temp/2da636c61863c815.pyi deleted file mode 100644 index 16ca4de..0000000 --- a/TransPyV/temp/2da636c61863c815.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -Auto-generated Python stub file from subprocess.py -Module: subprocess -""" - - -import t, c -from stdint import * -import platmacro -import memhub -import string -import w32.win32base -import w32.win32file -import w32.win32process -import w32.win32sync -import posix - -OUTPUT_BUF_SIZE: t.CDefine = 65536 -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -class CompletedProcess: - args: str - returncode: int - stdout: str - stderr: str - def __new__(self: CompletedProcess, args: str, returncode: int, stdout: str, stderr: str) -> t.CPtr: pass - def __init__(self: CompletedProcess, args: str, returncode: int, stdout: str, stderr: str) -> t.CInt: pass - -def run(args: str, capture_output: bool = True, text: bool = True) -> CompletedProcess | t.CPtr: pass - -def _run_win32(args: str, capture_output: bool, text: bool) -> CompletedProcess | t.CPtr: pass - -def _run_posix(args: str, capture_output: bool, text: bool) -> CompletedProcess | t.CPtr: pass diff --git a/TransPyV/temp/6503c97dde0c79c4.pyi b/TransPyV/temp/6503c97dde0c79c4.pyi deleted file mode 100644 index d332326..0000000 --- a/TransPyV/temp/6503c97dde0c79c4.pyi +++ /dev/null @@ -1,189 +0,0 @@ -""" -Auto-generated Python stub file from posix.py -Module: posix -""" - - -import t, c -from stdint import * - -DIR: t.CTypedef = t.CVoid | t.CPtr -mode_t: t.CTypedef = t.CUInt32T -pid_t: t.CTypedef = t.CInt32T -off_t: t.CTypedef = t.CInt64T -dev_t: t.CTypedef = t.CUInt64T -ino_t: t.CTypedef = t.CUInt64T -nlink_t: t.CTypedef = t.CUInt64T -uid_t: t.CTypedef = t.CUInt32T -gid_t: t.CTypedef = t.CUInt32T -blksize_t: t.CTypedef = t.CInt64T -blkcnt_t: t.CTypedef = t.CInt64T -time_t: t.CTypedef = t.CInt64T -O_RDONLY: t.CDefine = 0 -O_WRONLY: t.CDefine = 1 -O_RDWR: t.CDefine = 2 -O_CREAT: t.CDefine = 0o100 -O_EXCL: t.CDefine = 0o200 -O_TRUNC: t.CDefine = 0o1000 -O_APPEND: t.CDefine = 0o2000 -O_NONBLOCK: t.CDefine = 0o4000 -O_CLOEXEC: t.CDefine = 0o2000000 -F_OK: t.CDefine = 0 # 文件存在 -R_OK: t.CDefine = 4 # 可读 -W_OK: t.CDefine = 2 # 可写 -X_OK: t.CDefine = 1 # 可执行 -S_IFMT: t.CDefine = 0o170000 # 类型掩码 -S_IFSOCK: t.CDefine = 0o140000 # 套接字 -S_IFLNK: t.CDefine = 0o120000 # 符号链接 -S_IFREG: t.CDefine = 0o100000 # 普通文件 -S_IFBLK: t.CDefine = 0o060000 # 块设备 -S_IFDIR: t.CDefine = 0o040000 # 目录 -S_IFCHR: t.CDefine = 0o020000 # 字符设备 -S_IFIFO: t.CDefine = 0o010000 # FIFO/管道 -S_ISUID: t.CDefine = 0o4000 # set-user-ID -S_ISGID: t.CDefine = 0o2000 # set-group-ID -S_ISVTX: t.CDefine = 0o1000 # sticky 位 -S_IRWXU: t.CDefine = 0o700 # 用户读写执行 -S_IRUSR: t.CDefine = 0o400 # 用户读 -S_IWUSR: t.CDefine = 0o200 # 用户写 -S_IXUSR: t.CDefine = 0o100 # 用户执行 -S_IRWXG: t.CDefine = 0o070 # 组读写执行 -S_IRGRP: t.CDefine = 0o040 # 组读 -S_IWGRP: t.CDefine = 0o020 # 组写 -S_IXGRP: t.CDefine = 0o010 # 组执行 -S_IRWXO: t.CDefine = 0o007 # 其他读写执行 -S_IROTH: t.CDefine = 0o004 # 其他读 -S_IWOTH: t.CDefine = 0o002 # 其他写 -S_IXOTH: t.CDefine = 0o001 # 其他执行 -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -PATH_MAX: t.CDefine = 4096 -NAME_MAX: t.CDefine = 255 -_SC_NPROCESSORS_ONLN: t.CDefine = 84 -_SC_PAGESIZE: t.CDefine = 30 -_SC_CLK_TCK: t.CDefine = 2 -DT_UNKNOWN: t.CDefine = 0 -DT_FIFO: t.CDefine = 1 -DT_CHR: t.CDefine = 2 -DT_DIR: t.CDefine = 4 -DT_BLK: t.CDefine = 6 -DT_REG: t.CDefine = 8 -DT_LNK: t.CDefine = 10 -DT_SOCK: t.CDefine = 12 -DT_WHT: t.CDefine = 14 -WNOHANG: t.CDefine = 1 -WUNTRACED: t.CDefine = 2 -WCONTINUED: t.CDefine = 8 - -class Stat: - st_dev: dev_t - st_ino: ino_t - st_nlink: nlink_t - st_mode: mode_t - st_uid: uid_t - st_gid: gid_t - __pad0: INT - st_rdev: dev_t - st_size: off_t - st_blksize: blksize_t - st_blocks: blkcnt_t - st_atim_sec: time_t - st_atim_nsec: LONGLONG - st_mtim_sec: time_t - st_mtim_nsec: LONGLONG - st_ctim_sec: time_t - st_ctim_nsec: LONGLONG - __unused0: LONGLONG - __unused1: LONGLONG - __unused2: LONGLONG -class Dirent: - d_ino: ino_t - d_off: off_t - d_reclen: USHORT - d_type: BYTE - d_name: CHARPTR - -def open(path: t.CConst | str, oflag: INT, *args) -> INT | t.State: pass - -def close(fd: INT) -> INT | t.State: pass - -def read(fd: INT, buf: bytes, count: t.CSizeT) -> ssize_t | t.State: pass - -def write(fd: INT, buf: t.CConst | bytes, count: t.CSizeT) -> ssize_t | t.State: pass - -def lseek(fd: INT, offset: off_t, whence: INT) -> off_t | t.State: pass - -def unlink(path: t.CConst | str) -> INT | t.State: pass - -def access(path: t.CConst | str, amode: INT) -> INT | t.State: pass - -def realpath(path: t.CConst | str, resolved: CHARPTR) -> CHARPTR | t.State: pass - -def rename(oldpath: t.CConst | str, newpath: t.CConst | str) -> INT | t.State: pass - -def chmod(path: t.CConst | str, mode: mode_t) -> INT | t.State: pass - -def stat(path: t.CConst | str, buf: Stat | t.CPtr) -> INT | t.State: pass - -def fstat(fd: INT, buf: Stat | t.CPtr) -> INT | t.State: pass - -def opendir(name: t.CConst | str) -> DIR | t.CPtr | t.State: pass - -def readdir(dirp: DIR | t.CPtr) -> Dirent | t.CPtr | t.State: pass - -def closedir(dirp: DIR | t.CPtr) -> INT | t.State: pass - -def mkdir(path: t.CConst | str, mode: mode_t) -> INT | t.State: pass - -def rmdir(path: t.CConst | str) -> INT | t.State: pass - -def getcwd(buf: CHARPTR, size: t.CSizeT) -> CHARPTR | t.State: pass - -def chdir(path: t.CConst | str) -> INT | t.State: pass - -def fork() -> pid_t | t.State: pass - -def execvp(file: t.CConst | str, argv: CHARPTR | t.CPtr) -> INT | t.State: pass - -def execv(path: t.CConst | str, argv: CHARPTR | t.CPtr) -> INT | t.State: pass - -def waitpid(pid: pid_t, status: INT | t.CPtr, options: INT) -> pid_t | t.State: pass - -def pipe(fds: INT | t.CPtr) -> INT | t.State: pass - -def dup2(oldfd: INT, newfd: INT) -> INT | t.State: pass - -def _exit(status: INT) -> t.CVoid | t.State: pass - -def getpid() -> pid_t | t.State: pass - -def getenv(name: t.CConst | str) -> CHARPTR | t.State: pass - -def setenv(name: t.CConst | str, value: t.CConst | str, overwrite: INT) -> INT | t.State: pass - -def sysconf(name: INT) -> LONG | t.State: pass - -def isatty(fd: INT) -> INT | t.State: pass - -def S_ISREG(mode: mode_t) -> bool: pass - -def S_ISDIR(mode: mode_t) -> bool: pass - -def S_ISLNK(mode: mode_t) -> bool: pass - -def S_ISCHR(mode: mode_t) -> bool: pass - -def S_ISBLK(mode: mode_t) -> bool: pass - -def S_ISFIFO(mode: mode_t) -> bool: pass - -def S_ISSOCK(mode: mode_t) -> bool: pass - -def WIFEXITED(status: INT) -> bool: pass - -def WEXITSTATUS(status: INT) -> INT: pass - -def WIFSIGNALED(status: INT) -> bool: pass - -def WTERMSIG(status: INT) -> INT: pass diff --git a/TransPyV/temp/6f62fe05c5ea1ceb.pyi b/TransPyV/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/TransPyV/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/TransPyV/temp/90c53dd6db8d41cf.pyi b/TransPyV/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/TransPyV/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/TransPyV/temp/93c1d18e35d188d6.pyi b/TransPyV/temp/93c1d18e35d188d6.pyi deleted file mode 100644 index a8cd09e..0000000 --- a/TransPyV/temp/93c1d18e35d188d6.pyi +++ /dev/null @@ -1,53 +0,0 @@ -""" -Auto-generated Python stub file from platmacro.py -Module: platmacro -""" - - -import t, c - -IS_WINDOWS: t.CDefine = 1 -IS_WIN64: t.CDefine = 1 -IS_X86_64: t.CDefine = 1 -IS_LP64: t.CDefine = 1 -IS_LITTLE_ENDIAN: t.CDefine = 1 -IS_LINUX: t.CDefine = 0 -IS_MACOS: t.CDefine = 0 -IS_ARM64: t.CDefine = 0 -IS_BIG_ENDIAN: t.CDefine = 0 -IS_ILP32: t.CDefine = 0 -PTR_SIZE: t.CDefine = t.CSizeT().Size -INT_SIZE: t.CDefine = 4 -LONG_SIZE: t.CDefine = t.CLong().Size -WORD_SIZE: t.CDefine = t.CSizeT().Size -CACHE_LINE_SIZE: t.CDefine = 64 -PAGE_SIZE: t.CDefine = 4096 -STACK_ALIGN: t.CDefine = 16 -MAX_PATH_LEN: t.CDefine = 260 -PLATFORM_NAME: t.CDefine = 1 -ARCH_NAME: t.CDefine = 1 -WINVER: t.CDefine = 0x0A00 -_WIN32_WINNT: t.CDefine = 0x0A00 -NTDDI_VERSION: t.CDefine = 0x0A000006 -HAS_SSE2: t.CDefine = 1 -HAS_AVX: t.CDefine = 1 -HAS_AVX2: t.CDefine = 1 -HAS_FMA: t.CDefine = 1 -HAS_NEON: t.CDefine = 0 -ALIGNOF_INT: t.CDefine = 4 -ALIGNOF_LONG: t.CDefine = t.CLong().Size // 8 -ALIGNOF_PTR: t.CDefine = t.CSizeT().Size // 8 -ALIGNOF_DOUBLE: t.CDefine = 8 -ALIGNOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_SHORT: t.CDefine = 2 -SIZEOF_INT: t.CDefine = 4 -SIZEOF_LONG: t.CDefine = t.CLong().Size // 8 -SIZEOF_LONG_LONG: t.CDefine = 8 -SIZEOF_FLOAT: t.CDefine = 4 -SIZEOF_DOUBLE: t.CDefine = 8 -SIZEOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_POINTER: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_SIZE_T: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_PTRDIFF_T: t.CDefine = t.CPtrDiffT().Size // 8 -BYTE_ORDER_LE: t.CDefine = 1 -BYTE_ORDER_BE: t.CDefine = 0 \ No newline at end of file diff --git a/TransPyV/temp/_phase1_manifest.json b/TransPyV/temp/_phase1_manifest.json index 5459be5..f07200b 100644 --- a/TransPyV/temp/_phase1_manifest.json +++ b/TransPyV/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Config.py": {"sha1": "c0042adc0b7ec5df", "mtime": 1785241966.0103655, "size": 14060}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Utils.py": {"sha1": "4650533467115342", "mtime": 1785077386.0865414, "size": 4900}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\StubGen\\Converter.py": {"sha1": "a299b2ce21d25f48", "mtime": 1784984743.9358737, "size": 25729}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\__init__.py": {"sha1": "6a19179426e9a883", "mtime": 1785077377.9348202, "size": 820}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\BuildPipeline.py": {"sha1": "518fd98d3ebec951", "mtime": 1785162051.2929833, "size": 21096}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAnnAssign.py": {"sha1": "dda2d0326dda1ff5", "mtime": 1785241922.9077628, "size": 18099}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAssign.py": {"sha1": "8cf4461e82a4ecf2", "mtime": 1785089234.3414164, "size": 21540}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAugAssign.py": {"sha1": "31e49accebfc8aac", "mtime": 1784751046.0461829, "size": 12874}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBase.py": {"sha1": "63a3d17e96a083ac", "mtime": 1785077528.8645678, "size": 8740}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBody.py": {"sha1": "81eb28ba912467a6", "mtime": 1784566611.8626723, "size": 8538}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesClassDef.py": {"sha1": "bfa1cc81748c0271", "mtime": 1785141268.286755, "size": 142209}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesEnum.py": {"sha1": "f05b14a2ad5767a7", "mtime": 1784741624.7278736, "size": 8520}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExpr.py": {"sha1": "c6b0b8148dc63d5c", "mtime": 1785242287.3605785, "size": 133473}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprCall.py": {"sha1": "647c596aeb1fd27c", "mtime": 1785236635.2932217, "size": 249083}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprOps.py": {"sha1": "be8c2d7b882881c8", "mtime": 1784791452.111348, "size": 12796}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFor.py": {"sha1": "727a218636fc49ab", "mtime": 1784911765.8497338, "size": 16456}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFunctions.py": {"sha1": "1073ffca7e27aae5", "mtime": 1785088623.6859856, "size": 45439}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesIf.py": {"sha1": "66de93aaeebc0601", "mtime": 1784909392.040444, "size": 5211}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesImports.py": {"sha1": "134678d620920327", "mtime": 1785242434.808544, "size": 25912}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesMain.py": {"sha1": "88811298a7b47d02", "mtime": 1785242688.4376202, "size": 14591}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesNonlocal.py": {"sha1": "af9484a65085bf4b", "mtime": 1784540868.0555332, "size": 5336}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesReturn.py": {"sha1": "2703a899f26b771d", "mtime": 1784993322.4011614, "size": 5496}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesStruct.py": {"sha1": "3a8870350b3cb1f7", "mtime": 1785089213.2567465, "size": 49612}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesTranslator.py": {"sha1": "f331c46316ec1dd3", "mtime": 1784909392.035747, "size": 18180}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesType.py": {"sha1": "36f17e746044defb", "mtime": 1785236632.99756, "size": 56572}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesVar.py": {"sha1": "cb1aa3a78af6f362", "mtime": 1784912268.8221612, "size": 15697}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesWhile.py": {"sha1": "51f0144d6e8188d9", "mtime": 1784566611.8311827, "size": 4787}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\IncludesScanner.py": {"sha1": "6282c9b745a35b8f", "mtime": 1785077413.3274963, "size": 12723}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase1.py": {"sha1": "ec8cf4a355eb1a65", "mtime": 1785089259.2337334, "size": 45398}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase2.py": {"sha1": "6d88e12d1fb0efee", "mtime": 1785235529.833421, "size": 38279}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\StubMerger.py": {"sha1": "ede1b9cd3f28e8c8", "mtime": 1785077435.6965353, "size": 83849}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\VLogger.py": {"sha1": "f1e8dabe2ec63f05", "mtime": 1785235371.1008425, "size": 10067}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\main.py": {"sha1": "c2010cffc6092ea2", "mtime": 1785235444.7967048, "size": 26351}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\argparse.py": {"sha1": "ca44e2bae615339f", "mtime": 1785237115.6528778, "size": 17984}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "f3444ec56937284f", "mtime": 1785234518.1366436, "size": 3421}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "22bc0df83b3f0e62", "mtime": 1785234518.2521012, "size": 14992}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "b543bc1dfb592119", "mtime": 1785234529.1695778, "size": 40886}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "e217def267d3d4a8", "mtime": 1785234877.6059575, "size": 24109}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "b4d2098ceb689168", "mtime": 1785243964.8731592, "size": 87363}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.py": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.py": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.py": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.py": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.py": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.py": {"sha1": "b8c66c8ff44eb874", "mtime": 1782826619.490043, "size": 9385}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.py": {"sha1": "57288496f7c2d1ad", "mtime": 1783239811.8873823, "size": 7653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.py": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.py": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.py": {"sha1": "f23f91ad42cb466f", "mtime": 1785052610.0278065, "size": 16398}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.py": {"sha1": "adde71d4f0a1f628", "mtime": 1785237115.7820363, "size": 51216}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.py": {"sha1": "0c9a196ed8f137a8", "mtime": 1784998857.8841164, "size": 29569}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.py": {"sha1": "692919c5a194ac8d", "mtime": 1784909392.0377598, "size": 23144}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.py": {"sha1": "2d8debefda779c40", "mtime": 1784909392.040444, "size": 18976}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.py": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784566611.8301415, "size": 6739}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.py": {"sha1": "6b3bc463fd044545", "mtime": 1784566611.82952, "size": 14751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "ba2b074357dcd3b5", "mtime": 1785237131.132007, "size": 21195}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1784909392.0394392, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "6be4daa5dc5fa7ce", "mtime": 1785163174.6131096, "size": 11046}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.py": {"sha1": "2da636c61863c815", "mtime": 1783847277.4569364, "size": 7627}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "72dbbb563aa943b0", "mtime": 1785241948.3344862, "size": 13751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "fc980acec33d69a7", "mtime": 1785237797.3092654, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file +{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Config.py": {"sha1": "c0042adc0b7ec5df", "mtime": 1785332415.2264168, "size": 14060}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Utils.py": {"sha1": "4650533467115342", "mtime": 1785332415.2054548, "size": 4900}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\StubGen\\Converter.py": {"sha1": "3c5f1c61545644a9", "mtime": 1785332415.2120533, "size": 35262}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\__init__.py": {"sha1": "6a19179426e9a883", "mtime": 1785332415.1753137, "size": 820}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\BuildPipeline.py": {"sha1": "e991626c0aee9d7b", "mtime": 1785338517.4840038, "size": 23557}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAnnAssign.py": {"sha1": "15bb32adb7093ed7", "mtime": 1785332415.1796682, "size": 22584}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAssign.py": {"sha1": "2b59175b77f1304e", "mtime": 1785343736.8740923, "size": 24369}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAugAssign.py": {"sha1": "31e49accebfc8aac", "mtime": 1784751046.0461829, "size": 12874}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBase.py": {"sha1": "63a3d17e96a083ac", "mtime": 1785332415.2080498, "size": 8740}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBody.py": {"sha1": "81eb28ba912467a6", "mtime": 1784566611.8626723, "size": 8538}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesClassDef.py": {"sha1": "aa45364399b86a03", "mtime": 1785345709.6485052, "size": 142863}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesEnum.py": {"sha1": "f05b14a2ad5767a7", "mtime": 1784741624.7278736, "size": 8520}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExpr.py": {"sha1": "68f2617198f5757f", "mtime": 1785352882.3350165, "size": 144462}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprCall.py": {"sha1": "5c482c6aac2ba83b", "mtime": 1785332415.2151341, "size": 250062}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprOps.py": {"sha1": "be8c2d7b882881c8", "mtime": 1784791452.111348, "size": 12796}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFor.py": {"sha1": "456fb516ba3c5002", "mtime": 1785332415.1896677, "size": 17319}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFunctions.py": {"sha1": "1073ffca7e27aae5", "mtime": 1785332415.2064638, "size": 45439}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesIf.py": {"sha1": "66de93aaeebc0601", "mtime": 1784909392.040444, "size": 5211}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesImports.py": {"sha1": "6293eee0a5805aa5", "mtime": 1785332415.2416043, "size": 25274}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesMain.py": {"sha1": "4a7b57e6bd18f65e", "mtime": 1785332415.1935978, "size": 21362}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesNonlocal.py": {"sha1": "af9484a65085bf4b", "mtime": 1784540868.0555332, "size": 5336}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesReturn.py": {"sha1": "2703a899f26b771d", "mtime": 1785332415.1835012, "size": 5496}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesStruct.py": {"sha1": "371fa89e15d8c015", "mtime": 1785352932.9305031, "size": 48672}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesTranslator.py": {"sha1": "62805d8ad3e9b5ba", "mtime": 1785332415.2370398, "size": 18196}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesType.py": {"sha1": "af1cc6aaab47a7d1", "mtime": 1785350678.7589717, "size": 60329}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesVar.py": {"sha1": "cb1aa3a78af6f362", "mtime": 1785332415.2565334, "size": 15697}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesWhile.py": {"sha1": "51f0144d6e8188d9", "mtime": 1784566611.8311827, "size": 4787}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\IncludesScanner.py": {"sha1": "6282c9b745a35b8f", "mtime": 1785332415.2009153, "size": 12723}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase1.py": {"sha1": "2d523679d6b886ad", "mtime": 1785347467.5013578, "size": 51449}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase2.py": {"sha1": "7ba06a9edf0fa6c7", "mtime": 1785351377.19578, "size": 51540}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\StubMerger.py": {"sha1": "cae1b2c5898ed6e5", "mtime": 1785389144.9056978, "size": 91558}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\VLogger.py": {"sha1": "bdf5730851fb95f2", "mtime": 1785332415.2542837, "size": 10068}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\main.py": {"sha1": "c2010cffc6092ea2", "mtime": 1785332415.2064638, "size": 26351}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "7cadfe07e983fd90", "mtime": 1785338614.5410473, "size": 3238}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\argparse.py": {"sha1": "b370d93b74bf55cc", "mtime": 1785347242.759819, "size": 18275}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "f3444ec56937284f", "mtime": 1785332415.2553575, "size": 3421}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "22bc0df83b3f0e62", "mtime": 1785332415.1850114, "size": 14992}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "b543bc1dfb592119", "mtime": 1785332415.2436252, "size": 40886}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "e217def267d3d4a8", "mtime": 1785332415.2310088, "size": 24109}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "fde6db0747bdd959", "mtime": 1785348036.106818, "size": 87525}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.py": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.py": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.py": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.py": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.py": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.py": {"sha1": "2fbec3db55b30ad4", "mtime": 1785337460.8923311, "size": 9701}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.py": {"sha1": "57288496f7c2d1ad", "mtime": 1783239811.8873823, "size": 7653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.py": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.py": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.py": {"sha1": "1d74d1d3a174c684", "mtime": 1785332415.2151341, "size": 17031}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.py": {"sha1": "5a1d8c48f1243746", "mtime": 1785342190.6646752, "size": 51186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.py": {"sha1": "874bac141c97bae9", "mtime": 1785342172.222551, "size": 30049}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.py": {"sha1": "692919c5a194ac8d", "mtime": 1785332415.2502255, "size": 23144}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.py": {"sha1": "2d8debefda779c40", "mtime": 1785332415.2141044, "size": 18976}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.py": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784566611.8301415, "size": 6739}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.py": {"sha1": "6b3bc463fd044545", "mtime": 1784566611.82952, "size": 14751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "ca40915f11b8b6ad", "mtime": 1785336321.3175714, "size": 21931}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "b57252077e6b596b", "mtime": 1785332415.2187803, "size": 1266}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "28de517e3820658a", "mtime": 1785335629.2014928, "size": 10586}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "3aa6057398be5673", "mtime": 1785319487.0321114, "size": 374}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "4daf5ed3f8e421a1", "mtime": 1785332415.2233481, "size": 11037}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.py": {"sha1": "a335eb99f2e34479", "mtime": 1785319401.2041914, "size": 7841}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "0c67644125bea0fd", "mtime": 1785325556.7317626, "size": 5606}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "e307a2d809cef071", "mtime": 1785318582.5499828, "size": 56783}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "72dbbb563aa943b0", "mtime": 1785332415.1891341, "size": 13751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file diff --git a/TransPyV/temp/_sha1_map.txt b/TransPyV/temp/_sha1_map.txt index d0eec0f..fb30c62 100644 --- a/TransPyV/temp/_sha1_map.txt +++ b/TransPyV/temp/_sha1_map.txt @@ -1,80 +1,80 @@ 067c78e9f121dce3:includes/w32\win32process.py 06f53cc594b4ac6c:includes/w32\win32sync.py -0c9a196ed8f137a8:includes/llvmlite\__function.py +0c67644125bea0fd:includes/sys.py 0df65b8ed15664b0:includes/hashlib\__sha1.py 1073ffca7e27aae5:lib/core/Handles/HandlesFunctions.py -134678d620920327:lib/core/Handles/HandlesImports.py +15bb32adb7093ed7:lib/core/Handles/HandlesAnnAssign.py 19f8024d10c828e8:includes/hashlib\__md5.py +1d74d1d3a174c684:includes/llvmlite\__init__.py 20cd49775c100a38:includes/json\__writer.py 22bc0df83b3f0e62:includes/ast\base.py 240a9a4157959a9f:includes/json\__parser.py 2703a899f26b771d:lib/core/Handles/HandlesReturn.py 271ea3decb810db2:includes/atom.py -2d39c6c7d3557b3e:includes/linkedlist.py +285b6aa29a34754d:includes/stdio.py +28de517e3820658a:includes/posix.py +2b59175b77f1304e:lib/core/Handles/HandlesAssign.py +2d523679d6b886ad:lib/core/Phase1.py 2d8debefda779c40:includes/llvmlite\__types.py -2da636c61863c815:includes/subprocess.py +2fbec3db55b30ad4:includes/hashtable.py 31e49accebfc8aac:lib/core/Handles/HandlesAugAssign.py -36f17e746044defb:lib/core/Handles/HandlesType.py -3a8870350b3cb1f7:lib/core/Handles/HandlesStruct.py +371fa89e15d8c015:lib/core/Handles/HandlesStruct.py +3aa6057398be5673:includes/stdlib.py +3c5f1c61545644a9:lib/StubGen/Converter.py 4337fb260448bbe2:includes/ast\astaux.py +456fb516ba3c5002:lib/core/Handles/HandlesFor.py 4650533467115342:lib/Projectrans/Utils.py +4a7b57e6bd18f65e:lib/core/Handles/HandlesMain.py +4daf5ed3f8e421a1:includes/string.py 4dd6b3f1427d1cc5:includes/ast\match.py -518fd98d3ebec951:lib/core/BuildPipeline.py 51f0144d6e8188d9:lib/core/Handles/HandlesWhile.py 57288496f7c2d1ad:includes/json\__init__.py +5a1d8c48f1243746:includes/llvmlite\__builder.py +5c482c6aac2ba83b:lib/core/Handles/HandlesExprCall.py +62805d8ad3e9b5ba:lib/core/Handles/HandlesTranslator.py 6282c9b745a35b8f:lib/core/IncludesScanner.py +6293eee0a5805aa5:lib/core/Handles/HandlesImports.py 63a3d17e96a083ac:lib/core/Handles/HandlesBase.py -647c596aeb1fd27c:lib/core/Handles/HandlesExprCall.py -6503c97dde0c79c4:includes/posix.py 657e182b27c2a022:includes/ast\stmts.py -668790e6c9efdbae:includes/_list.py 66de93aaeebc0601:lib/core/Handles/HandlesIf.py +68f2617198f5757f:lib/core/Handles/HandlesExpr.py 692919c5a194ac8d:includes/llvmlite\__module.py 6a19179426e9a883:lib/__init__.py 6b3bc463fd044545:includes/llvmlite\__verify.py -6be4daa5dc5fa7ce:includes/string.py -6d88e12d1fb0efee:lib/core/Phase2.py -6f62fe05c5ea1ceb:includes/stdio.py 6ff26590374ae6fc:includes/hashlib\__sha512.py 71e0a3ffcb3ebfad:includes/stdarg.py -727a218636fc49ab:lib/core/Handles/HandlesFor.py 72dbbb563aa943b0:includes/w32\fileio.py +7ba06a9edf0fa6c7:lib/core/Phase2.py +7cadfe07e983fd90:includes/_list.py 81eb28ba912467a6:lib/core/Handles/HandlesBody.py -88811298a7b47d02:lib/core/Handles/HandlesMain.py -8cf4461e82a4ecf2:lib/core/Handles/HandlesAssign.py -90c53dd6db8d41cf:includes/stdlib.py -93c1d18e35d188d6:includes/platmacro.py +874bac141c97bae9:includes/llvmlite\__function.py 96837bcc64032444:includes/hashlib\__init__.py -a299b2ce21d25f48:lib/StubGen/Converter.py -adde71d4f0a1f628:includes/llvmlite\__builder.py +a335eb99f2e34479:includes/subprocess.py +a5e9a83e9db303ad:includes/linkedlist.py +aa45364399b86a03:lib/core/Handles/HandlesClassDef.py +af1cc6aaab47a7d1:lib/core/Handles/HandlesType.py af9484a65085bf4b:lib/core/Handles/HandlesNonlocal.py -b4d2098ceb689168:includes/ast\parser.py +b370d93b74bf55cc:includes/argparse.py b543bc1dfb592119:includes/ast\exprs.py b547ac4f380bddb6:includes/ast\tokens.py -b5a965302cded36b:includes/sys.py -b8c66c8ff44eb874:includes/hashtable.py -ba2b074357dcd3b5:includes/memhub.py +b57252077e6b596b:includes/platmacro.py bbdf3bbd4c3bc28c:includes/w32\win32console.py +bdf5730851fb95f2:lib/core/VLogger.py be8c2d7b882881c8:lib/core/Handles/HandlesExprOps.py -bfa1cc81748c0271:lib/core/Handles/HandlesClassDef.py c0042adc0b7ec5df:lib/Projectrans/Config.py c2010cffc6092ea2:main.py -c3b259b4059f8668:includes/viperlib.py -c6b0b8148dc63d5c:lib/core/Handles/HandlesExpr.py c9d54a4158f7f5a8:includes/hashlib\__sha256.py c9f4be41ca1cc2b4:includes/viperio.py -ca44e2bae615339f:includes/argparse.py +ca40915f11b8b6ad:includes/memhub.py +cae1b2c5898ed6e5:lib/core/StubMerger.py cb1aa3a78af6f362:lib/core/Handles/HandlesVar.py -dda2d0326dda1ff5:lib/core/Handles/HandlesAnnAssign.py e217def267d3d4a8:includes/ast\lexer.py -ec8cf4a355eb1a65:lib/core/Phase1.py -ede1b9cd3f28e8c8:lib/core/StubMerger.py +e307a2d809cef071:includes/viperlib.py +e991626c0aee9d7b:lib/core/BuildPipeline.py f05b14a2ad5767a7:lib/core/Handles/HandlesEnum.py -f1e8dabe2ec63f05:lib/core/VLogger.py -f23f91ad42cb466f:includes/llvmlite\__init__.py -f331c46316ec1dd3:lib/core/Handles/HandlesTranslator.py f3444ec56937284f:includes/ast\__init__.py f5522571bcce7bcb:includes/stdint.py f6b51804a0ba8ff0:includes/w32\win32file.py f9e36e2cd6fa659f:includes/llvmlite\__values.py fc980acec33d69a7:includes/w32\win32base.py +fde6db0747bdd959:includes/ast\parser.py diff --git a/TransPyV/temp/_shared_sym.json b/TransPyV/temp/_shared_sym.json index 8f21afe39d515c8e35591196738c8cba846f8659..39bbdd808b011919549538687f00032b315334a3 100644 GIT binary patch literal 1931421 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 z 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 literal 1913790 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

}VtBS@VH#M<3UEQOx(4;0-r>pw}J6B%R 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 diff --git a/TransPyV/temp/b5a965302cded36b.pyi b/TransPyV/temp/b5a965302cded36b.pyi deleted file mode 100644 index bfdb955..0000000 --- a/TransPyV/temp/b5a965302cded36b.pyi +++ /dev/null @@ -1,44 +0,0 @@ -""" -Auto-generated Python stub file from sys.py -Module: sys -""" - - -import t, c -from stdint import * -import platmacro -import memhub -import string -import stdio -import w32.win32base -import w32.win32process -import posix - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def fgets(buf: t.CChar | t.CPtr, size: t.CInt, stream: t.CVoid | t.CPtr) -> t.CChar | t.CPtr | t.CExtern | t.CExport: pass - -def fflush(stream: t.CVoid | t.CPtr) -> t.CInt | t.CExtern | t.CExport: pass - -def exit(status: INT) -> VOID | t.CExtern | t.CExport: pass - - -maxsize: t.CDefine = 9223372036854775807 - -def platform() -> str: pass - -def get_pid() -> int: pass - - -_argc: t.CExtern | INT -_argv: t.CExtern | str | t.CPtr - -def _init_argv() -> t.CInt: pass - -def _init_argv_win32() -> t.CInt: pass - -def _init_argv_posix() -> t.CInt: pass - -def argc() -> int: pass - -def argv(index: int) -> str: pass diff --git a/TransPyV/temp/b8c66c8ff44eb874.pyi b/TransPyV/temp/b8c66c8ff44eb874.pyi deleted file mode 100644 index 85bdb8f..0000000 --- a/TransPyV/temp/b8c66c8ff44eb874.pyi +++ /dev/null @@ -1,46 +0,0 @@ -""" -Auto-generated Python stub file from hashtable.py -Module: hashtable -""" - - -import t, c -import string -import memhub -from stdint import * - -_HT_EMPTY: t.CDefine = 0 -_HT_TOMBSTONE: t.CDefine = 1 -_HT_INIT_CAP: t.CDefine = 16 -_HT_SLOT_SIZE: t.CDefine = 24 -_FNV_OFFSET: t.CExtern | t.CUInt64T -_FNV_PRIME: t.CExtern | t.CUInt64T - -def _fnv1a_hash(key: str) -> t.CUInt64T: pass - - -class HashTable: - __slots__: t.CVoid | t.CPtr - __count__: t.CSizeT = 0 - __capacity__: t.CSizeT = 16 - __tombstones__: t.CSizeT = 0 - __mbuddy__: memhub.MemBuddy | t.CPtr - __iter_index__: t.CSizeT = 0 - def __new__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def _slot_hash(self: HashTable, idx: t.CSizeT) -> t.CUInt64T: pass - def _slot_key(self: HashTable, idx: t.CSizeT) -> str: pass - def _slot_value(self: HashTable, idx: t.CSizeT) -> t.CPtr: pass - def _set_slot(self: HashTable, idx: t.CSizeT, h: t.CUInt64T, key: str, val: t.CPtr) -> t.CInt: pass - def _find_slot(self: HashTable, key: str, h: t.CUInt64T) -> t.CSizeT: pass - def _resize(self: HashTable, new_cap: t.CSizeT) -> t.CInt: pass - def __setitem__(self: HashTable, key: str, val: t.CNeedPtr) -> t.CInt: pass - def __getitem__(self: HashTable, key: str) -> t.CPtr: pass - def __contains__(self: HashTable, key: str) -> t.CInt: pass - def __delitem__(self: HashTable, key: str) -> t.CInt: pass - def __len__(self: HashTable) -> t.CSizeT: pass - def __iter__(self: HashTable) -> HashTable | t.CPtr: pass - def __next__(self: HashTable) -> str: pass - def get(self: HashTable, key: str, default: t.CPtr) -> t.CPtr: pass - def set_int(self: HashTable, key: str, val: int) -> t.CInt: pass - def set_str(self: HashTable, key: str, val: str) -> t.CInt: pass \ No newline at end of file diff --git a/TransPyV/temp/c3b259b4059f8668.pyi b/TransPyV/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/TransPyV/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/includes/argparse.py b/includes/argparse.py index c409c26..f03bd0b 100644 --- a/includes/argparse.py +++ b/includes/argparse.py @@ -464,7 +464,11 @@ def release(args: ParsedArgs | t.CPtr): if args.__mbuddy__ is None: return if args._ht is not None: - if args._ht.__slots__ is not None: - args.__mbuddy__.free(args._ht.__slots__) - args.__mbuddy__.free(t.CVoid(t.CUInt64T(args._ht), t.CPtr)) + # 用临时变量拆分链式属性访问,避免 args._ht.__slots__ 跨模块类型推断失败 + # 注意:类型注解必须用 hashtable.HashTable(带模块前缀), + # 否则编译器无法解析 HashTable 类型,导致 ht.__slots__ 属性访问失败 + ht: hashtable.HashTable | t.CPtr = args._ht + if ht.__slots__ is not None: + args.__mbuddy__.free(ht.__slots__) + args.__mbuddy__.free(t.CVoid(t.CUInt64T(ht), t.CPtr)) args.__mbuddy__.free(t.CVoid(t.CUInt64T(args), t.CPtr)) diff --git a/includes/ast/parser.py b/includes/ast/parser.py index 4277f7e..1fc6a7f 100644 --- a/includes/ast/parser.py +++ b/includes/ast/parser.py @@ -1740,7 +1740,7 @@ def _parse_if(ps: Parser | t.CPtr) -> AST | t.CPtr: _expect_op(ps, TokOp.Colon) # 先用空 orelse 构造,后面填充 empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8) - node: AST | t.CPtr = If(ps.pool, test, empty) + node: If | t.CPtr = If(ps.pool, test, empty) _parse_suite_into_children(ps, node) orelse: list[AST | t.CPtr] | t.CPtr = _parse_if_tail(ps) node.orelse = orelse @@ -1761,7 +1761,7 @@ def _parse_if_tail(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: elif_test: AST | t.CPtr = _parse_test(ps) _expect_op(ps, TokOp.Colon) empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8) - elif_node: AST | t.CPtr = If(ps.pool, elif_test, empty) + elif_node: If | t.CPtr = If(ps.pool, elif_test, empty) _parse_suite_into_children(ps, elif_node) elif_orelse: list[AST | t.CPtr] | t.CPtr = _parse_if_tail(ps) elif_node.orelse = elif_orelse @@ -1789,7 +1789,7 @@ def _parse_while(ps: Parser | t.CPtr) -> AST | t.CPtr: test: AST | t.CPtr = _parse_test(ps) _expect_op(ps, TokOp.Colon) empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8) - node: AST | t.CPtr = While(ps.pool, test, empty) + node: While | t.CPtr = While(ps.pool, test, empty) _parse_suite_into_children(ps, node) if _cur_kw(ps) == Keyword.Else: _advance(ps) @@ -1813,7 +1813,7 @@ def _parse_for(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: iter_: AST | t.CPtr = _parse_or_test(ps) _expect_op(ps, TokOp.Colon) empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8) - node: AST | t.CPtr = For(ps.pool, target, iter_, empty, is_async) + node: For | t.CPtr = For(ps.pool, target, iter_, empty, is_async) _fix_store_ctx(target) _parse_suite_into_children(ps, node) if _cur_kw(ps) == Keyword.Else: @@ -1832,7 +1832,7 @@ def _parse_try(ps: Parser | t.CPtr) -> AST | t.CPtr: _advance(ps) # try _expect_op(ps, TokOp.Colon) empty: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8) - node: AST | t.CPtr = Try(ps.pool, empty, empty, empty) + node: Try | t.CPtr = Try(ps.pool, empty, empty, empty) _parse_suite_into_children(ps, node) # handlers (except) handlers: list[AST | t.CPtr] | t.CPtr = list[AST | t.CPtr](ps.pool, 8) @@ -1895,7 +1895,7 @@ def _parse_with(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: if _cur_type(ps) == TokenType.NewLine or _cur_type(ps) == TokenType.Nl: break _expect_op(ps, TokOp.Colon) - node: AST | t.CPtr = With(ps.pool, items, is_async) + node: With | t.CPtr = With(ps.pool, items, is_async) _parse_suite_into_children(ps, node) _set_pos(node, lineno, col, 0, 0) return node @@ -1936,7 +1936,7 @@ def _parse_funcdef(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: _expect_op(ps, TokOp.Colon) dec_list: list[AST | t.CPtr] | t.CPtr = ps.pending_decorators ps.pending_decorators = None - node: AST | t.CPtr = FunctionDef(ps.pool, name, args, dec_list, returns, is_async) + node: FunctionDef | t.CPtr = FunctionDef(ps.pool, name, args, dec_list, returns, is_async) _parse_suite_into_children(ps, node) _set_pos(node, lineno, col, 0, 0) return node @@ -1991,7 +1991,7 @@ def _parse_classdef(ps: Parser | t.CPtr) -> AST | t.CPtr: _expect_op(ps, TokOp.Colon) dec_list: list[AST | t.CPtr] | t.CPtr = ps.pending_decorators ps.pending_decorators = None - node: AST | t.CPtr = ClassDef(ps.pool, name, bases, keywords, dec_list, type_params) + node: ClassDef | t.CPtr = ClassDef(ps.pool, name, bases, keywords, dec_list, type_params) _parse_suite_into_children(ps, node) _set_pos(node, lineno, col, 0, 0) return node @@ -2380,6 +2380,6 @@ def parse_tokens(pool: memhub.MemManager | t.CPtr, ps: Parser | t.CPtr = new_parser(pool) if ps is None: return None _parser_init(ps, tokens, pool) - module_node: AST | t.CPtr = Module(pool) + module_node: Module | t.CPtr = Module(pool) _parse_module_body(ps, module_node) return module_node diff --git a/includes/atom.py b/includes/atom.py index c01664f..6c58de9 100644 --- a/includes/atom.py +++ b/includes/atom.py @@ -13,9 +13,8 @@ def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: result: t.CUInt8T = 1 c.Asm(f"""mov al, 1 xchg byte ptr [{c.AsmInp(ptr, t.ASM_DESCR.REG_ANY)}], al - mov {c.AsmOut(result, t.ASM_DESCR.OUTPUT_REG)}, al""", + mov $0, al""", out = [c.AsmOut(result, t.ASM_DESCR.OUTPUT_REG)], - inp = [c.AsmInp(ptr, t.ASM_DESCR.REG_ANY)], op = [t.ASM_DESCR.CLOBBER_MEMORY, t.ASM_DESCR.CLOBBER_RAX]) return t.CBool(result) diff --git a/includes/llvmlite/__builder.py b/includes/llvmlite/__builder.py index e6d3cd5..640052e 100644 --- a/includes/llvmlite/__builder.py +++ b/includes/llvmlite/__builder.py @@ -7,7 +7,7 @@ import stdio from linkedlist import GSListNode, GSList from .__types import LLVMType, TypePrint from .__values import Value, new_value, SSAValue -from .__function import Function, BasicBlock, block_append_text, function_move_block_to_end, _ll_name_needs_quote +from .__function import Function, BasicBlock, block_append_text, block_set_terminated, block_get_terminated, function_move_block_to_end, _ll_name_needs_quote # ============================================================ # IRBuilder: 游标式 IR 指令发射器 @@ -104,20 +104,19 @@ def _emit(builder: IRBuilder | t.CPtr, text: t.CChar | t.CPtr): def _mark_terminated(builder: IRBuilder | t.CPtr): """标记当前块已终止""" if builder is None or builder.CurBlock is None: return - builder.CurBlock.IsTerminated = 1 + block_set_terminated(builder.CurBlock, 1) def builder_cur_block_is_terminated(builder: IRBuilder | t.CPtr) -> t.CInt: """检查当前块的 IsTerminated 标志 - 供其他模块绕过 stub 类型限制使用: - builder.CurBlock.IsTerminated 在 stub 类型中 BasicBlock 为 opaque, - 直接访问会被 TransPyC 静默跳过(不生成 GEP,不报错), - 导致返回寄存器残留值,br 回边指令被错误跳过。 + 通过 block_get_terminated 辅助函数访问,避免链式属性 + builder.CurBlock.IsTerminated 在跨模块场景下 BasicBlock 为 opaque + 导致的 GEP 静默跳过问题。 """ if builder is None or builder.CurBlock is None: return 1 - return builder.CurBlock.IsTerminated + return block_get_terminated(builder.CurBlock) # ============================================================ diff --git a/includes/llvmlite/__function.py b/includes/llvmlite/__function.py index 81b31ca..bb311ee 100644 --- a/includes/llvmlite/__function.py +++ b/includes/llvmlite/__function.py @@ -218,6 +218,19 @@ def block_append_line(block: BasicBlock | t.CPtr, line: Line | t.CPtr): block.Lines.append(line) +def block_set_terminated(block: BasicBlock | t.CPtr, val: t.CInt): + """设置块的终止标志(供跨模块调用,避免链式属性访问的 opaque 类型问题)""" + if block is None: return + block.IsTerminated = val + + +def block_get_terminated(block: BasicBlock | t.CPtr) -> t.CInt: + """获取块的终止标志(供跨模块调用,避免链式属性访问的 opaque 类型问题)""" + if block is None: + return 1 + return block.IsTerminated + + def block_append_text(pool: memhub.MemBuddy | t.CPtr, block: BasicBlock | t.CPtr, text: t.CChar | t.CPtr): """创建指令行并追加到基本块"""