豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 758 行 · 44462 字节 · UTF-8
§
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「多态列工具」之书。
寻观「双宿主构建」之「文本工具」之书。
寻观「双宿主构建」之「包描述」之书。
寻观「双宿主构建」之「依赖解析」之书。
寻观「双宿主构建」之「上下文生成」之书。
寻观「双宿主构建」之「接口适配」之书。
寻观「双宿主构建」之「自动参数」之书。
寻观「双宿主构建」之「宿主构建」之书。
寻观「双宿主构建」之「节点打包」之书。

「:文言:自动模式之本体:读应用之包描述,循依赖而尽取其闭包,自绑诸接口,书包上下文,而后构建、装载。凡磁盘与子进程之事皆在此篇;判断之理在他篇,皆纯函数。汉语:自动模式的执行部分。流程:核对构建根与工具、规范化各路径、定位应用包描述(可把一致性验证目录里的 .txt 描述复制成临时应用目录)、扫描包根并传递解析依赖、逐个绑定操作系统接口、生成包上下文、构建应用(或只做类型检查)、装载接口清单。所有错误都是带原因与命令行的中文事故。:」

「最大扫描深度」者「一六」也。

「:文言:命令之全文,报错用。汉语:把程序与参数拼成一行命令文字,用于错误信息。:」
「命令行文字」乃化「字符串」而化(「列」于「字符串」)而「字符串」也。
「命令行文字」者会「程序」而会「参数们」而
  「间合」于『 』于(「缀」于「程序」于「参数们」)
也。

「:文言:继承三流而行,非零则告其码与令。汉语:同步运行外部命令,子进程直接使用当前进程的标准输入输出;退出码非零时抛出带命令行与退出码的中文事故。:」
「须成功运行」乃化「字符串」而化「字符串」而化(「列」于「字符串」)而「有」也。
「须成功运行」者会「说明」而会「程序」而会「参数们」而
  虑「码」者「子进程」之「运行并继承标准流」于「程序」于「参数们」而
  若「等于」于「码」于「零」则
    「元」
  否则
    「发生事故」于(「说明」附『失败(退出码 』附(「整数表示」于「码」)附『)。命令:』附(「命令行文字」
      于「程序」于「参数们」))
也。

「:文言:目录存在乎;不存在则不问其为目录(免原生中止)。汉语:判断路径存在并且是目录;先判存在,避免对不存在的路径调用会中止的原生判断。:」
「目录存在吗」乃化「字符串」而「爻」也。
「目录存在吗」者会「位置」而
  若「文件系统」之「路径存在」于「位置」则
    「文件系统」之「路径是文件夹」于「位置」
  否则
    「阴」
也。

「普通文件存在吗」乃化「字符串」而「爻」也。
「普通文件存在吗」者会「位置」而
  若「文件系统」之「路径存在」于「位置」则
    「文件系统」之「路径是普通文件」于「位置」
  否则
    「阴」
也。

「:文言:路径之相对者,附于根。汉语:把相对路径接在构建根后面,绝对路径原样返回。:」
「绝对路径」乃化「字符串」而化「字符串」而「字符串」也。
「绝对路径」者会「根」而会「位置」而
  若「路径」之「路径名是绝对路径」于「位置」则
    「位置」
  否则
    「路径」之「路径合并」于「根」于「位置」
也。

「:文言:入其目录而问所在,则得真径,去符号链接与点点;毕而返原处。汉语:规范化目录路径:临时切换进程工作目录再读取当前目录(得到已解析符号链接的物理路径),然后切回原目录。包上下文要求规范的绝对路径,且同一份源码只能以一个路径出现(编译缓存按路径计)。:」
「规范目录」乃化「字符串」而「字符串」也。
「规范目录」者会「目录」而
  虑「原处」者「文件系统」之「获取当前路径」于「元」而
  虑「切」者「文件系统」之「切换当前路径」于「目录」而
  若「不等于」于(「切」中「零」)于「零」则
    「发生事故」于(『无法进入目录 』附「目录」附『:』附(「切」中「一」))
  否则
    (虑「实径」者「文件系统」之「获取当前路径」于「元」而虑「无」者「文件系统」之「切换当前路径」于「原处」而「实径」)
也。

「:文言:文件之规范径,规范其目录而接其名。汉语:规范化文件路径:规范其所在目录再接上文件名(文件本身不应是符号链接)。:」
「规范文件」乃化「字符串」而「字符串」也。
「规范文件」者会「文件」而
  「路径」之「路径合并」
    于(「规范目录」于(「路径」之「获取文件夹名」于「文件」))
    于(「路径」之「获取文件名」于「文件」)
也。

「:文言:内置基础库之节点:名、构建根下之规范包文件、所依。汉语:内置基础库的包节点:包名、构建根下的规范包描述路径与依赖名。:」
「基础库节点」乃化「字符串」而化「字符串」而「包节点」也。
「基础库节点」者会「根」而会「名」而
  「名」
    与(「规范文件」于(「路径」之「路径合并」于「根」于(『库/』附「名」附『/』附「名」附『。包。豫』)))
      与(「内置基础库依赖们」于「名」)
