修正了 TPC 的一些错误,包括 Test 维护后 TPV 无法重新编译或重编译后越界的部分问题

This commit is contained in:
2026-07-20 11:12:30 +08:00
parent ab73420b4f
commit a277ded8d4
476 changed files with 4000 additions and 3439 deletions

View File

@@ -171,6 +171,7 @@ def compute_file_sha1(pool: memhub.MemBuddy | t.CPtr,
bytes_read: t.CInt64T = f.read_all(buf, BUF_SIZE)
f.close()
if bytes_read <= 0:
stdlib.free(buf)
return None
# 原地去除 \rCRLF → LF与 Projectrans.py 文本模式读取一致
@@ -189,17 +190,21 @@ def compute_file_sha1(pool: memhub.MemBuddy | t.CPtr,
# 计算 SHA1
ctx: hashlib.sha1 | t.CPtr = hashlib.sha1()
if ctx is None:
stdlib.free(buf)
return None
ctx.update(buf)
digest: bytes = stdlib.malloc(hashlib.SHA1_DIGEST_LEN)
if digest is None:
stdlib.free(buf)
return None
ctx.final(digest)
# 转为十六进制字符串(取前 8 字节 = 16 个十六进制字符)
hex_buf: str = stdlib.malloc(17)
if hex_buf is None:
stdlib.free(buf)
stdlib.free(digest)
return None
for i in range(8):
hi: int = (digest[i] >> 4) & 0xF
@@ -213,6 +218,9 @@ def compute_file_sha1(pool: memhub.MemBuddy | t.CPtr,
else:
hex_buf[i * 2 + 1] = 'a' + (lo - 10)
hex_buf[16] = '\0'
# 释放临时缓冲区hex_buf 由调用者负责释放)
stdlib.free(buf)
stdlib.free(digest)
return hex_buf
@@ -245,6 +253,8 @@ def scan_directory_recursive(pool: memhub.MemBuddy | t.CPtr,
handle: win32base.HANDLE = win32file.FindFirstFileA(pattern, find_data)
if handle == win32base.INVALID_HANDLE_VALUE:
stdlib.free(pattern)
stdlib.free(find_data)
return 1
# 遍历所有文件和子目录
@@ -284,6 +294,7 @@ def scan_directory_recursive(pool: memhub.MemBuddy | t.CPtr,
prefix_len = string.strlen(rel_prefix)
rel_path: bytes = stdlib.malloc(prefix_len + fname_len + 2)
if rel_path is None:
stdlib.free(full_path)
break
if rel_prefix is not None and prefix_len > 0:
viperlib.snprintf(rel_path, prefix_len + fname_len + 2, "%s/%s", rel_prefix, fname)
@@ -312,13 +323,21 @@ def scan_directory_recursive(pool: memhub.MemBuddy | t.CPtr,
sha1: str = compute_file_sha1(pool, full_path)
if sha1 is not None:
add_file_entry(result, pool, full_path, rel_path, sha1)
stdio.printf(" [scan] %s -> %s\n", rel_path, sha1)
# 释放 compute_file_sha1 返回的临时 hex_buf
stdlib.free(sha1)
# 释放本次迭代分配的路径缓冲区
stdlib.free(full_path)
stdlib.free(rel_path)
# 继续搜索下一个文件
if win32file.FindNextFileA(handle, find_data) == 0:
nxt: t.CInt = win32file.FindNextFileA(handle, find_data)
if nxt == 0:
break
win32file.FindClose(handle)
stdlib.free(pattern)
stdlib.free(find_data)
return 0
@@ -341,7 +360,8 @@ def scan_includes(pool: memhub.MemBuddy | t.CPtr,
scan_directory_recursive(pool, includes_dir, None, result)
stdio.printf("[Phase1] 扫描完成: %d 个 .py 文件\n", result.Count)
count: t.CInt = result.Count
stdio.printf("[Phase1] 扫描完成: %d 个 .py 文件\n", count)
return result

View File

@@ -44,47 +44,78 @@ SRC_BUF_SIZE: t.CDefine = 1048576
def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str,
log: VLogger.Logger | t.CPtr) -> int:
"""Phase1: 扫描 includes 目录,按需翻译并生成 stub"""
stdio.printf("[P1 ENTER] mb=%p inc=%p temp=%p log=%p\n", mb, includes_dir, temp_dir, log)
stdio.fflush(0)
if includes_dir is None or temp_dir is None:
stdio.printf("[Phase1] includes_dir 或 temp_dir 为空,跳过\n")
return 1
stdio.printf("[P1] before log.banner\n")
stdio.fflush(0)
if log is not None:
log.banner("Phase1: 扫描 includes按需翻译")
stdio.printf("[P1] after log.banner\n")
stdio.fflush(0)
# 扫描 includes 目录
stdio.printf("[P1] before scan_includes: mb=%p inc=%s\n", mb, includes_dir)
stdio.fflush(0)
result: IncludesScanner.ScanResult | t.CPtr = IncludesScanner.scan_includes(mb, includes_dir)
stdio.printf("[P1] after scan_includes: result=%p\n", result)
stdio.fflush(0)
if result is None:
stdio.printf("[Phase1] 扫描失败\n")
return 1
stdio.printf("[Phase1] 共 %d 个文件\n", result.Count)
stdio.printf("[P1] result.Count=%d\n", result.Count)
stdio.fflush(0)
# 读取 _sha1_map.txt 获取需要的 includes SHA1 集合
# 优先使用 Projectrans.py 生成的 _sha1_map.txt含依赖分析只包含需要的 includes
# 若不存在,则从扫描结果生成(包含所有 includes可能导致结构体表溢出
sha1_set: str = stdlib.malloc(StubMerger.MAX_INCLUDES_SHA1 * 17)
stdio.printf("[P1] sha1_set=%p\n", sha1_set)
stdio.fflush(0)
if sha1_set is None:
stdio.printf("[Phase1] sha1_set 分配失败\n")
return 1
string.memset(sha1_set, 0, StubMerger.MAX_INCLUDES_SHA1 * 17)
stdio.printf("[P1] before _load_includes_sha1_set\n")
stdio.fflush(0)
set_count: int = StubMerger._load_includes_sha1_set(mb, temp_dir, sha1_set)
stdio.printf("[P1] set_count=%d\n", set_count)
stdio.fflush(0)
if set_count <= 0:
stdio.printf("[Phase1] _sha1_map.txt 不存在或为空,从扫描结果生成\n")
stdio.fflush(0)
stdio.printf("[P1] before WriteIncludesSha1Map\n")
stdio.fflush(0)
StubMerger.WriteIncludesSha1Map(mb, temp_dir, result, None, 0)
stdio.printf("[P1] after WriteIncludesSha1Map, before _load_includes_sha1_set\n")
stdio.fflush(0)
set_count = StubMerger._load_includes_sha1_set(mb, temp_dir, sha1_set)
stdio.printf("[P1] set_count2=%d\n", set_count)
stdio.fflush(0)
if set_count < 0:
stdio.printf("[Phase1] 无法加载 _sha1_map.txt跳过 Phase1\n")
return 1
stdio.printf("[Phase1] includes SHA1 集合: %d\n", set_count)
stdio.fflush(0)
# 构建模块 SHA1 映射(供跨模块函数调用名混淆使用)
td_len_p1map: t.CSizeT = string.strlen(temp_dir)
p1_sha1_arr: bytes = stdlib.malloc(StubMerger.MAX_INCLUDES * 17)
p1_mod_arr: bytes = stdlib.malloc(StubMerger.MAX_INCLUDES * 64)
p1_inc_count: int = 0
stdio.printf("[P1] before _BuildIncludesSha1Map\n")
stdio.fflush(0)
if p1_sha1_arr is not None and p1_mod_arr is not None:
p1_inc_count = StubMerger._BuildIncludesSha1Map(temp_dir, td_len_p1map, p1_sha1_arr, p1_mod_arr)
stdio.printf("[P1] after _BuildIncludesSha1Map: inc=%d\n", p1_inc_count)
stdio.fflush(0)
stdio.printf("[P1] before set_module_sha1_map\n")
stdio.fflush(0)
HandlesExprCall.set_module_sha1_map(p1_sha1_arr, p1_mod_arr, p1_inc_count)
stdio.printf("[P1] after set_module_sha1_map\n")
stdio.fflush(0)
# 初始化 AST 表(只需一次)
ast._init_tables(mb)

View File

@@ -8,6 +8,7 @@ import llvmlite
import w32.win32file as win32file
import w32.win32base as win32base
import w32.fileio as fileio
import w32.win32memory as win32memory
import viperlib
import sys
import ast
@@ -69,6 +70,7 @@ def _load_includes_sha1_set(pool: memhub.MemBuddy | t.CPtr,
f: fileio.File | t.CPtr = fileio.File(map_path, fileio.MODE.R)
if f.closed:
stdio.printf("[StubMerger] _sha1_map.txt 不存在: %s\n", map_path)
stdlib.free(map_path)
return -1
# 读取内容(使用 stdlib.malloc 避免 mbuddy 池耗尽)
@@ -76,10 +78,13 @@ def _load_includes_sha1_set(pool: memhub.MemBuddy | t.CPtr,
content: str = stdlib.malloc(MAP_BUF_SIZE)
if content is None:
f.close()
stdlib.free(map_path)
return -1
bytes_read: t.CInt64T = f.read_all(content, MAP_BUF_SIZE)
f.close()
stdlib.free(map_path)
if bytes_read <= 0:
stdlib.free(content)
return -1
content[bytes_read] = '\0'
@@ -112,6 +117,7 @@ def _load_includes_sha1_set(pool: memhub.MemBuddy | t.CPtr,
sha1_set[count * 17 + 16] = '\0'
count += 1
stdlib.free(content)
return count
@@ -189,6 +195,8 @@ def WriteIncludesSha1Map(mb: memhub.MemBuddy | t.CPtr, temp_dir: str,
written_count += 1
f.close()
stdlib.free(map_path)
stdlib.free(line_buf)
stdio.printf("[Phase1] 已写入 _sha1_map.txt (%d 个 includes)\n", written_count)
return 0
@@ -735,14 +743,32 @@ def _BuildIncludesSha1Map(temp_dir: str, td_len: t.CSizeT,
map_buf[map_br] = '\0'
else:
map_buf[STUB_READ_BUF_SIZE - 1] = '\0'
stdio.printf("[BISM] map_br=%lld\n", map_br)
stdio.fflush(0)
# 堆探针:测试堆是否已被之前的操作损坏
probe: bytes = stdlib.malloc(17)
stdio.printf("[BISM] probe malloc(17)=%p\n", probe)
stdio.fflush(0)
if probe is not None:
stdlib.free(probe)
stdio.printf("[BISM] probe free OK\n")
stdio.fflush(0)
count: int = 0
pos: t.CSizeT = 0
while pos < map_br and count < MAX_INCLUDES:
stdio.printf("[BISM] iter=%d pos=%d\n", count, pos)
stdio.fflush(0)
# 提取 SHA116 hex
sha1: t.CChar | t.CPtr = stdlib.malloc(17)
stdio.printf("[BISM] malloc(17)=%p\n", sha1)
stdio.fflush(0)
if sha1 is None:
break
hv: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None)
stdio.printf("[BISM] HV after malloc(sha1)=%d\n", hv)
stdio.fflush(0)
string.strncpy(sha1, map_buf + pos, 16)
sha1[16] = '\0'
pos += 16
@@ -755,6 +781,8 @@ def _BuildIncludesSha1Map(temp_dir: str, td_len: t.CSizeT,
while pos < map_br and map_buf[pos] != '\n' and map_buf[pos] != '\r' and map_buf[pos] != '\0':
pos += 1
path_len: t.CSizeT = pos - path_start
stdio.printf("[BISM] path_len=%d\n", path_len)
stdio.fflush(0)
# 跳过 \r\n 或 \n
if pos < map_br and map_buf[pos] == '\r':
pos += 1
@@ -765,25 +793,49 @@ def _BuildIncludesSha1Map(temp_dir: str, td_len: t.CSizeT,
# 否则用户文件会被误判为 includes导致 is_module_imported 模块名不匹配而跳过加载
if path_len >= 9 and string.strncmp(map_buf + path_start, "includes/", 9) == 0:
path_buf: t.CChar | t.CPtr = stdlib.malloc(path_len + 1)
stdio.printf("[BISM] malloc(%d)=%p\n", path_len + 1, path_buf)
stdio.fflush(0)
if path_buf is not None:
string.strncpy(path_buf, map_buf + path_start, path_len)
path_buf[path_len] = '\0'
hv2: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None)
stdio.printf("[BISM] HV after fill(path_buf)=%d\n", hv2)
stdio.fflush(0)
mod_name: str = _PathToModuleName(path_buf)
stdio.printf("[BISM] _PathToModuleName=%p\n", mod_name)
stdio.fflush(0)
hv3: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None)
stdio.printf("[BISM] HV after _PathToModuleName=%d\n", hv3)
stdio.fflush(0)
stdlib.free(path_buf)
if mod_name is not None:
# 存储 sha1 和 mod_name 到数组中
idx: t.CSizeT = t.CSizeT(count) * 17
string.strcpy(sha1_list + idx, sha1)
hv4: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None)
stdio.printf("[BISM] HV after strcpy(sha1_list)=%d\n", hv4)
stdio.fflush(0)
idx2: t.CSizeT = t.CSizeT(count) * 64
mn_len: t.CSizeT = string.strlen(mod_name)
stdio.printf("[BISM] mn_len=%d count=%d\n", mn_len, count)
stdio.fflush(0)
if mn_len < 64:
string.strcpy(mod_list + idx2, mod_name)
else:
string.strncpy(mod_list + idx2, mod_name, 63)
mod_list[idx2 + 63] = '\0'
hv5: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None)
stdio.printf("[BISM] HV after strcpy(mod_list)=%d\n", hv5)
stdio.fflush(0)
stdlib.free(mod_name)
stdio.printf("[BISM] free(mod_name) OK\n")
stdio.fflush(0)
count += 1
stdio.printf("[BISM] before free(sha1=%p)\n", sha1)
stdio.fflush(0)
stdlib.free(sha1)
stdio.printf("[BISM] free(sha1) OK\n")
stdio.fflush(0)
stdlib.free(map_buf)
return count

View File

@@ -249,7 +249,11 @@ def main() -> int:
ph1_temp: str = Config.TempDir
if ph1_temp is None:
ph1_temp = "."
stdio.printf("[DBG MAIN] before Phase1: Inc=%s temp=%s\n", Config.IncludesDir, ph1_temp)
stdio.fflush(0)
Phase1.RunPhase1(mb, Config.IncludesDir, ph1_temp, log)
stdio.printf("[DBG MAIN] after Phase1\n")
stdio.fflush(0)
# 如果仅 Phase1不执行 Phase2直接退出
if do_phase2 == 0:
stdio.printf("[phase] Phase1 完成,退出\n")

View File

@@ -1 +0,0 @@
{"atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "hashlib.__sha1": "73fcdc4dd1618580", "__sha1": "73fcdc4dd1618580", "string": "83210a72e829a086", "hashlib.__init__": "96837bcc64032444", "__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "hashlib.__md5": "cc436a125bbaf28c", "__md5": "cc436a125bbaf28c", "stdlib": "e79ec1d5e09b18bc", "memhub": "ee084e9fc6ee413a", "stdint": "f5522571bcce7bcb"}

View File

@@ -1,26 +0,0 @@
"""
Auto-generated Python stub file from atom.py
Module: atom
"""
import t, c
ATOMIC_RELAXED: t.CDefine = 0
ATOMIC_CONSUME: t.CDefine = 1
ATOMIC_ACQUIRE: t.CDefine = 2
ATOMIC_RELEASE: t.CDefine = 3
ATOMIC_ACQ_REL: t.CDefine = 4
ATOMIC_SEQ_CST: t.CDefine = 5
def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass
def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass
def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass
def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass
def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass
def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass

View File

@@ -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

View File

@@ -1,39 +0,0 @@
"""
Auto-generated Python stub file from hashlib.__sha512.py
Module: hashlib.__sha512
"""
import t, c
SHA512_BLOCK_LEN: t.CDefine = 128
SHA512_DIGEST_LEN: t.CDefine = 64
def sha512_ror(x: t.CUInt64T, n: int) -> t.CUInt64T: pass
def sha512_shr(x: t.CUInt64T, n: int) -> t.CUInt64T: pass
def sha512_Ch(x: t.CUInt64T, y: t.CUInt64T, z: t.CUInt64T) -> t.CUInt64T: pass
def sha512_Maj(x: t.CUInt64T, y: t.CUInt64T, z: t.CUInt64T) -> t.CUInt64T: pass
def sha512_BigSigma0(x: t.CUInt64T) -> t.CUInt64T: pass
def sha512_BigSigma1(x: t.CUInt64T) -> t.CUInt64T: pass
def sha512_Sigma0(x: t.CUInt64T) -> t.CUInt64T: pass
def sha512_Sigma1(x: t.CUInt64T) -> t.CUInt64T: pass
sha512_K: t.CExtern | t.CArray[t.CUInt64T, 80]
@t.Object
class sha512:
state: t.CArray[t.CUInt64T, 8]
count: t.CArray[t.CUInt64T, 2]
buf: t.CArray[t.CUInt8T, SHA512_BLOCK_LEN]
def __init__(self: sha512) -> t.CInt: pass
def transform(self: sha512, block: t.CArray[t.CUInt8T, SHA512_BLOCK_LEN]) -> t.CInt: pass
def update(self: sha512, s: str) -> t.CInt: pass
def final(self: sha512, out: t.CArray[t.CUInt8T, SHA512_DIGEST_LEN]) -> t.CInt: pass

View File

@@ -1,29 +0,0 @@
"""
Auto-generated Python stub file from hashlib.__sha1.py
Module: hashlib.__sha1
"""
import t, c
SHA1_BLOCK_LEN: t.CDefine = 64
SHA1_DIGEST_LEN: t.CDefine = 20
def sha1_rotl(x: t.CUInt32T, n: t.CInt) -> t.CUInt32T: pass
def sha1_f1(b: t.CUInt32T, c: t.CUInt32T, d: t.CUInt32T) -> t.CUInt32T: pass
def sha1_f2(b: t.CUInt32T, c: t.CUInt32T, d: t.CUInt32T) -> t.CUInt32T: pass
def sha1_f3(b: t.CUInt32T, c: t.CUInt32T, d: t.CUInt32T) -> t.CUInt32T: pass
@t.Object
class sha1:
state: t.CArray[t.CUInt32T, 5]
count: t.CUInt64T
buf: t.CArray[t.CUInt8T, SHA1_BLOCK_LEN]
def __init__(self: sha1) -> t.CInt: pass
def transform(self: sha1, block: t.CUInt8T | t.CPtr) -> t.CInt: pass
def update(self: sha1, s: str) -> t.CInt: pass
def final(self: sha1, out: t.CArray[t.CUInt8T, SHA1_DIGEST_LEN]) -> t.CInt: pass

View File

@@ -1,46 +0,0 @@
"""
Auto-generated Python stub file from string.py
Module: string
"""
from stdint import *
import t, c
def strcpy(dest: str, src: str) -> str: pass
def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass
def strlen(src: str) -> t.CSizeT | t.CExport: pass
def strcmp(str1: str, str2: str) -> t.CInt: pass
def samestr(str1: str, str2: str) -> bool: pass
def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass
def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass
def strchr(s: str, cr: t.CInt) -> str: pass
def strrchr(s: str, cr: t.CInt) -> str: pass
def strstr(s: str, needle: str) -> str: pass
def strspn(s: str, skip: str) -> int: pass
def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass
def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass
def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass
def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass
def atoi(src: str) -> t.CInt: pass
def atoll(src: str) -> t.CInt64T: pass
def atof(src: str) -> t.CDouble: pass
def split(s: str, delim: str, result: t.CArray[str]) -> int: pass

View File

@@ -1,13 +0,0 @@
"""
Auto-generated Python stub file from hashlib.__init__.py
Module: hashlib.__init__
"""
import t
import c
from .__md5 import md5, MD5_DIGEST_LEN
from .__sha1 import sha1, SHA1_DIGEST_LEN
from .__sha256 import sha256, SHA256_DIGEST_LEN
from .__sha512 import sha512, SHA512_DIGEST_LEN

View File

@@ -1 +0,0 @@
{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\Test\\Sha1Test\\App\\main.py": {"sha1": "f3458d483d1f87c2", "mtime": 1783397909.5463412, "size": 1508}, "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": "cc436a125bbaf28c", "mtime": 1782266200.556964, "size": 5797}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.py": {"sha1": "73fcdc4dd1618580", "mtime": 1782266202.164787, "size": 4501}, "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\\memhub.py": {"sha1": "ee084e9fc6ee413a", "mtime": 1783101063.0559144, "size": 17765}, "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": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "e79ec1d5e09b18bc", "mtime": 1782810965.1928923, "size": 382}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "83210a72e829a086", "mtime": 1782786805.5320292, "size": 9548}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}}

View File

@@ -1,13 +0,0 @@
271ea3decb810db2:includes/atom.py
6f62fe05c5ea1ceb:includes/stdio.py
6ff26590374ae6fc:includes/hashlib\__sha512.py
73fcdc4dd1618580:includes/hashlib\__sha1.py
83210a72e829a086:includes/string.py
96837bcc64032444:includes/hashlib\__init__.py
c9d54a4158f7f5a8:includes/hashlib\__sha256.py
c9f4be41ca1cc2b4:includes/viperio.py
cc436a125bbaf28c:includes/hashlib\__md5.py
e79ec1d5e09b18bc:includes/stdlib.py
ee084e9fc6ee413a:includes/memhub.py
f3458d483d1f87c2:main.py
f5522571bcce7bcb:includes/stdint.py

View File

@@ -1,34 +0,0 @@
"""
Auto-generated Python stub file from hashlib.__sha256.py
Module: hashlib.__sha256
"""
import t, c
SHA256_BLOCK_LEN: t.CDefine = 64
SHA256_DIGEST_LEN: t.CDefine = 32
sha256_K: t.CExtern | t.CArray[t.CUInt32T, 64]
def s0(x: t.CUInt32T) -> t.CUInt32T: pass
def s1(x: t.CUInt32T) -> t.CUInt32T: pass
def S0(x: t.CUInt32T) -> t.CUInt32T: pass
def S1(x: t.CUInt32T) -> t.CUInt32T: pass
def Ch(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass
def Maj(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass
@t.Object
class sha256:
state: t.CArray[t.CUInt32T, 8]
count: t.CUInt64T
buf: t.CArray[t.CUInt8T, SHA256_BLOCK_LEN]
def __init__(self: sha256) -> t.CInt: pass
def transform(self: sha256, block: t.CUInt8T | t.CPtr) -> t.CInt: pass
def update(self: sha256, s: str) -> t.CInt: pass
def final(self: sha256, out: t.CArray[t.CUInt8T, SHA256_DIGEST_LEN]) -> t.CInt: pass

View File

@@ -1,22 +0,0 @@
"""
Auto-generated Python stub file from viperio.py
Module: viperio
"""
import t, c
from stdint import *
class Buf:
data: t.CChar | t.CPtr
length: t.CSizeT
capacity: t.CSizeT
owned: bool
def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass
def clear(self: Buf) -> t.CInt: pass
def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass
def cstr(self: Buf) -> t.CChar | t.CPtr: pass
def reset(self: Buf) -> t.CInt: pass
def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass
def __exit__(self: Buf) -> t.CInt: pass
def free(self: Buf) -> t.CInt: pass

View File

@@ -1,34 +0,0 @@
"""
Auto-generated Python stub file from hashlib.__md5.py
Module: hashlib.__md5
"""
import t, c
MD5_BLOCK_LEN: t.CDefine = 64 # 分组块大小
MD5_DIGEST_LEN: t.CDefine = 16 # 摘要输出长度
def md5_F(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass
def md5_G(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass
def md5_H(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass
def md5_I(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass
def md5_rotl(x: t.CUInt32T, n: t.CInt) -> t.CUInt32T: pass
md5_T: t.CExtern | t.CArray[t.CUInt32T, 64]
md5_S: t.CExtern | t.CArray[t.CInt, 64]
@t.Object
class md5:
state: t.CArray[t.CUInt32T, 4]
count: t.CUInt64T
buf: t.CArray[t.CUInt8T, MD5_BLOCK_LEN]
def __init__(self: md5) -> t.CInt: pass
def transform(self: md5, block: t.CUInt8T | t.CPtr) -> t.CInt: pass
def update(self: md5, s: str) -> t.CInt: pass
def final(self: md5, out: t.CArray[t.CUInt8T, MD5_DIGEST_LEN]) -> t.CInt: pass

View File

@@ -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) -> None | t.State: pass
def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass

View File

@@ -1,81 +0,0 @@
"""
Auto-generated Python stub file from memhub.py
Module: memhub
"""
import t, c
from stdint import *
import string
import atom
import viperio
MEMHUB_ALIGN: t.CDefine = 8
MEMSLAB_MIN_BLOCK: t.CDefine = 16
MEMSLAB_BITMAP_BYTES: t.CDefine = 256
MEMBUDDY_MIN_BLOCK: t.CDefine = 32
MEMBUDDY_MAX_ORDERS: t.CDefine = 32
MEMBUDDY_HEADER_SIZE: t.CDefine = 8
def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass
def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass
def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass
@t.CVTable
class MemManager:
__provides__: list[str] = ['__memmgr__']
base: t.CVoid | t.CPtr
size: t.CSizeT
def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass
def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
def reset(self: MemManager) -> t.CInt: pass
def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, old_size: t.CSizeT, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass
def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass
def __exit__(self: MemManager) -> t.CInt: pass
def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass
class MemPool(MemManager):
offset: t.CSizeT
high_water: t.CSizeT
def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass
def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
def reset(self: MemPool) -> t.CInt: pass
class MemSlab(MemManager):
block_size: t.CSizeT
block_count: t.CSizeT
used_count: t.CSizeT
free_list: t.CVoid | t.CPtr
alloc_map: t.CUInt8T | t.CPtr
alloc_map_size: t.CSizeT
usable: t.CVoid | t.CPtr
usable_size: t.CSizeT
def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass
def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
def reset(self: MemSlab) -> t.CInt: pass
class MemBuddy(MemManager):
max_order: t.CInt
free_lists: t.CUInt64T | t.CPtr
lock_val: t.CVolatile | t.CInt
usable: t.CVoid | t.CPtr
usable_size: t.CSizeT
def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass
def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass
def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass
def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass
def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass
def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass
def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass
def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass
def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
def _lock(self: MemBuddy) -> t.CInt: pass
def _unlock(self: MemBuddy) -> t.CInt: pass
def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
def reset(self: MemBuddy) -> t.CInt: pass
def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, old_size: t.CSizeT, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass

View File

@@ -1,17 +0,0 @@
"""
Auto-generated Python stub file from main.py
Module: main
"""
import t, c
from stdint import *
import stdio
import stdlib
import memhub
import hashlib
POOL_SIZE: t.CDefine = 16777480
@t.CExport
def main() -> int: pass

View File

@@ -1,100 +0,0 @@
"""
Auto-generated Python stub file from stdint.py
Module: stdint
"""
import c
import t
INT: t.CTypedef = t.CInt
INTPTR: t.CTypedef = t.CInt | t.CPtr
BOOL: t.CTypedef = t.CInt
UINT: t.CTypedef = t.CUnsignedInt
UINTPTR: t.CTypedef = UINT | t.CPtr
BYTE: t.CTypedef = t.CUnsignedChar
BYTEPTR: t.CTypedef = BYTE | t.CPtr
WORD: t.CTypedef = t.CUInt16T
DWORD: t.CTypedef = t.CUInt32T
QWORD: t.CTypedef = t.CUInt64T
TCHAR: t.CTypedef = t.CChar
CHARLIST: t.CTypedef = str | t.CPtr
VOID: t.CTypedef = t.CVoid
SHORT: t.CTypedef = t.CShort
SHORTPTR: t.CTypedef = t.CShort | t.CPtr
USHORT: t.CTypedef = t.CUnsignedShort
USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr
LONGLONG: t.CTypedef = t.CLongLong
ULONGLONG: t.CTypedef = t.CUnsignedLongLong
LONG: t.CTypedef = t.CLong
ULONG: t.CTypedef = t.CUnsignedLong
WCHAR: t.CTypedef = WORD
WCHARPTR: t.CTypedef = WORD | t.CPtr
CHARPTR: t.CTypedef = t.CChar | t.CPtr
FSIZE_t: t.CTypedef = DWORD
LBA_t: t.CTypedef = DWORD
VOIDPTR: t.CTypedef = t.CVoid | t.CPtr
FLOAT: t.CTypedef = t.CFloat
DOUBLE: t.CTypedef = t.CDouble
FLOAT8: t.CTypedef = t.CFloat8T
FLOAT16: t.CTypedef = t.CFloat16T
FLOAT32: t.CTypedef = t.CFloat32T
FLOAT64: t.CTypedef = t.CFloat64T
FLOAT128: t.CTypedef = t.CFloat128T
INT8: t.CTypedef = t.CInt8T
INT16: t.CTypedef = t.CInt16T
INT32: t.CTypedef = t.CInt32T
INT64: t.CTypedef = t.CInt64T
UINT8: t.CTypedef = t.CUInt8T
UINT16: t.CTypedef = t.CUInt16T
UINT32: t.CTypedef = t.CUInt32T
UINT64: t.CTypedef = t.CUInt64T
INT8PTR: t.CTypedef = t.CInt8T | t.CPtr
INT16PTR: t.CTypedef = t.CInt16T | t.CPtr
INT32PTR: t.CTypedef = t.CInt32T | t.CPtr
INT64PTR: t.CTypedef = t.CInt64T | t.CPtr
UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr
UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr
UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr
UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr
CHAR8: t.CTypedef = t.CChar8T
CHAR16: t.CTypedef = t.CChar16T
CHAR32: t.CTypedef = t.CChar32T
CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr
CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr
CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr
i8: t.CTypedef = t.CInt8T
i16: t.CTypedef = t.CInt16T
i32: t.CTypedef = t.CInt32T
i64: t.CTypedef = t.CInt64T
u8: t.CTypedef = t.CUInt8T
u16: t.CTypedef = t.CUInt16T
u32: t.CTypedef = t.CUInt32T
u64: t.CTypedef = t.CUInt64T
SIZE_T: t.CTypedef = t.CSizeT
SSIZE_T: t.CTypedef = t.CPtrDiffT
PTRDIFF_T: t.CTypedef = t.CPtrDiffT
int8_t: t.CTypedef = t.CInt8T
int16_t: t.CTypedef = t.CInt16T
int32_t: t.CTypedef = t.CInt32T
int64_t: t.CTypedef = t.CInt64T
uint8_t: t.CTypedef = t.CUInt8T
uint16_t: t.CTypedef = t.CUInt16T
uint32_t: t.CTypedef = t.CUInt32T
uint64_t: t.CTypedef = t.CUInt64T
size_t: t.CTypedef = t.CSizeT
ssize_t: t.CTypedef = t.CPtrDiffT
ptrdiff_t: t.CTypedef = t.CPtrDiffT
intptr_t: t.CTypedef = t.CIntPtrT
uintptr_t: t.CTypedef = t.CUIntPtrT
wchar_t: t.CTypedef = t.CWCharT
char8_t: t.CTypedef = t.CChar8T
char16_t: t.CTypedef = t.CChar16T
char32_t: t.CTypedef = t.CChar32T
float8_t: t.CTypedef = t.CFloat8T
float16_t: t.CTypedef = t.CFloat16T
float32_t: t.CTypedef = t.CFloat32T
float64_t: t.CTypedef = t.CFloat64T
float128_t: t.CTypedef = t.CFloat128T
_Bool: t.CTypedef = t.CBool

View File

@@ -1 +0,0 @@
t c stdint stdio w32.win32base w32.win32file

View File

@@ -1 +0,0 @@
t c stdint string viperlib memhub linkedlist llvmlite.__types

View File

@@ -1 +0,0 @@
t stdint w32.win32base

View File

@@ -1 +0,0 @@
t stdint w32.win32base

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c stdint memhub string ast.tokens

View File

@@ -1 +0,0 @@
string t c

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c stdint string memhub platmacro

View File

@@ -1 +0,0 @@
t c stdio w32.win32console t c stdio w32.win32console

View File

@@ -1 +0,0 @@
t c stdint stdio string t c stdint stdio string

View File

@@ -1 +0,0 @@
string t c

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
stdint zlib.zdeflate zdeflate zlib.zinflate zinflate zlib.zchecksum zchecksum zlib.zdef zdef zlib.zhuff zhuff stdlib string memhub t c

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c stdint memhub string stdio t c stdint memhub string stdio

View File

@@ -1 +0,0 @@
stdint stddef string stdlib memhub t c

View File

@@ -1 +0,0 @@
t c stdint string stdio viperlib memhub linkedlist llvmlite.__types llvmlite.__function

View File

@@ -1 +0,0 @@
t c stdint memhub string t c stdint memhub string

View File

@@ -1 +0,0 @@
t c

View File

@@ -1 +0,0 @@
t c t c

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c stdint memhub

View File

@@ -1 +0,0 @@
t c stdint

View File

@@ -1 +0,0 @@
t c stdint platmacro memhub string w32.win32base w32.win32file w32.win32process w32.win32sync posix

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c stdint memhub string ast.tokens ast.base ast.stmts ast.exprs ast.astaux ast.match ast.visitor ast.lexer ast.parser ast.parser

View File

@@ -1 +0,0 @@
t c

View File

@@ -1 +0,0 @@
string

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c

View File

@@ -1 +0,0 @@
t c stdint memhub string ast.base

View File

@@ -1 +0,0 @@
stdint zlib.zchecksum zchecksum zlib.zdef zdef zlib.zhuff zhuff string memhub t c

View File

@@ -1 +0,0 @@
t c stdint viperlib string memhub linkedlist

View File

@@ -1 +0,0 @@
t c stdint string viperlib memhub linkedlist llvmlite.__types llvmlite.__values llvmlite.__function

View File

@@ -1 +0,0 @@
t c stdint memhub string ast.base

View File

@@ -1 +0,0 @@
t c stdint memhub string ast.base

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c stdint w32.win32base w32.win32sync

View File

@@ -1 +0,0 @@
t c stdint memhub string viperio json.__parser json.__writer t c stdint memhub string viperio json.__parser json.__writer

View File

@@ -1 +0,0 @@
t c stdint w32.win32process stdlib stdio string

View File

@@ -1 +0,0 @@
t c stdint memhub string viperlib ast.tokens

View File

@@ -1 +0,0 @@
t c vipermath

View File

@@ -1 +0,0 @@
t c stdint w32.win32base

View File

@@ -1 +0,0 @@
t c stdint

View File

@@ -1 +0,0 @@
t c stdint memhub string ast.base

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c t c

View File

@@ -1 +0,0 @@
t c

View File

@@ -1 +0,0 @@
t

View File

@@ -1 +0,0 @@
t stdint w32.win32base

View File

@@ -1 +0,0 @@
stdio t c string stdio t c string

View File

@@ -1 +0,0 @@
t c stdint platmacro memhub os.path os._win32 os._posix

View File

@@ -1 +0,0 @@
t memhub string

View File

@@ -1 +0,0 @@
t stdint t stdint

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c stdint w32.win32base w32.win32process w32.win32sync lock event condition rwlock

View File

@@ -1 +0,0 @@
stdint t c

View File

@@ -1 +0,0 @@
stdint zlib.zchecksum zchecksum zlib.zhuff zhuff zlib.zdef zdef string memhub t c

View File

@@ -1 +0,0 @@
stdint t stdint t

View File

@@ -1 +0,0 @@
t c

View File

@@ -1 +0,0 @@
t c stdint memhub string viperlib llvmlite.__types llvmlite.__values llvmlite.__function llvmlite.__module llvmlite.__builder llvmlite.__verify

View File

@@ -1 +0,0 @@
hashlib.__md5 hashlib.__sha1 hashlib.__sha256 hashlib.__sha512

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c

View File

@@ -1 +0,0 @@
stdio stdlib t c testcheck memhub _list stdio stdlib t c testcheck memhub _list

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
t c stdint w32.win32base w32.win32sync

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1,47 +1,87 @@
aba439b7882ad9d6:includes/argparse.py
3487a256b250bb74:includes/asm.py
4337fb260448bbe2:includes/ast/astaux.py
5dab8cb390496d22:includes/ast/base.py
47767b5026a8ee15:includes/ast/exprs.py
0c212981c180e7fb:includes/ast/lexer.py
4dd6b3f1427d1cc5:includes/ast/match.py
ee52c08239684346:includes/ast/parser.py
657e182b27c2a022:includes/ast/stmts.py
b547ac4f380bddb6:includes/ast/tokens.py
34548789d646f432:includes/ast/__init__.py
271ea3decb810db2:includes/atom.py
971e24c228377a9b:includes/base64.py
257e074b935c33b4:includes/binascii.py
ea80a4a724accbda:includes/builtins.py
ad6c853acfc0c146:includes/condition.py
9d8626a10208b8de:includes/event.py
96837bcc64032444:includes/hashlib/__init__.py
19f8024d10c828e8:includes/hashlib/__md5.py
0df65b8ed15664b0:includes/hashlib/__sha1.py
c9d54a4158f7f5a8:includes/hashlib/__sha256.py
6ff26590374ae6fc:includes/hashlib/__sha512.py
b8c66c8ff44eb874:includes/hashtable.py
6166aecc7fa7ad65:includes/hello.py
57288496f7c2d1ad:includes/json/__init__.py
240a9a4157959a9f:includes/json/__parser.py
20cd49775c100a38:includes/json/__writer.py
f3560b99de458aec:includes/memhub.py
2d39c6c7d3557b3e:includes/linkedlist.py
946e087da91aaada:includes/llvmlite/__builder.py
89b3965176cd2407:includes/llvmlite/__function.py
95394ca8da0f655a:includes/llvmlite/__init__.py
21a7fcfc665f75ef:includes/llvmlite/__module.py
15f1ded02f3aa5bc:includes/llvmlite/__types.py
f9e36e2cd6fa659f:includes/llvmlite/__values.py
6b3bc463fd044545:includes/llvmlite/__verify.py
56d07ea7e30ef631:includes/lock.py
47775d5e50909338:includes/memhub.py
c3a6aed1f1fb8b1e:includes/numpy/__init__.py
13110effbb0bb06c:includes/os/path.py
d152115b49e50218:includes/os/_posix.py
a68b70f233541a7f:includes/os/_win32.py
76dd6c275aa72b3b:includes/os/__init__.py
93c1d18e35d188d6:includes/platmacro.py
e0f1d864a10b2e4d:includes/plist.py
6503c97dde0c79c4:includes/posix.py
b558d8d8f01f4825:includes/requests.py
da44924f0777c67a:includes/rwlock.py
abbcbd92436cc16a:includes/shutil.py
d7e3386b828acb66:includes/socket.py
b19a9e500f677f2e:includes/spinlock.py
71e0a3ffcb3ebfad:includes/stdarg.py
f5522571bcce7bcb:includes/stdint.py
6f62fe05c5ea1ceb:includes/stdio.py
90c53dd6db8d41cf:includes/stdlib.py
ab6e54ba9a669f76:includes/string.py
9474791561654346:includes/string.py
2da636c61863c815:includes/subprocess.py
b5a965302cded36b:includes/sys.py
14d33679f7fadf1f:includes/testcheck.py
a7bc8c01684c0001:includes/this.py
285a822aa26bfbda:includes/vector.py
c9f4be41ca1cc2b4:includes/viperio.py
c3b259b4059f8668:includes/viperlib.py
3f7c5e78d8652535:includes/vipermath.py
c24f25b14b4bbd0a:includes/vipersimd.py
3624cfde3c5cb6cb:includes/viperstring.py
62cc01c2bb770ca3:includes/vrandom.py
87274c2b0190fb33:includes/vthreading.py
0035c95a18d4f8e8:includes/w32/fileio.py
7e529fe7a078cfef:includes/w32/win32base.py
bbdf3bbd4c3bc28c:includes/w32/win32console.py
f6b51804a0ba8ff0:includes/w32/win32file.py
72e2d5ccb7cedcf1:includes/w32/win32memory.py
067c78e9f121dce3:includes/w32/win32process.py
06f53cc594b4ac6c:includes/w32/win32sync.py
6446627d4f07a1b5:includes/w32/winsock2.py
1c46d554b3a3f9f3:includes/zlib/pyzlib.py
8ebed83a7817fa0c:includes/zlib/zchecksum.py
213348433fb01cc6:includes/zlib/zdef.py
90921d009fdd674c:includes/zlib/zdeflate.py
d541ade6afb689a5:includes/zlib/zhuff.py
451745df21e598af:includes/zlib/zinflate.py
d63d2c2a2bd9bd2a:includes/zlib/__init__.py
e3e7b6de8d7d8b03:includes/_dict.py
f2ecbf8ced20575c:includes/_list.py
80241c7d6f357bd1:App/asm_test.py
17c0dfbcebfa3a0e:App/attr_test.py
0eccc2393466d940:App/augassign_test.py
9d8e1c9631c28b1b:App/closure_test.py
b7bbe6a1c1e75ad8:App/deco_test.py
6f5e876273093314:App/deref_min_test.py
eb252050d92f8fb9:App/deref_test.py
b8cbe044a10adcca:App/eq_test.py
e74870eba3e6d774:App/float_test.py
969c589035910845:App/flow_test.py
1eb1c9fc7e85d9f8:App/for_test.py
3c2fbc9e35ad3bf2:App/func_test.py
a9df037d9178888f:App/func_vtable_test.py
9d4b01572930a369:App/generic_test.py
97043f0d52da437f:App/inherit_test.py
c39f3e540adb7b4e:App/llvmir_test.py
b7eeff93aa63e70f:App/namespace_defs.py
ef45adce81bf5b2d:App/namespace_test.py
9d798d964b9d3411:App/new_test.py
1b9ab264a942c56b:App/oop_test.py
a7cf0ce4066332ae:App/opovl_test.py
ed1c124f3cb787c9:App/ptr_only_test.py
07f7da85af876124:App/ptr_test.py
b078e9c9c74a2a0c:App/simple_test.py
74ca31446cac2107:App/string_min_test.py
e0009679269c6b63:App/string_test.py
33a854a5c4f67d74:App/struct_test.py
d7662500f1c2c0ff:App/testcheck_test.py
c38a35636ba0f067:App/test_main.py
55cbbb5dec4fef2c:App/type_bit_test.py
cc3ad7f3bc880326:App/virtual_dispatch_test.py
2769dee537308b00:App/vtable_test.py
79b337e5ea8951e2:includes/_fakeduck.py
668790e6c9efdbae:includes/_list.py
b62eded2baf30423:includes/_variant.py
5b2e220c5bae60c9:includes/_withcontent.py

View File

@@ -1 +0,0 @@
t c stdint w32.win32base w32.win32file memhub stdlib

View File

@@ -1 +0,0 @@
stdio t c

View File

@@ -1 +0,0 @@
stdio stdlib t c testcheck stdio stdlib t c testcheck

View File

@@ -1 +0,0 @@
stdio t c stdio t c

View File

@@ -1 +0,0 @@
stdint t c stdint t c

View File

@@ -1 +0,0 @@
t c stdint string memhub stdio hashtable

View File

@@ -1 +0,0 @@
t c stdint platmacro memhub string w32.win32base w32.win32file posix

View File

@@ -1 +0,0 @@
t c stdint w32.win32base w32.win32sync

Some files were not shown because too many files have changed in this diff Show More