豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 436 行 · 25240 字节 · UTF-8
§
「:
文言:语言仓之构建目标,昔为独立之“仓库构建”程序,今并入豫构:自举、豫构、类型检查、测试、打包、清理。诸具皆为 Wasm 之模,行于 Node;豫构自行于 Node,其所启之 .wasm 子程,宿主自以 Node 行之。于仓根行之。
汉语:语言仓的构建目标(原先的独立程序“仓库构建”已并入豫构):自举链、构建豫构、类型检查、豫构测试与全树测试、Wasm 工具链打包、清理。所有工具都是 .wasm 模块,在 Node 上运行;豫构本身在 Node 上运行时,它启动的 .wasm 子程序由宿主自动用 Node 执行。交给构建编排并行调度,按输入修改时间跳过已最新的目标。在仓库根目录运行:yy豫构.wasm 自举|测试|打包|清理|全部 [-j 并发] [--强制] [--不连带] [--列出],或 yy豫构.wasm 目标 名… 运行任意目标。
:」

寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「系统名称」之书。
寻观「标准库」之「操作系统」之「异步子进程」之书。
寻观「标准库」之「语言核心」之「异常」之书。
寻观「构建编排」之书。

「仓库命令们」乃「列」于「字符串」也。
「仓库命令们」者「列」【『自举』,『测试』,『打包』,『清理』,『全部』,『目标』】也。

「是仓库命令」乃化「字符串」而「爻」也。
「是仓库命令」者会「名」而
  「含名」于「仓库命令们」于「名」
也。

「:文言:豫构之并发从命令行之 -j;未书则取处理器之数。汉语:传给子工具的并发数取自命令行的 -j;没写时用在线处理器数。:」
「命令行并发」乃化(「列」于「字符串」)而「整数」也。
「命令行并发」者会「参们」而
  鉴「参们」而
    有(「缀」于「参首」于「参余」)则
      若「串相等」于「参首」于『-j』
      则
        (
          鉴「参余」而
            有(「缀」于「并发参」于「参再余」)则
              「理解整数」于「并发参」
            或有「罄」则「在线处理器数量」于「元」
        )
      否则
        「命令行并发」于「参余」
    或有「罄」则「在线处理器数量」于「元」
也。

「并发文」乃「字符串」也。
「并发文」者「整数表示」于(「命令行并发」于(「获取参数」于「元」))也。

「:文言:用编译缓存之步同入一独占组,免并发相扰。汉语:凡会用到编译缓存的步骤(豫构调用,以及内部再调用豫构的测试)都放进同一个独占组,避免同一缓存被并发使用。:」
「独占豫构」乃化「步骤」而「步骤」也。
「独占豫构」者会「某步」而
  「独占」于『豫构缓存』于「某步」
也。

「:文言:稳定之具取自 Wasm 工具链之包,解于仓根。汉语:稳定工具来自解压到仓库根目录的 Wasm 工具链包:yy_bs_stable.wasm 与 yy豫构_stable.wasm(Node 宿主可用包内的 yy稳定节点宿主,也可用仓库里的)。:」
「稳定编译器」乃「字符串」也。
「稳定编译器」者『./yy_bs_stable.wasm』也。

「稳定豫构」乃「字符串」也。
「稳定豫构」者『./yy豫构_stable.wasm』也。

「:文言:编译器之源:三目录之豫言,除测试与文档。汉语:编译器源码:三个目录下的豫言源码,排除测试与文档。:」
「编译器源码输入们」乃「列」于「输入」也。
「编译器源码输入们」者
  虑「后缀们」者(「列」于「字符串」)也(「列」【『。豫』】)而
  虑「排除们」者(「列」于「字符串」)也(「列」【『/测试/』,『应用/豫言编译器/文档/』】)而
  「列」【
    (「目录输入」于『应用/豫言编译器』于「后缀们」于「排除们」),
    (「目录输入」于『库』于「后缀们」于「排除们」),
    (「目录输入」于『应用/豫构』于「后缀们」于「排除们」)
  】
也。