也。

「:文言:核对当前目录确为构建根。汉语:构建根必须含 库/标准库 与 库/癸象工具(内置基础库之一)。:」
「核验构建根」乃化「字符串」而「有」也。
「核验构建根」者会「根」而
  若「且」
    于(「普通文件存在吗」于(「路径」之「路径合并」于「根」于『库/标准库/标准库。包。豫』))
    于(「普通文件存在吗」于(「路径」之「路径合并」于「根」于『库/癸象工具/癸象工具。包。豫』))
  则
    「元」
  否则
    「发生事故」于(『当前目录不是构建根:缺少 库/标准库/标准库。包。豫 或 库/癸象工具/癸象工具。包。豫。请在含 库/、豫言操作系统接口/、豫言操作系统/适配/ 以及 yy3_bs、yy豫言操作系统绑定、yy豫言操作系统装载包 的目录运行。当前目录:』
      附「根」)
也。

「:文言:工具须可行。汉语:检查外部工具存在且可执行,缺少时提示先构建。:」
「须有工具」乃化「字符串」而化「字符串」而「有」也。
「须有工具」者会「位置」而会「用途」而
  「:文言:.wasm 之具由 Node 宿主行之,存为常文即可,不问可执行位。汉语:以 .wasm 结尾的工具(编译器与各 WasmGC 工具)由 Node 宿主运行,只要是普通文件即可,不要求可执行位。:」
  若「或者」
    于(「文件系统」之「路径可执行」于「位置」)
    于(「且」于(「串结尾是它吗」于『.wasm』于「位置」)于(「普通文件存在吗」于「位置」))
  则
    「元」
  否则
    「发生事故」于(『缺少可执行文件 』附「位置」附『(』附「用途」附『)。请在构建根目录运行,并先构建该工具。』)
也。

「须有文件」乃化「字符串」而化「字符串」而「有」也。
「须有文件」者会「位置」而会「用途」而
  若「普通文件存在吗」于「位置」则
    「元」
  否则
    「发生事故」于(『缺少文件 』附「位置」附『(』附「用途」附『)』)
也。

「:文言:目录必存。汉语:把用户给出的目录解析成规范绝对路径;不存在或不是目录时抛出中文事故,「用途」说明它是什么目录。:」
「解析已有目录」乃化「字符串」而化「字符串」而化「字符串」而「字符串」也。
「解析已有目录」者会「根」而会「位置」而会「用途」而
  虑「绝对」者「绝对路径」于「根」于「位置」而
  若「目录存在吗」于「绝对」则
    「规范目录」于「绝对」
  否则
    「发生事故」于(「用途」附『不存在或不是目录:』附「位置」)
也。

「:文言:应用目录之包描述:恰有一个 。包。豫;无之,则恰有一个 。包。豫.txt。汉语:在应用目录里定位包描述文件,返回(文件名,是否 .txt)。规则:恰有一个「名。包。豫」就用它;没有时恰有一个「名。包。豫.txt」(语言仓一致性验证目录用它避开全仓库包发现);否则抛出列出实际文件的中文事故。:」
「定位应用包描述」乃化「字符串」而(「字符串」合「爻」)也。
「定位应用包描述」者会「应用目录」而
  虑「文件们」者
    「排序字符串」于(「滤」授以「字符串」于「可扫描条目吗」于(「文件系统」之「读文件夹」于「应用目录」))而
    虑「包们」者
      「滤」授以「字符串」
      于(会「文」而「串结尾是它吗」于『。包。豫』于「文」)于「文件们」而
      虑「文本们」者
        「滤」授以「字符串」
        于(会「文」而「串结尾是它吗」于『。包。豫.txt』于「文」)
        于「文件们」而
      鉴「包们」而
        有(「缀」于「唯一」于「罄」)则「唯一」与「阴」
        或有(「缀」于「首」于(「缀」于「次」于「余」))则
          「发生事故」于(『应用目录 』附「应用目录」附『 里有多个包描述(。包。豫):』附(「顿号连接」于「包们」)附
            『。应用目录必须恰有一个。』)
        或有「罄」则(
          鉴「文本们」而
            有(「缀」于「唯一」于「罄」)则「唯一」与「阳」
            或有「罄」则「发生事故」于(『应用目录 』附「应用目录」附
              『 里没有包描述:需要恰有一个「名。包。豫」(或一致性验证目录用的「名。包。豫.txt」)。』)
            或有「其他」则
              「发生事故」于(『应用目录 』附「应用目录」附『 里有多个 。包。豫.txt 包描述:』附(「顿号连接」
                于「文本们」)附『。应用目录必须恰有一个。』)
        )
也。

