修正了 TPC 的一些错误,包括 Test 维护后 TPV 无法重新编译或重编译后越界的部分问题
This commit is contained in:
@@ -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
|
||||
|
||||
# 原地去除 \r(CRLF → 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
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
# 提取 SHA1(16 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
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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"}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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}}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -1 +0,0 @@
|
||||
{}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint stdio w32.win32base w32.win32file
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint string viperlib memhub linkedlist llvmlite.__types
|
||||
@@ -1 +0,0 @@
|
||||
t stdint w32.win32base
|
||||
@@ -1 +0,0 @@
|
||||
t stdint w32.win32base
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string ast.tokens
|
||||
@@ -1 +0,0 @@
|
||||
string t c
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint string memhub platmacro
|
||||
@@ -1 +0,0 @@
|
||||
t c stdio w32.win32console t c stdio w32.win32console
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint stdio string t c stdint stdio string
|
||||
@@ -1 +0,0 @@
|
||||
string t c
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
stdint zlib.zdeflate zdeflate zlib.zinflate zinflate zlib.zchecksum zchecksum zlib.zdef zdef zlib.zhuff zhuff stdlib string memhub t c
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string stdio t c stdint memhub string stdio
|
||||
@@ -1 +0,0 @@
|
||||
stdint stddef string stdlib memhub t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint string stdio viperlib memhub linkedlist llvmlite.__types llvmlite.__function
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string t c stdint memhub string
|
||||
@@ -1 +0,0 @@
|
||||
t c
|
||||
@@ -1 +0,0 @@
|
||||
t c t c
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint platmacro memhub string w32.win32base w32.win32file w32.win32process w32.win32sync posix
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -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
|
||||
@@ -1 +0,0 @@
|
||||
t c
|
||||
@@ -1 +0,0 @@
|
||||
string
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string ast.base
|
||||
@@ -1 +0,0 @@
|
||||
stdint zlib.zchecksum zchecksum zlib.zdef zdef zlib.zhuff zhuff string memhub t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint viperlib string memhub linkedlist
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint string viperlib memhub linkedlist llvmlite.__types llvmlite.__values llvmlite.__function
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string ast.base
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string ast.base
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint w32.win32base w32.win32sync
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string viperio json.__parser json.__writer t c stdint memhub string viperio json.__parser json.__writer
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint w32.win32process stdlib stdio string
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string viperlib ast.tokens
|
||||
@@ -1 +0,0 @@
|
||||
t c vipermath
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint w32.win32base
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string ast.base
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c t c
|
||||
@@ -1 +0,0 @@
|
||||
t c
|
||||
@@ -1 +0,0 @@
|
||||
t
|
||||
@@ -1 +0,0 @@
|
||||
t stdint w32.win32base
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c string stdio t c string
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint platmacro memhub os.path os._win32 os._posix
|
||||
@@ -1 +0,0 @@
|
||||
t memhub string
|
||||
@@ -1 +0,0 @@
|
||||
t stdint t stdint
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint w32.win32base w32.win32process w32.win32sync lock event condition rwlock
|
||||
@@ -1 +0,0 @@
|
||||
stdint t c
|
||||
@@ -1 +0,0 @@
|
||||
stdint zlib.zchecksum zchecksum zlib.zhuff zhuff zlib.zdef zdef string memhub t c
|
||||
@@ -1 +0,0 @@
|
||||
stdint t stdint t
|
||||
@@ -1 +0,0 @@
|
||||
t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint memhub string viperlib llvmlite.__types llvmlite.__values llvmlite.__function llvmlite.__module llvmlite.__builder llvmlite.__verify
|
||||
@@ -1 +0,0 @@
|
||||
hashlib.__md5 hashlib.__sha1 hashlib.__sha256 hashlib.__sha512
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c
|
||||
@@ -1 +0,0 @@
|
||||
stdio stdlib t c testcheck memhub _list stdio stdlib t c testcheck memhub _list
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint w32.win32base w32.win32sync
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -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
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint w32.win32base w32.win32file memhub stdlib
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
stdio stdlib t c testcheck stdio stdlib t c testcheck
|
||||
@@ -1 +0,0 @@
|
||||
stdio t c stdio t c
|
||||
@@ -1 +0,0 @@
|
||||
stdint t c stdint t c
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint string memhub stdio hashtable
|
||||
@@ -1 +0,0 @@
|
||||
t c stdint platmacro memhub string w32.win32base w32.win32file posix
|
||||
@@ -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
Reference in New Issue
Block a user