「:文言:二级由稳定豫构造;三级以后由今豫构造,免旧器授已删之目标选项。汉语:二级编译器由稳定豫构构建;三级、四级改用当前源码的豫构,避免旧豫构向新编译器传已删除的 --target 选项。:」
「编译器级目标」乃
  化「字符串」而
  化(「列」于「字符串」)而
  化「字符串」而
  化「字符串」而
  「构建目标」
也。
「编译器级目标」者会「目标名」而会「依赖们」而会「所用编译器」而会「产物」而
  虑「驱动」者
    若「串相等」于「所用编译器」于「稳定编译器」则「稳定豫构」否则『./yy豫构.wasm』
  而
  「目标」
    于「目标名」
    于(『用 』附「所用编译器」附『 构建豫言编译器,得 』附「产物」)
    于「依赖们」
    于(「列」【
      (「独占豫构」
        于(「命令步」
          于「驱动」
          于(「列」【
            『构建』,
            『豫言编译器』,
            『--编译器』,
            「所用编译器」,
            『--输出』,
            「产物」,
            『-j』,
            「并发文」】)))
    】)
    于(「附加」授以「输入」
      于「编译器源码输入们」
      于(「列」【(「文件输入」于「所用编译器」),(「文件输入」于「驱动」)】))
      于(「列」【「产物」】)
也。

「:文言:构一测试而行之;二步皆独占(部分测试内复调豫构)。汉语:构建并运行一个测试程序的两个步骤;两步都独占编译缓存(部分测试运行时会再调用豫构)。:」
「测试两步」乃
  化「字符串」而
  化「字符串」而
  化「字符串」而
  化(「列」于「字符串」)而
  (「列」于「步骤」)
也。
「测试两步」者会「包名」而会「入口段」而会「产物」而会「运行参数们」而
  「列」【
    (「独占豫构」
      于(「命令步」
        于『./yy豫构.wasm』
        于(「列」【
          『构建』,
          「包名」,
          「入口段」,
          『--编译器』,
          『./yy4_bs.wasm』,
          『--输出』,
          「产物」,
          『-j』,
          「并发文」
        】))),
        (「独占豫构」于(「限时命令步」于「一八零」于(『./』附「产物」)于「运行参数们」))
  】
也。

「豫构测试步们」乃「列」于「步骤」也。
「豫构测试步们」者
  「从左折叠」授以(「列」于「步骤」)授以(「列」于「步骤」)
  于(会「两步」而会「已有」而「附加」授以「步骤」于「已有」于「两步」)
  于(「罄」授以「步骤」)
  于(「列」【
    (「测试两步」于『包配置』于『语言服务。测试』于『yy包语言服务测试.wasm』于(「罄」授以「字符串」)),
    (「测试两步」于『豫构』于『包资料。测试』于『yy豫构资料测试.wasm』于(「罄」授以「字符串」)),
    (「测试两步」于『豫构』于『配置解析。测试』于『yy豫构配置测试.wasm』于(「罄」授以「字符串」)),
    (「测试两步」
      于『豫构』于『包系统。测试』于『yy豫构包测试.wasm』
      于(「列」【『./yy豫构.wasm』,『./yy4_bs.wasm』】)),
      (「测试两步」于『豫构』于『调度器。测试』于『yy豫构调度测试.wasm』于(「罄」授以「字符串」)),
      (「测试两步」于『豫构』于『并行进度。测试』于『yy豫构进度测试.wasm』于(「罄」授以「字符串」)),
      (「测试两步」于『豫构』于『命令行。测试』于『yy豫构命令行测试.wasm』于(「列」【『./yy豫构.wasm』】))
  】)
也。

「:文言:Wasm 工具链之包:编译器、豫构皆为 WasmGC,名同稳定之具;值桥与 Node 宿主三文置于 yy稳定节点宿主。解于仓根即可起步。汉语:Wasm 工具链包:编译器与豫构的 WasmGC 模块(名为稳定工具名),值桥与 Node 宿主三个文件放在 yy稳定节点宿主;解压到仓库根目录即可起步,只需 Node.js。:」
「网页汇编工具链目录」者『yy网页汇编工具链』也。