「:文言:一致性验证之 .txt 描述,复制应用目录于构建根内之临时处,而复其本名。汉语:把应用目录复制到临时目录(保留符号链接),并把 名。包。豫.txt 改回 名。包。豫,返回临时应用目录。:」
「复制文本描述应用」乃化「字符串」而化「字符串」而化「字符串」而「字符串」也。
「复制文本描述应用」者会「临时根」而会「应用目录」而会「文本名」而
  虑「临时应用」者「路径」之「路径合并」于「临时根」于『应用』而
  虑「无」者
    「子进程」之「成功运行」于『cp』于(「列」【『-R』,「应用目录」,「临时应用」】)而
    虑「无」者
      「子进程」之「成功运行」
        于『mv』
        于(「列」【
          (「路径」之「路径合并」于「临时应用」于「文本名」),
          (「路径」之「路径合并」于「临时应用」于(「去除串结尾」于『.txt』于「文本名」))
        】)
    而
    「临时应用」
也。

「:文言:包根之扫,深有限,隐目录与 node_modules 不入;断链不问。汉语:递归扫描一个规范绝对目录,收集所有「名。包。豫」,返回(包名,规范文件路径)列表;深度上限防止符号链接成环,隐藏目录与 node_modules 跳过,指向不存在处的断链忽略。:」
「扫描目录」乃化「字符串」而化「整数」而(「列」于「已找包」)也。
「扫描目录」者会「目录」而会「深度」而
  若「大于」于「深度」于「最大扫描深度」则
    「罄」授以「已找包」
  否则
    虑「条目们」者
      「排序字符串」于(「滤」授以「字符串」于「可扫描条目吗」于(「文件系统」之「读文件夹」于「目录」))
    而
    「串联」授以「已找包」于(「态射」授以「字符串」授以(「列」于「已找包」)
    于「条目们」
    于(会「条目」
      而
  虑「全路径」者「路径」之「路径合并」于「目录」于「条目」而
  若「非」于(「文件系统」之「路径存在」于「全路径」)则
    「罄」授以「已找包」
  否则若「文件系统」之「路径是文件夹」于「全路径」则
    「扫描目录」于「全路径」于(「加」于「深度」于「一」)
  否则若「且」于(「文件系统」之「路径是普通文件」于「全路径」)
  于(「串结尾是它吗」于『。包。豫』于「条目」)
  则
    「列」【((「去除串结尾」于『。包。豫』于「条目」)与(「规范文件」于「全路径」))】
  否则
    「罄」授以「已找包」
    ))
也。

「读包描述」乃化「字符串」而「包描述」也。
「读包描述」者会「文件」而
  若「普通文件存在吗」于「文件」则
    「解析包描述」于「文件」于(「文件系统」之「读文件」于「文件」)
  否则
    「发生事故」于(『找不到包描述文件:』附「文件」)
也。

「:文言:受保护之径,若同于输出或在其下,则拒。汉语:如果某个受保护目录等于输出目录或位于输出目录之下,说明删除输出目录会连带删除它,抛出中文事故。:」
「须不含受保护目录」乃
  化「字符串」而
  化「字符串」而
  化(「列」于「字符串」)而
  「有」
也。
「须不含受保护目录」者会「输出」而会「实径」而会「受保护们」而
  鉴「受保护们」而
    有「罄」则「元」
    或有(「缀」于「首」于「余」)则
      若「或者」于(「字符串相等吗」于「首」于「实径」)于(「串开头是它吗」于(「实径」附『/』)于「首」)
      则
        「发生事故」于(『拒绝删除输出目录 』附「实径」附『:它包含或就是受保护的目录 』附「首」附
          『(构建根、应用目录或包根)』)
      否则
        「须不含受保护目录」于「输出」于「实径」于「余」
也。

「:文言:输出目录将被删除,故先验:名不可为空、点、点点;不可含构建根、应用目录或诸包根。汉语:删除输出目录前的安全检查:输出名不能是空、. 或 ..;输出目录必须不存在或是目录;不能位于自动模式的临时区 dist/.自动构建 内;也不能是构建根、应用目录、包根本身或它们的上级目录。返回输出目录的绝对路径。:」
「核验输出目录」乃
  化「字符串」而
  化「字符串」而
  化(「列」于「字符串」)而
  「字符串」
