编译步骤/总体过程/编译过程工具。豫
yuyan · 101 行 · 5128 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
寻观「编译器核心」之「编译数据」之「编译配置」之「阶段环境」之书。
寻观「标准库」之书。
寻观「构建基础」之「包上下文」之书。
。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「编译器核心」之「编译辅助工具」之「命令行」之「版本管理」之书。
寻观「编译器核心」之「编译数据」之「编译配置」之「全局配置」之书。
「当前路径」者「文件系统」之「获取当前路径」于「元」也。
「:需要跳过不合法的标识符:」
「标识符转义」乃化「字符串」而「字符串」也。
「标识符转义」者会「串」而
「串组合并」于((「打表态射」授以「字符串」授以「字符串」)
于(「获取字符」于「串」)
于(会「字符」而
鉴「字符」而
有『-』则『_』
或有『。』则『_』
或有『.』则『_』
或有『/』则『_』
或有『*』则『_』
或有『%』则『_』
或有『+』则『_』
或有「其他字符」则「其他字符」
)
)
也。
「当前编译器可执行文件标识」者((「标识符转义」于(「命令行参数」之「获取程序名」于「元」))附『+』附(「整数表示」
于(「文件系统」之「获得文件修改时间」于(「命令行参数」之「获取程序名」于「元」)))
)也。
「编译器缓存目录名称」者『.yybuild/』附「当前编译器可执行文件标识」附『.nosync』也。
「去除路径结尾豫言拓展名」乃化「字符串」而「字符串」也。
「去除路径结尾豫言拓展名」者会「输入」而
若(「串结尾是它吗」于『。豫』于「输入」)则(「去除串结尾」于『。豫』于「输入」)
否则
(「发生事故」于『路径结尾不认识:』附「输入」)
也。
「:输入文件的绝对路径,输出应当输出的文件路径prefix:」
「获取输出文件路径」乃
化「字符串」 「:绝对输入路径:」而
「字符串」
也。
「获取输出文件路径」者会「输入」而
「:文言:独立后端诸文件皆从所授前缀。汉语:LLVM、位码和对象文件统一使用独立阶段的输出前缀,避免回读默认缓存路径。:」
若「且」于(「读引用」于「独立阶段模式」)于(「串相等」于「输入」于(「读引用」于「独立阶段源文件」))
则
「读引用」于「独立阶段输出前缀」
否则
(
虑「去除结尾后」者
「去除路径结尾豫言拓展名」于「输入」
而
虑「去除开头后」者
若(「串开头是它吗」于「当前路径」于「去除结尾后」)
则
(「去除串开头」于「当前路径」于「去除结尾后」)
否则
「去除结尾后」
而
虑「当前缓存目录名称」者
「编译器缓存目录名称」附
(若「已启用包上下文」于「元」则『/包上下文/』附(「读引用」授以「字符串」于「包上下文缓存号」)否则『』)附
(若「读引用」于「底层模式」则『.lowlevel-anf-v2』否则『.wasmgc-anf-v2』)
而
(「路径合并」于(「路径合并」于「当前路径」于「当前缓存目录名称」)于「去除开头后」)
)
也。
「获取输出代码文件路径」乃化「字符串」而「字符串」也。
「获取输出代码文件路径」者会「输入」而
(「获取输出文件路径」于「输入」)附『.ll』
也。
「当前路径转模块全局名」乃化「字符串」而「字符串」也。
「当前路径转模块全局名」者会「路径」而
『豫言模块_』附(「标识符转义」于「路径」)
也。
「文件定义转全局名」乃化「字符串」而化「字符串」而化「整数」而「字符串」也。
「文件定义转全局名」者会「路径」而会「定义名」而会「序数」而
(「当前路径转模块全局名」于「路径」)附『_定义_』附(「标识符转义」于「定义名」)附『_』附(「整数表示」于「序数」)
也。
「文件定义转函数全局名」乃化「字符串」而化「字符串」而化「整数」而「字符串」也。
「文件定义转函数全局名」者会「路径」而会「定义名」而会「序数」而
(「当前路径转模块全局名」于「路径」)附『_函数_』附(「标识符转义」于「定义名」)附『_』附(「整数表示」于「序数」)
也。
「当前路径转全局函数名」乃化「字符串」而「字符串」也。
「当前路径转全局函数名」者会「路径」而
(「当前路径转模块全局名」于「路径」)附『_计算函数』
也。