「包内宿主目录」者「网页汇编工具链目录」附『/yy稳定节点宿主』也。

「节点宿主目录」者『豫言操作系统/宿主/节点』也。

「节点宿主文件们」乃「列」于「字符串」也。
「节点宿主文件们」者「列」【『宿主.cjs』,『进程桥接.cjs』,『编译线程.cjs』】也。

「:文言:值桥须与编译器同代,乃以 yy4_bs.wasm 构其生成之器而书之于宿主之旁;宿主先取之。汉语:值桥要和编译器同一版本(GC 类型须一致),所以用 yy4_bs.wasm 构建值桥生成程序,把值桥写到 Node 宿主文件旁;宿主找值桥时优先用这一份。:」
「宿主旁值桥」者「节点宿主目录」附『/yy节点值桥接.wasm』也。

「值桥步们」乃「列」于「步骤」也。
「值桥步们」者
  「列」【
    (「独占豫构」
      于(「命令步」
        于『./yy豫构.wasm』
        于(「列」【
          『构建』,
          『值桥接生成』,
          『--编译器』,
          『./yy4_bs.wasm』,
          『--输出』,
          『yy值桥接生成.wasm』,
          『-j』,
          「并发文」
        】))),
        (「命令步」于『./yy值桥接生成.wasm』于(「列」【「宿主旁值桥」】))
  】
也。

「打包步们」乃「列」于「步骤」也。
「打包步们」者
  「附加」授以「步骤」
    于(「列」【
      (「建目录步」于「包内宿主目录」),
      (「复制文件步」于『yy4_bs.wasm』于(「网页汇编工具链目录」附『/yy_bs_stable.wasm』)),
      (「复制文件步」于『yy豫构.wasm』于(「网页汇编工具链目录」附『/yy豫构_stable.wasm』)),
      (「复制文件步」于「宿主旁值桥」于(「包内宿主目录」附『/yy节点值桥接.wasm』))
    】)
    于(「态射」授以「字符串」授以「步骤」
      于「节点宿主文件们」
      于(会「名」而「复制文件步」于(「节点宿主目录」附『/』附「名」)于(「包内宿主目录」附『/』附「名」)))
也。