也。
「核验输出目录」者会「根」而会「输出」而会「受保护们」而
  虑「名」者「路径末段」于「输出」而
  虑「无」者
    (
      若「或者」
        于(「字符串相等吗」于「名」于『』)
        于(「或者」于(「字符串相等吗」于「名」于『.』)于(「字符串相等吗」于「名」于『..』))则
          「发生事故」于(『输出目录的最后一段不能是空、. 或 ..:』附「输出」)
      否则
        「元」
    )而
    虑「绝对」者「去尾斜杠」于(「绝对路径」于「根」于「输出」)而
    虑「实径」者
      若「文件系统」之「路径存在」于「绝对」
      则
        (
          若「文件系统」之「路径是文件夹」于「绝对」则
            「规范目录」于「绝对」
          否则
            「发生事故」于(『输出目录已存在且不是目录:』附「输出」)
        )
      否则
        (
          虑「上级」者「路径」之「获取文件夹名」于「绝对」
          而
          若「目录存在吗」于「上级」则
            「路径」之「路径合并」于(「规范目录」于「上级」)于「名」
          否则
            「绝对」
        )
    而
    虑「无」者
      (若「字符串相等吗」于「实径」于『/』则「发生事故」于『输出目录不能是根目录』否则「元」)
    而
    虑「无」者
      (
        若「串开头是它吗」于(「根」附『/dist/.自动构建/』)于(「实径」附『/』)则
          「发生事故」于(『输出目录不能位于自动模式的临时区 dist/.自动构建 内:』附「输出」)
        否则
          「元」
      )
    而
    虑「无」者「须不含受保护目录」于「输出」于「实径」于「受保护们」而
    「实径」
也。

「:文言:先验一接口之目录与适配,得绑定之计。汉语:规划一个接口的绑定:检查接口目录、按宿主模式选适配目录、核对三个必需文件存在。找不到接口或适配时抛出说明已找位置的中文事故;此步不执行任何命令。:」
「规划接口绑定」乃化「字符串」而化「字符串」而「绑定计划」也。
「规划接口绑定」者会「模式」而会「接口名」而
  虑「接口目录」者『豫言操作系统接口/』附「接口名」而
  虑「无」者
    (
      若「目录存在吗」于「接口目录」则
        「元」
      否则
        「发生事故」于(『依赖 豫言操作系统』附「接口名」附『 需要接口目录 』附「接口目录」附『,构建根里没有它』)
    )而
    虑「模块名」者
      「接口模块名」于「接口名」于(「文件系统」之「读文件夹」于「接口目录」)
    而
    虑「候选们」者「适配候选们」于「模式」于「接口名」而
    虑「另一宿主」者
      若「字符串相等吗」于「模式」于『云工』则『浏览器』否则『云工』
    而
    虑「适配名」者
      「选择适配」于「候选们」于(会「名」而「目录存在吗」于(『豫言操作系统/适配/』附「名」))
    而
    虑「选定」者鉴「适配名」而
      有(「可有」于「名」)则「名」
      或有「可无」则
        「发生事故」于(『接口「』附「接口名」附『」没有可用于「』附「模式」附
          『」模式的适配:已找 豫言操作系统/适配/ 下的 』附(「顿号连接」于「候选们」)附(
            若「目录存在吗」于(『豫言操作系统/适配/』附「接口名」附「另一宿主」)则
              (『;存在「』附「接口名」附「另一宿主」附『」适配,但它只用于「』附「另一宿主」附『」模式』)
            否则
              『』
          )附『。』)
    而
    虑「计划」者「规划绑定」于「接口名」于「模块名」于「选定」而
    虑「无」者「须有文件」于(「绑定接口包」于「计划」)于『接口包描述』而
    虑「无」者「须有文件」于(「绑定适配包」于「计划」)于『适配包描述』而
    虑「无」者
      「须有文件」于(「绑定实现模块」于「计划」)于『适配实现模块』
    而
    「计划」
也。

「:文言:先去旧出,后行绑定。汉语:执行一个绑定计划:删除旧的绑定输出目录,再运行 yy豫言操作系统绑定;子进程继承标准输出,失败时抛出带命令行与退出码的中文事故。:」
「执行绑定」乃化「绑定计划」而「有」也。
「执行绑定」者会「计划」而
  虑「输出」者「绑定输出目录」于「计划」而
  虑「无」者
    「子进程」之「成功运行」于『rm』于(「列」【『-rf』,「输出」】)
  而
  「须成功运行」
    于『绑定操作系统接口』
    于(「工具路径」于『yy豫言操作系统绑定』)
    于(「列」【(「绑定接口包」于「计划」),(「绑定适配包」于「计划」),(「绑定实现模块」于「计划」),「输出」】)
也。

「逐个执行绑定」乃化(「列」于「绑定计划」)而「有」也。
「逐个执行绑定」者会「计划们」而
  鉴「计划们」而
    有「罄」则「元」
    或有(「缀」于「首」于「尾」)则
      ((「执行绑定」于「首」);
        (「逐个执行绑定」于「尾」))
也。

「:文言:接口包描述之径。汉语:接口 XXX 的规范包描述路径(相对构建根)。:」
「接口包描述路径」乃化「字符串」而「字符串」也。
「接口包描述路径」者会「接口名」而
  『豫言操作系统接口/』附「接口名」附『/豫言操作系统』附「接口名」附『。包。豫』
也。

