Files
TransPyC/.transpyc_cache/1446e90e8296beae.doc.json
2026-07-18 19:25:40 +08:00

1 line
5.8 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"set_module_sha1_map": "设置全局模块 SHA1 映射", "_lookup_module_sha1": "查找模块名对应的 SHA1找不到返回 None", "_lookup_module_sha1_suffix": "后缀匹配查找模块 SHA1如 mod_suffix=\"__types\" 匹配 \"llvmlite.__types\"\n\n 用于 from .X import Y 的相对导入impf.module 是 \".X\"(带前导点),\n 去掉前导点后为 \"X\"SHA1 映射表中键是 \"pkg.X\",需要后缀匹配。\n ", "register_cexport_func": "注册 CExport 函数到全局表sha1+func_name 二元组)", "is_cexport_func": "检查 (sha1, func_name) 是否是 CExport 函数", "_lookup_mod_sha1": "从 from_imports 查找类所属模块的 SHA1返回 None=未找到", "find_func_in_module": "在模块的函数链表中按名称查找函数\n\n 查找策略:\n 1. 精确匹配(如 \"strlen\" 匹配 @strlen有 t.CExport 的函数)\n 2. 后缀匹配(如 \"atoi\" 匹配 @\"83210a72e829a086.atoi\",无 t.CExport 的函数)\n\n 使用 llvmlite.function_get_name/next 访问器绕过 stub 类型限制\n stub 类型字段不足且字段类型可能错误,直接字段访问会被静默跳过)。\n ", "_infer_external_func_ret_ty": "根据函数名推断外部 includes 函数的返回类型", "_emit_llvm_memcpy_intrinsic": "将 memcpy 调用映射到 @llvm.memcpy 内联函数\n\n 直接接收三个 Value 参数,避免通过 Next 链表遍历(共享 alloca 对象的\n Next 字段可能被其他操作污染,导致链表断裂)。\n ", "translate_c_deref": "c.Deref(ptr) → load i8 from ptr", "translate_c_derefas": "c.DerefAs(ptr, val) → store val to ptrbitcast 后 store", "translate_c_addr": "c.Addr(var) → 返回变量的 alloca 指针(不 load", "translate_c_load": "c.Load(a, b) → *a = *b加载 b 的值,存储到 a", "AsmOperand": "内联汇编操作数条目", "_asm_append_cstr": "将 C 字符串 src 追加到 dst 末尾", "_asm_escape_for_ir": "转义汇编文本用于 LLVM IR 字符串字面量", "_resolve_register": "将 t.ASM_DESCR.XXX 的属性名映射到约束字符串值", "_resolve_asm_descr": "递归解析约束表达式,返回约束字符串", "_asm_get_operand": "获取操作数数组中第 idx 个元素的指针", "_asm_is_c_call": "检查 Call 节点是否是 c.XXX 调用,返回属性名或 None", "_asm_add_operand": "添加操作数到数组,返回新计数(失败返回原计数)", "translate_c_asm": "翻译 c.Asm 内联汇编,返回结果 Value无输出时返回 None", "_llvmir_get_op": "获取第 i 个操作数槽位", "_llvmir_find_op_marker": "查找 %__OP 标记,返回标记开始位置或 None", "_llvmir_parse_op_num": "从 %__OPN__ 标记中解析编号 N", "_llvmir_match_icmp_pred": "将 icmp 预测字符串转为常量", "_llvmir_match_fcmp_pred": "将 fcmp 预测字符串转为常量", "_llvmir_extract_two_ops": "从模板中提取前两个 %__OP 标记的编号\n\n 结果写入 out_nums[0] 和 out_nums[1]\n 返回 1 成功, 0 失败\n ", "_llvmir_resolve_op": "根据操作数编号解析实际 Value", "_llvmir_store_outputs": "将结果存储到所有输出变量", "translate_c_llvmir": "翻译 c.LLVMIR 内联 LLVM IR返回结果 Value", "_apply_struct_defaults": "应用结构体字段的默认值", "_translate_struct_ctor": "结构体构造函数:按字段顺序 store 参数值,返回结构体值\n\n OOP 结构体alloca → call __before_init__(ptr) → call __init__(ptr, args) 或 store 参数 → load\n 普通结构体alloca → zero + defaults → store 参数 → load\n ", "_do_virtual_call": "通过虚表间接调用虚方法,返回 call 结果void 方法返回 None", "_call_method_on_ptr": "在结构体指针上调用方法,返回 call 结果void 方法返回 None", "_infer_method_ret_ty": "根据方法名推断返回类型stub 未注入时的回退方案)", "_translate_method_call": "翻译方法调用,返回 call 结果 Value", "_kwarg_name_matches": "检查关键字参数名 kw_arg 是否匹配参数名 param_name跳过 % 前缀)", "_translate_struct_ctor_kw": "结构体构造函数(关键字参数版本)", "_translate_call_with_kwargs": "带关键字参数的函数调用,按参数顺序构建调用链表\n\n 使用 llvmlite 访问器函数绕过 stub 类型限制:\n found_func.Params/RetTy/Name 和 cur_param.Name/Ty/Next 在 stub\n 类型中字段不足,直接访问会被 TransPyC 静默跳过。\n ", "_translate_t_type_cast": "类型转换:根据参数类型和目标类型选择转换方式", "_extract_type_args_from_slice": "从 Subscript.slice 提取类型实参名列表\n\n list[int] -> [\"int\"]\n dict[str, int] -> [\"str\", \"int\"]\n list[AST | t.CPtr] -> [\"AST|t.CPtr\"]\n ", "translate_call": "翻译函数调用,返回 call 结果 Value", "translate_closure_call": "通过闭包指针间接调用", "translate_printf_call": "翻译 printf 调用(特殊处理格式字符串)", "FuncEntry": "函数表条目", "init_func_table": "分配并清零函数表数组", "find_func_in_table": "在函数表中按名称查找,返回 Function 指针或 None", "add_func_to_table": "添加函数到函数表,返回 0 成功", "_init_global_func_table": "初始化全局函数表(用 stdlib.malloc 分配,生命周期=整个程序)", "_register_global_func": "注册函数到全局表(已存在则跳过),返回 0 成功\n\n 直接操作全局表,不调用 add_func_to_table避免递归。\n ", "find_func_global": "在全局函数表中按名称查找,返回 Function 指针或 None", "ExprCallHandle": "函数调用处理器:继承 Mixin 获得 Trans 回指针", "ExprCallHandle.HandleCall": "翻译函数调用,从 self.Trans 获取共享状态", "ExprCallHandle.HandlePrintfCall": "翻译 printf 调用,从 self.Trans 获取共享状态"}