「仓库目标们」乃「列」于「构建目标」也。
「仓库目标们」者
  「列」【
    (「编译器级目标」于『编译器二级』于(「罄」授以「字符串」)于「稳定编译器」于『yy2_bs.wasm』),
    (「编译器级目标」于『编译器三级』于(「列」【『编译器二级』】)于『./yy2_bs.wasm』于『yy3_bs.wasm』),
    (「编译器级目标」于『编译器四级』于(「列」【『编译器三级』】)于『./yy3_bs.wasm』于『yy4_bs.wasm』),
    (「目标」
      于『自举』
      于『连续自举并核对定点:yy3_bs.wasm 与 yy4_bs.wasm 须逐字节相同』
      于(「列」【『编译器四级』】)
      于(「列」【(「相同步」于『yy3_bs.wasm』于『yy4_bs.wasm』)】)
      于(「罄」授以「输入」)
      于(「罄」授以「字符串」)),
      (「目标」
        于『豫构』
        于『用 yy4_bs.wasm 构建 yy豫构.wasm』
        于(「列」【『编译器四级』】)
        于(「列」【
          (「独占豫构」
            于(「命令步」
              于『./yy豫构.wasm』
              于(「列」【
                『构建』,
                『豫构』,
                『--编译器』,
                『./yy4_bs.wasm』,
                『--输出』,
                『yy豫构.wasm』,
                『-j』,
                「并发文」
              】)))
        】)
        于(「附加」授以「输入」
          于「编译器源码输入们」
          于(「列」【(「文件输入」于『yy4_bs.wasm』),(「文件输入」于『yy豫构.wasm』)】))
          于(「列」【『yy豫构.wasm』】)),
          (「目标」
            于『类型检查』
            于『用 yy4_bs.wasm 类型检查豫言编译器』
            于(「列」【『豫构』】)
            于(「列」【
              (「独占豫构」
                于(「命令步」
                  于『./yy豫构.wasm』
                  于(「列」【『类型检查』,『豫言编译器』,『--编译器』,『./yy4_bs.wasm』,『-j』,「并发文」】)))
            】)
            于(「罄」授以「输入」)
            于(「罄」授以「字符串」)),
            (「目标」
              于『豫构测试』
              于『包配置与豫构的七项测试(同 CI)』
              于(「列」【『豫构』】)
              于「豫构测试步们」
              于(「罄」授以「输入」)
              于(「罄」授以「字符串」)),
              (「目标」
                于『全树测试工具』
                于『构建 yy全树测试.wasm』
                于(「列」【『豫构』】)
                于(「列」【
                  (「独占豫构」
                    于(「命令步」
                      于『./yy豫构.wasm』
                      于(「列」【
                        『构建』,
                        『全树测试』,
                        『--编译器』,
                        『./yy4_bs.wasm』,
                        『--输出』,
                        『yy全树测试.wasm』,
                        『-j』,
                        「并发文」
                      】)))
                】)
                于(「列」【
                  (「目录输入」于『应用/开发工具/全树测试』于(「罄」授以「字符串」)于(「罄」授以「字符串」)),
                  (「目录输入」于『库/标准库』于(「列」【『。豫』】)于(「列」【『/测试/』】)),
                  (「文件输入」于『yy4_bs.wasm』)
                】)
                于(「列」【『yy全树测试.wasm』】)),
                (「目标」
                  于『全树测试』
                  于『运行全仓测试(规则见 应用/开发工具/全树测试/测试规则.tsv)』
                  于(「列」【『全树测试工具』】)
                  于(「列」【(「独占豫构」于(「命令步」于『./yy全树测试.wasm』于(「罄」授以「字符串」)))】)
                  于(「罄」授以「输入」)
                  于(「罄」授以「字符串」)),
                  (「目标」
                    于『测试』
                    于『豫构测试与全树测试』
                    于(「列」【『豫构测试』,『全树测试』】)
                    于(「罄」授以「步骤」)
                    于(「罄」授以「输入」)
                    于(「罄」授以「字符串」)),
                    (「目标」
                      于『打包』
                      于(『Wasm 工具链包(解压到仓根即用,只需 Node.js):』附「网页汇编工具链目录」附『/』)
                      于(「列」【『自举』,『豫构』,『值桥』】)
                      于「打包步们」
                      于(「列」【
                        (「目录输入」于「节点宿主目录」于(「列」【『.cjs』】)于(「列」【『/测试/』】)),
                        (「文件输入」于『yy4_bs.wasm』),
                        (「文件输入」于『yy豫构.wasm』),
                        (「文件输入」于「宿主旁值桥」)
                      】)
                      于(「态射」授以「字符串」授以「字符串」
                        于(「列」【
                          『yy_bs_stable.wasm』,
                          『yy豫构_stable.wasm』,
                          『yy稳定节点宿主/yy节点值桥接.wasm』
                        】)
                        于(会「名」而「网页汇编工具链目录」附『/』附「名」))),
                        (「目标」
                          于『值桥』
                          于(『用 yy4_bs.wasm 生成与编译器同代的值桥:』附「宿主旁值桥」)
                          于(「列」【『编译器四级』,『豫构』】)
                          于「值桥步们」
                          于(「列」【
                            (「目录输入」
                              于『应用/网页汇编/值桥接生成』
                              于(「列」【『。豫』】)
                              于(「罄」授以「字符串」)),
                              (「文件输入」于『yy4_bs.wasm』)
                          】)
                          于(「列」【「宿主旁值桥」】)),
                          (「目标」
                            于『清理』
                            于『删除构建产物与缓存』
                            于(「罄」授以「字符串」)
                            于(「列」【
                              (「删除步」
                                于(「列」【
                                  『.yybuild』,
                                  『dist』,
                                  『yy2_bs.wasm』,
                                  『yy3_bs.wasm』,
                                  『yy4_bs.wasm』,
                                  「网页汇编工具链目录」,
                                  『yy_parallel_deps.txt』,
                                  『yy_parallel_log.txt』
                                】))
                            】)
                            于(「罄」授以「输入」)
                            于(「罄」授以「字符串」)),
                            (「目标」
                              于『全部』
                              于『自举并构建豫构与值桥(默认目标)』
                              于(「列」【『自举』,『豫构』,『值桥』】)
                              于(「罄」授以「步骤」)
                              于(「罄」授以「输入」)
                              于(「罄」授以「字符串」)),
                              (「目标」
                                于『模拟器冒烟』
                                于『构建普通豫言验证器并在 QEMU 双架构运行打印探针』
                                于(「罄」授以「字符串」)
                                于(「列」【
                                  (「独占豫构」
                                    于(「命令步」
                                      于『./yy豫构.wasm』
                                      于(「列」【
                                        『文件』,
                                        『豫言操作系统/裸机/普通豫言验证。豫』,
                                        『--编译器』,
                                        『./yy4_bs.wasm』,
                                        『--输出』,
                                        『yy普通豫言验证.wasm』,
                                        『-j』,
                                        「并发文」
                                      】))),
                                      (「独占豫构」
                                        于(「限时命令步」
                                          于「一二零」
                                          于『env』
                                          于(「列」【
                                            『YY_GC_INITIAL_HEAP_SIZE_MB=1024』,
                                            『node』,
                                            『豫言操作系统/宿主/节点/宿主.cjs』,
                                            『yy普通豫言验证.wasm』,
                                            『--只验』,
                                            『普通-打印-』
                                          】)))
                                】)
                                于(「罄」授以「输入」)
                                于(「罄」授以「字符串」)),
                                (「目标」
                                  于『快检』
                                  于『快检:用现有 yy4_bs.wasm 类型检查豫言编译器(不重建工具链),并在 QEMU 双架构运行打印探针;本机约一分钟』
                                  于(「列」【『模拟器冒烟』】)
                                  于(「列」【
                                    (「独占豫构」
                                      于(「命令步」
                                        于『./yy豫构.wasm』
                                        于(「列」【
                                          『类型检查』,
                                          『豫言编译器』,
                                          『--编译器』,
                                          『./yy4_bs.wasm』,
                                          『-j』,
                                          「并发文」
                                        】)))
                                  】)
                                  于(「罄」授以「输入」)
                                  于(「罄」授以「字符串」))
  】