「:文言:一接口所依之他接口,取其包描述之依赖而择冠豫言操作系统者。汉语:读取接口包描述的依赖,返回其中的操作系统接口名(如文件、网络依赖基础)。:」
「接口的接口依赖们」乃化「字符串」而(「列」于「字符串」)也。
「接口的接口依赖们」者会「接口名」而
  「滤出可有」授以「字符串」
    于(「态射」授以「字符串」授以(「或可有」于「字符串」)
    于(「包描述依赖们」于(「读包描述」于(「接口包描述路径」于「接口名」)))
    于「接口依赖名」)
也。

「:文言:补全接口之闭包:所需之接口所依之接口亦须绑定。汉语:接口的传递闭包:应用直接或经库依赖的接口,再加上这些接口包自己依赖的接口(递归),已见的不重复。:」
「补全接口闭包」乃
  化(「列」于「字符串」)而
  化(「列」于「字符串」)而
  (「列」于「字符串」)
也。
「补全接口闭包」者会「已有」而会「待」而
  鉴「待」而
    有「罄」则「已有」
    或有(「缀」于「首」于「余」)则
      若「列含串」于「已有」于「首」则
        「补全接口闭包」于「已有」于「余」
      否则
        「补全接口闭包」
          于(「缀」于「首」于「已有」)
          于(「附加」授以「字符串」于(「接口的接口依赖们」于「首」)于「余」)
也。

「:文言:节点之绑定计,惟据宿主支持清单;应用所供者不绑,返无。汉语:节点模式规划一个接口的绑定:接口必须列在 Node 宿主支持清单里(否则报错),适配目录取清单所写;接口可有多个模块,实现模块与之同名;清单里适配写 - 的接口由应用提供,不绑定,返回无。:」
「规划节点接口绑定」乃
  化(「列」于「节点支持项」)而
  化「字符串」而
  (「或可有」于「多模块绑定计划」)
也。
「规划节点接口绑定」者会「支持表」而会「接口名」而
  虑「接口目录」者『豫言操作系统接口/』附「接口名」而
  虑「无」者
    (
      若「目录存在吗」于「接口目录」则
        「元」
      否则
        「发生事故」于(『依赖 豫言操作系统』附「接口名」附『 需要接口目录 』附「接口目录」附『,构建根里没有它』)
    )而
  鉴(「查节点支持」于「支持表」于「接口名」)而
    有「可无」则
      「发生事故」授以(「或可有」于「多模块绑定计划」)
      于(『Node 宿主不支持接口「』附「接口名」附『」:它不在 』附「节点支持表路径」附『 里』)
    或有(「可有」于「项」)则
      若「应用提供支持吗」于「项」则
        (「可无」授以「多模块绑定计划」)
      否则
        (
          虑「计划」者
            「规划多模块绑定」
              于「接口名」
              于(「接口模块名们」于「接口名」于(「文件系统」之「读文件夹」于「接口目录」))
              于(「项」中「一」)
          而
          虑「无」者「须有文件」于(「计划」中「零」)于『接口包描述』
          而
          虑「无」者「须有文件」于(「计划」中「一」)于『适配包描述』
          而
          虑「无」者
            「态射」授以「字符串」授以「有」
            于(「计划」中「二」)
            于(会「模块」而「须有文件」于「模块」于『适配实现模块』)
          而
          「可有」授以「多模块绑定计划」于「计划」
        )
也。

「:文言:多模块之绑定:先去旧出,后以诸实现模块行绑定之具。汉语:执行一个多模块绑定计划:删除旧的绑定输出目录,再把全部实现模块交给 yy豫言操作系统绑定。:」
「执行多模块绑定」乃化「多模块绑定计划」而「有」也。
「执行多模块绑定」者会「计划」而
  虑「输出」者「计划」中「三」而
  虑「无」者
    「子进程」之「成功运行」于『rm』于(「列」【『-rf』,「输出」】)
  而
  「须成功运行」
    于『绑定操作系统接口』
    于(「工具路径」于『yy豫言操作系统绑定』)
    于(「缀」
      于(「计划」中「零」)
      于(「缀」于(「计划」中「一」)于(「附加」授以「字符串」于(「计划」中「二」)于(「列」【「输出」】))))
也。

「:文言:只验类,不出产物。汉语:只做类型检查:对应用入口运行编译器的 --type-check-only,不生成产物;类型错误由编译器直接打印到当前终端。:」
「类型检查应用」乃化「字符串」而化「字符串」而化「字符串」而「有」也。
「类型检查应用」者会「编译器」而会「入口」而会「上下文」而
  (「须成功运行」
    于『类型检查』
    于「编译器」
    于(「列」【「入口」,『--package-context』,「上下文」,『--type-check-only』,『--parallel』,『-j』,『24』】));
  (「打印行」于(『类型检查通过:』附「入口」))
也。

