入口。豫
yuyan · 165 行 · 9240 字节 · 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「路径」之书。
「:文言:公约包名为客所依,适配源仅于构建时投之。汉语:先核对接口与实现,再用接口身份生成可编译的宿主绑定包。:」
「参数」者「命令行参数」之「获取参数」于「元」也。
「用法文」者『用法:yy豫言操作系统绑定 规范包描述 适配包描述 实现模块… 输出目录』也。
「:文言:末参为输出目录;首二为规范包与适配包;其间为实现模块,至少其一。汉语:最后一个参数是输出目录,前两个是规范包与适配包描述,中间是一个或多个实现模块;只给一个实现模块时与旧用法完全相同。:」
「末参与前参」者鉴(「反转」授以「字符串」于「参数」)而
有(「缀」于「末」于「余」)则
「末」与(「反转」授以「字符串」于「余」)
或有「其他」则
「发生事故」授以(「字符串」合(「列」于「字符串」))于「用法文」
也。
「三部」者鉴(「末参与前参」中「一」)而
有(「缀」于「甲」于(「缀」于「乙」于(「缀」于「丙」于「余」)))则
「甲」与「乙」与(「缀」于「丙」于「余」)
或有「其他」则
「发生事故」授以(「字符串」合「字符串」合(「列」于「字符串」))
于「用法文」
也。
「规范包」者「三部」中「零」也。
「适配包」者「三部」中「一」也。
「实现模块们」者「三部」中「二」也。
「输出目录」者「末参与前参」中「零」也。
「去包后缀」乃化「字符串」而「字符串」也。
「去包后缀」者会「路径」而
虑「名」者「获取文件名」于「路径」而
若「非」于(「串结尾是它吗」于『。包。豫』于「名」)则
「发生事故」授以「字符串」于『需要。包。豫文件』
否则
「获取子字符串」于「零」于(「减」于(「串长度」于「名」)于「四」)于「名」
也。
「规范名」者「去包后缀」于「规范包」也。
「适配名」者「去包后缀」于「适配包」也。
「:文言:实现模块须为。豫之文,去其后缀得模块名。汉语:实现模块必须是 。豫 文件;去掉后缀即接口的逻辑模块名。:」
「实现模块名」乃化「字符串」而「字符串」也。
「实现模块名」者会「模块」而
虑「名」者「获取文件名」于「模块」而
若「非」于(「串结尾是它吗」于『。豫』于「名」)则
「发生事故」授以「字符串」于(『实现模块须为。豫文件:』附「模块」)
否则
「去除串结尾」于『。豫』于「名」
也。
「实现模块名们」者「态射」授以「字符串」授以「字符串」
于「实现模块们」
于「实现模块名」
也。
「须运行」乃化「字符串」而化(「列」于「字符串」)而「有」也。
「须运行」者会「程序」而会「实参」而
若「子进程」之「成功运行」于「程序」于「实参」则
「元」
否则
「发生事故」于(『命令运行失败:』附「程序」)
也。
「:文言:工具先取 .wasm 之版,无则取旧名。汉语:外部工具先用构建根里同名加 .wasm 的版本(在 Node 上运行的 WasmGC 程序),没有时用不带后缀的旧名。:」
「工具路径」乃化「字符串」而「字符串」也。
「工具路径」者会「名」而
若「文件系统」之「路径存在」于(『./』附「名」附『.wasm』)则
『./』附「名」附『.wasm』
否则
『./』附「名」
也。
「检查器」者「工具路径」于『yy豫言操作系统接口检查』也。
「规范目录」者「获取文件夹名」于「规范包」也。
「:文言:规范目录中宿主所供之接口文,以其名排之。汉语:规范目录里全部以「。接口。豫」结尾的接口文件名。:」
「接口文件们」者
「滤」授以「字符串」
于(会「名」而「串结尾是它吗」于『。接口。豫』于「名」)
于(「文件系统」之「读文件夹」于「规范目录」)
也。
「:文言:单模块者全包而核,同旧;多模块者逐模块以单文件之式核之,无函数之模块惟验其存,且诸接口文皆须有实现。汉语:只有一个实现模块时按旧方式整包核对;有多个时(如基础接口的诊断、时钟、错误三模块),每个实现模块须对应规范目录里同名的「。接口。豫」,含宿主函数的逐文件核对,只含类型的模块不核函数;规范目录里的每个接口文件也都须有实现模块。:」
「核对多模块」乃化「字符串」而「有」也。
「核对多模块」者会「模块」而
虑「接口文」者(「实现模块名」于「模块」)附『。接口。豫』而
若「非」于(「存在吗」授以「字符串」于(会「名」而「串相等」于「名」于「接口文」)于「接口文件们」)则
「发生事故」于(『实现模块没有对应的接口模块:』附「模块」)
否则
虑「接口路径」者「路径合并」于「规范目录」于「接口文」而
若「是子字符串吗」于『」乃』于(「文件系统」之「读文件」于「接口路径」)则
「须运行」于「检查器」于(「列」【「接口路径」,「规范包」,「模块」,『宿主』】)
否则
「元」
也。
「核对覆盖」乃化「字符串」而「有」也。
「核对覆盖」者会「接口文」而
若「存在吗」授以「字符串」
于(会「名」而「串相等」于(「名」附『。接口。豫』)于「接口文」)
于「实现模块名们」
则
「元」
否则
「发生事故」于(『接口模块缺少实现:』附「接口文」)
也。
鉴「实现模块们」而
有(「列」【「唯一」】)则
「须运行」于「检查器」于(「列」【「规范包」,「唯一」,『宿主』】)
或有「其他」则(
虑「无」者
「态射」授以「字符串」授以「有」于「实现模块们」于「核对多模块」
而
虑「无」者
「态射」授以「字符串」授以「有」于「接口文件们」于「核对覆盖」
而
「元」
)。
「须运行」于『mkdir』于(「列」【『-p』,「输出目录」】)。
「:文言:适配包之私依可异于公约,所见身份仍从公约。汉语:实现依赖保留在生成包内,公开包名采用纯规范身份。:」
「适配文」者「文件系统」之「读文件」于「适配包」也。
若「非」于(「是子字符串吗」于「适配名」于「适配文」)则「发生事故」于『适配包名未出现于包描述』否则「元」。
「绑定文」者「串查找替换」于「适配文」于「适配名」于「规范名」也。
「文件系统」之「写文件」于(「路径合并」于「输出目录」于(「规范名」附『。包。豫』))于「绑定文」。
「抄实现模块」乃化「字符串」而「有」也。
「抄实现模块」者会「模块」而
「文件系统」之「写文件」
于(「路径合并」于「输出目录」于(「获取文件名」于「模块」))
于(「文件系统」之「读文件」于「模块」)
也。
「态射」授以「字符串」授以「有」于「实现模块们」于「抄实现模块」。
「适配目录」者「获取文件夹名」于「适配包」也。
「宿主提供路径」者「路径合并」于「适配目录」于『宿主提供.json』也。
若「文件系统」之「路径存在」于「宿主提供路径」则
「元」
否则
「发生事故」于(『适配缺少独立宿主支持清单:』附「宿主提供路径」)。
「文件系统」之「写文件」于(「路径合并」于「输出目录」于『宿主清单来源.txt』)于「宿主提供路径」。
「文件系统」之「写文件」
于(「路径合并」于「输出目录」于『说明.汉语.md』)
于(「文件系统」之「读文件」于(「路径合并」于「适配目录」于『说明.汉语.md』))。
「文件系统」之「写文件」
于(「路径合并」于「输出目录」于『说明.文言.md』)
于(「文件系统」之「读文件」于(「路径合并」于「适配目录」于『说明.文言.md』))。
「须运行」
于「检查器」
于(「列」【『--清单』,「规范包」,(「路径合并」于「输出目录」于『规范清单.json』)】)。
「须运行」
于「检查器」
于(「列」【『--核对清单』,「规范包」,(「路径合并」于「输出目录」于『规范清单.json』)】)。
「打印行」于(『已绑定接口:』附「规范名」附『 ← 』附「适配名」)。