也。

「:文言:行仓库之目标:首参为命令之名即目标之名;“目标”之后列任意目标。汉语:运行仓库目标:第一个参数(自举、测试、打包、清理、全部)本身就是目标名;“目标”之后可以列出任意目标名。其余选项同构建编排:-j 并发、--强制、--不连带、--列出。:」
「运行仓库目标」乃化(「列」于「字符串」)而「整数」也。
「运行仓库目标」者会「原参数们」而
  虑「参数们」者
    鉴「原参数们」而
      有(「缀」于『目标』于「余」)则「余」
      或有「其他」则
        「原参数们」
  而
  若「非」于(「路径存在」于『应用/豫构/豫构。包。豫』)则
    「发生事故」授以「整数」于『请在语言仓根目录运行豫构的仓库目标』
  否则
    虑「连带」者「非」于(「含名」于「参数们」于『--不连带』)而
    虑「解」者
      「解析参数」
        于((「滤」授以「字符串」)于(会「某参」而「非」于(「串相等」于「某参」于『--不连带』))于「参数们」)
        于((「罄」授以「字符串」)与(「在线处理器数量」于「元」)与「阴」与「阴」)
    而
    若「解」中「三」则
      (「列出目标」于「仓库目标们」;
        「零」)
    否则
      虑「所求们」者
        若「等于」于(「长度」授以「字符串」于(「解」中「零」))于「零」则
          「缀」授以「字符串」于『全部』于(「罄」授以「字符串」)
        否则
          「反转」授以「字符串」于(「解」中「零」)
      而
      「执行目标」于「仓库目标们」于「所求们」于(「解」中「一」)
      于(「解」中「二」)于「连带」
也。