「:文言:许可文件之取舍:浏览器恒无;云工者,明示者从之,否则取应用目录之许可.json,无则无。汉语:决定传给旧构建形式的许可文件参数:浏览器模式恒为 -;云工模式优先用 --许可,其次用应用目录里的 许可.json(存在时),否则是 -。:」
「决定许可文件」乃化「字符串」而化「字符串」而化「字符串」而「字符串」也。
「决定许可文件」者会「模式」而会「明示」而会「应用目录」而
  若「字符串相等吗」于「模式」于『浏览器』则
    『-』
  否则若「非」于(「字符串相等吗」于「明示」于『』)则
    「明示」
  否则
    (
      虑「默认」者「路径」之「路径合并」于「应用目录」于『许可.json』
      而
      若「普通文件存在吗」于「默认」则「默认」否则『-』
    )
也。

「:文言:绑定之出,皆在 dist/操作系统绑定/接口名。汉语:某接口绑定输出目录(相对构建根),装载包工具按目录名识别接口。:」
「绑定目录」乃化「字符串」而「字符串」也。
「绑定目录」者会「接口名」而
  『dist/操作系统绑定/』附「接口名」
也。

「:文言:绑定所出之包描述,取其规范径。汉语:接口绑定生成的包描述文件的规范绝对路径,用于包上下文。:」
「绑定包文件」乃化「字符串」而化「字符串」而「字符串」也。
「绑定包文件」者会「根」而会「接口名」而
  「规范文件」于(「路径」之「路径合并」
    于「根」
    于((「绑定目录」于「接口名」)附『/豫言操作系统』附「接口名」附『。包。豫』))
也。

「:文言:节点之绑定在隐目,余模式循旧。汉语:按宿主模式取绑定输出目录:节点模式在 dist/.节点绑定(见接口适配篇),其余模式照旧在 dist/操作系统绑定。:」
「按模式绑定目录」乃化「字符串」而化「字符串」而「字符串」也。
「按模式绑定目录」者会「模式」而会「接口名」而
  若「字符串相等吗」于「模式」于『节点』则
    「节点绑定根」附「接口名」
  否则
    「绑定目录」于「接口名」
也。

「按模式绑定包文件」乃化「字符串」而化「字符串」而化「字符串」而「字符串」也。
「按模式绑定包文件」者会「根」而会「模式」而会「接口名」而
  「规范文件」于(「路径」之「路径合并」
    于「根」
    于((「按模式绑定目录」于「模式」于「接口名」)附『/豫言操作系统』附「接口名」附『。包。豫』))
也。

「:文言:构建前先验诸材料,缺则明告。汉语:构建(非只类型检查)前核对构建根材料:装载包工具、宿主外壳源码。编译器直接写出 Wasm 二进制,客体运行时在编译器内;值桥由本工具直接写出,不再需要组装工具与值桥源码。:」
「核验构建材料」乃化「字符串」而化「字符串」而「有」也。
「核验构建材料」者会「根」而会「模式」而
  虑「无」者
    「须有工具」于(「工具路径」于『yy豫言操作系统装载包』)于『封装接口清单』而
    虑「无」者
      「须有文件」
        于(「路径」之「路径合并」
          于「根」
          于(
          若「字符串相等吗」于「模式」于『浏览器』则
            『豫言操作系统/宿主/浏览器/入口.mjs』
          否则若「字符串相等吗」于「模式」于『节点』则
            『豫言操作系统/宿主/节点/应用宿主.mjs』
          否则
            『豫言操作系统/宿主/云工/入口.mjs』))于『宿主外壳源码』
    而
    「:文言:节点之启动文件内联云工之值桥、句柄表与装载核对,并据支持表嵌诸清单。汉语:节点模式的启动文件还要内联云工值桥、句柄表与接口核对三个共用模块,并按宿主支持清单嵌入各接口清单。:」
虑「无」者
  (
    若「字符串相等吗」于「模式」于『节点』则
      「态射」授以「字符串」授以「有」
      于(「列」【
        『豫言操作系统/宿主/云工/值桥.mjs』,
        『豫言操作系统/宿主/云工/句柄.mjs』,
        『豫言操作系统/装载/接口核对.mjs』,
        「节点支持表路径」
      】)
      于(会「文件」而「须有文件」于(「路径」之「路径合并」于「根」于「文件」)于『节点宿主材料』)
    否则
      (「罄」授以「有」)
  )
而
「元」
也。

「:文言:自动之构建:全程一命。汉语:自动模式主流程,参数是已校验的自动选项,当前目录必须是构建根。:」
「执行自动构建」乃化「自动选项」而「有」也。
「执行自动构建」者会「选项」而
  虑「模式」者「选项模式」于「选项」而
  虑「根」者「文件系统」之「获取当前路径」于「元」而
  虑「无」者「核验构建根」于「根」而
  虑「编译器」者「选项编译器」于「选项」而
  虑「无」者「须有工具」于「编译器」于『编译器;可用 --编译器 指定』而
  虑「无」者
    (若「选项类型检查」于「选项」则「元」否则「核验构建材料」于「根」于「模式」)而
    虑「应用原目录」者
      「解析已有目录」于「根」于(「选项应用目录」于「选项」)于『应用目录』
    而
    虑「无」者
      (
        若「或者」
          于(「字符串相等吗」于(「选项许可」于「选项」)于『』)
          于(「字符串相等吗」于(「选项许可」于「选项」)于『-』)则
            「元」
        否则
          「须有文件」
            于(「绝对路径」于「根」于(「选项许可」于「选项」))
            于『许可文件』
      )
    而
    虑「包根们」者
      「去重字符串」
        于(「态射」授以「字符串」授以「字符串」
          于(「选项包根们」于「选项」)
          于(会「位置」而「解析已有目录」于「根」于「位置」于『包根目录』))
          于(「罄」授以「字符串」)
    而
    虑「输出绝对」者
      「核验输出目录」
        于「根」
        于(「选项输出目录」于「选项」)
        于(「缀」于「根」于(「缀」于「应用原目录」于「包根们」))
    而
    虑「输出待删」者
      「去尾斜杠」于(「绝对路径」于「根」于(「选项输出目录」于「选项」))
    而
    虑「输出名」者「路径末段」于(「选项输出目录」于「选项」)而
    虑「临时根」者
      「路径」之「路径合并」于「根」于(『dist/.自动构建/』附「输出名」)
    而
    虑「包文件名与文本」者「定位应用包描述」于「应用原目录」而
    虑「文本描述」者「包文件名与文本」中「一」而
    虑「无」者
      「子进程」之「成功运行」于『rm』于(「列」【『-rf』,「临时根」】)
    而
    虑「无」者
      「子进程」之「成功运行」于『mkdir』于(「列」【『-p』,「临时根」】)
    而
    虑「应用目录」者
      若「文本描述」则「复制文本描述应用」于「临时根」于「应用原目录」
      于(「包文件名与文本」中「零」)
      否则
        「应用原目录」
    而
    虑「应用包文件」者
      「路径」之「路径合并」
        于「应用目录」
        于(若「文本描述」则「去除串结尾」于『.txt』于(「包文件名与文本」中「零」)否则(「包文件名与文本」中「零」))
    而
    虑「应用入口」者「路径」之「路径合并」于「应用目录」于『入口。豫』而
    虑「无」者「须有文件」于「应用入口」于『应用入口源码』而
    虑「应用描述」者「读包描述」于「应用包文件」而
    虑「无」者「核验所有者」于「应用包文件」于「应用描述」而
    虑「应用节点」者(「包描述名称」于「应用描述」)与「应用包文件」与(「包描述依赖们」于「应用描述」)而
    虑「包表」者
      「串联」授以「已找包」于(「态射」授以「字符串」授以(「列」于「已找包」)
      于「包根们」
      于(会「包根」而「扫描目录」于「包根」于「零」))
    而
    虑「解析」者
      「解析依赖」于「包表」于「包根们」于「读包描述」于「应用节点」
    而
    「:文言:接口之闭包:所依接口之所依者并入。汉语:接口按传递闭包收齐(如文件、网络依赖基础),再按字节序排列。:」
虑「接口们」者
  「排序字符串」于(「补全接口闭包」于(「罄」授以「字符串」)于(「解析结果接口们」于「解析」))
而
虑「节点们」者
  「解析结果节点们」于「解析」而
  虑「节点乎」者「字符串相等吗」于「模式」于『节点』而
  虑「无」者
    「打印行」于(『自动构建:』附「模式」附『应用「』附(「包描述名称」于「应用描述」)附『」,应用目录 』附
      「应用目录」)
  而
  虑「无」者
    「打印行」于(『依赖闭包:库与应用共 』附(「整数表示」于(「长度」授以「包节点」于「节点们」))附『 个包(』附(「顿号连接」
      于(「态射」授以「包节点」授以「字符串」于「节点们」于「包节点名」))附『);操作系统接口 』附(「整数表示」
        于(「长度」授以「字符串」于「接口们」))附『 个(』附(「顿号连接」于「接口们」)附『)』)
  而
  「:文言:节点之绑定据宿主支持清单,余模式循旧。汉语:节点模式按 Node 宿主支持清单选适配(可多模块,应用提供的接口不绑定);云工与浏览器模式照旧按目录名选适配。:」
虑「支持表」者
  若「节点乎」则
    「解析节点支持表」于(「文件系统」之「读文件」于「节点支持表路径」)
  否则
    (「罄」授以「节点支持项」)
而
虑「节点计划们」者
  若「节点乎」则
    「态射」授以「字符串」授以(「字符串」合(「或可有」于「多模块绑定计划」))
    于「接口们」
    于(会「接口名」而「接口名」与(「规划节点接口绑定」于「支持表」于「接口名」))
  否则
    (「罄」授以(「字符串」合(「或可有」于「多模块绑定计划」)))
而
虑「应用提供们」者
  「态射」授以(「字符串」合(「或可有」于「多模块绑定计划」))授以「字符串」
    于(「滤」授以(「字符串」合(「或可有」于「多模块绑定计划」))
    于(会「项」而鉴(「项」中「一」)而
      有「可无」则「阳」
      或有「其他」则「阴」)
      于「节点计划们」)
      于(会「项」而「项」中「零」)
而
虑「绑定接口们」者
  「滤」授以「字符串」
    于(会「名」而「非」于(「列含串」于「应用提供们」于「名」))
    于「接口们」
而
虑「计划们」者
  若「节点乎」则
    (「罄」授以「绑定计划」)
  否则
    「态射」授以「字符串」授以「绑定计划」
    于「接口们」
    于(会「接口名」而「规划接口绑定」于「模式」于「接口名」)
而
虑「无」者
  (
    若「等于」于(「长度」授以「字符串」于「绑定接口们」)于「零」则
      「元」
    否则
      「须有工具」于(「工具路径」于『yy豫言操作系统绑定』)于『绑定操作系统接口』
  )
而
虑「无」者
  「逐个执行绑定」于「计划们」而
  虑「无」者
    「态射」授以(「字符串」合(「或可有」于「多模块绑定计划」))授以「有」
      于「节点计划们」
      于(会「项」而鉴(「项」中「一」)而
        有(「可有」于「计划」)则「执行多模块绑定」于「计划」
        或有「其他」则「元」)
  而
  虑「标准库包」者
    「规范文件」于(「路径」之「路径合并」于「根」于『库/标准库/标准库。包。豫』)
  而
  虑「基础库们」者
    「态射」授以「字符串」授以「包节点」
    于「内置基础库名们」
    于(会「名」而「基础库节点」于「根」于「名」)
  而
  「:文言:绑定包之行附其所依接口;应用所供之接口直指其规范包。汉语:每个接口一行:绑定包描述路径,并附上该接口依赖的其他接口;应用提供的接口没有绑定,直接指向规范包描述。:」
虑「绑定包们」者
  「态射」授以「字符串」授以「上下文接口」
    于「接口们」
    于(会「接口名」而
      「接口名」
  与(
          若「列含串」于「应用提供们」于「接口名」则
            「规范文件」于(「路径」之「路径合并」于「根」于(「接口包描述路径」于「接口名」))
          否则
            「按模式绑定包文件」于「根」于「模式」于「接口名」
        )
          与(「态射」授以「字符串」授以「字符串」
            于(「接口的接口依赖们」于「接口名」)
            于(会「依」而『豫言操作系统』附「依」)))
而
虑「上下文文件」者
  「路径」之「路径合并」于「临时根」于『包上下文』而
  虑「无」者
    「文件系统」之「写文件」
      于「上下文文件」
      于(「生成带接口依赖上下文」于「标准库包」于「基础库们」于「绑定包们」于「节点们」)
  而
  虑「无」者「打印行」于(『包上下文:』附「上下文文件」)而
  若「选项类型检查」于「选项」则
    「类型检查应用」于「编译器」于「应用入口」于「上下文文件」
  否则若「节点乎」则(
    虑「无」者
      「子进程」之「成功运行」于『rm』于(「列」【『-rf』,「输出待删」】)
    而
    虑「无」者
      「构建节点发行包」
        于「应用入口」
        于(「选项输出目录」于「选项」)
        于「编译器」
        于「上下文文件」
        于(「态射」授以「字符串」授以「字符串」于「绑定接口们」于(会「名」而「按模式绑定目录」于「模式」于「名」))
        于「应用提供们」
    而
    「打印行」于(『应用已建:』附「输出绝对」)
  )
  否则
    (
      虑「无」者
        「子进程」之「成功运行」于『rm』于(「列」【『-rf』,「输出待删」】)
      而
      虑「无」者
        「按宿主构建」
          于「模式」
          于「应用入口」
          于(「选项输出目录」于「选项」)
          于「编译器」
          于「上下文文件」
          于(「决定许可文件」于「模式」于(「选项许可」于「选项」)于「应用目录」)
          于(「选项命名入口」于「选项」)
      而
      虑「无」者
        「须成功运行」
          于『装载接口清单』
          于(「工具路径」于『yy豫言操作系统装载包』)
          于(「缀」
            于(「选项输出目录」于「选项」)
            于(「态射」授以「字符串」授以「字符串」于「接口们」于「绑定目录」))
      而
      「打印行」于(『应用已建:』附「输出绝对」)
    )
也。

「:文言:自动模式之门:凡事故皆以中文书于误流,而退出一。汉语:自动模式入口:解析命令行并执行;任何中文事故都打印到标准错误并以退出码 1 结束。:」
「运行自动模式」乃化(「列」于「字符串」)而「有」也。
「运行自动模式」者会「参数们」而
  「尝试运行」授以「有」
    于(会「无」而「执行自动构建」于(「解析自动参数」于「参数们」))
    于(会「信息」而
      (「标准错误打印行」于(『yy双宿主构建(自动模式)失败:』附「信息」));
      (「进程」之「退出」于「一」))
也。