直至正文
豫言包府
← 众包

构建编排 0.1.0

豫言 · 库

以普通豫言声明构建目标、依赖与步骤,并行调度,按输入修改时间跳过已最新的目标。

以寻常豫言书构建之目标、所依与诸步,本库并行调度之,据输入跳过已最新者。语言仓之构建目标书于 应用/豫构/仓库目标。豫,豫构召本库而行之:于仓根行 node 豫言操作系统/宿主/节点/宿主.cjs yy豫构.wasm 自举|测试|打包|清理|全部,或以 … yy豫构.wasm 目标 名… 行任一目标。他仓则书一构建程序(可执行之包,如云仓之“云仓构建”),列其诸目标而召 构建程序主函数。仓中不复留 shell 之本。

用法

寻观「标准库」之书。
寻观「构建编排」之书。

「目标们」乃「列」于「构建目标」也。
「目标们」者
  「列」【
    (「目标」
      于『甲』                           「:名:」
      于『构建 yy甲.wasm』               「:注(--列出 时显之):」
      于(「罄」授以「字符串」)         「:所依目标之名:」
      于(「列」【(「命令步」于『./yy豫构.wasm』于(「列」【『文件』,『甲。豫』,『--输出』,『yy甲.wasm』】))】)
      于(「列」【(「文件输入」于『甲。豫』)】)
      于(「列」【『yy甲.wasm』】))
  】
也。

「构建程序主函数」于「目标们」。

构建程序之命令行:程序 [目标…] [-j 并发] [--强制] [--不连带] [--列出]。不举目标则行名“全部”者;--强制 不用缓存;--不连带 但行所举之目标(所举之间所依仍守其序);--列出 书诸目标及其注。

目标与步

「目标」于 名 于 注 于 所依 于 诸步 于 输入 于 输出。同目标之步相继而行;异目标所依既成则并行,其上限依 -j(默以在线处理器之数)。一步败则止派新步,以非零之码终。

诸步:

  • 命令步 程序 参数们:行外令,参数原样相传,不经 shell。
  • 目录内命令步 目录 程序 参数们:于所定之目行之(启时迁目录,启毕即还)。
  • 限时命令步 秒数 程序 参数们:有 timeout 令则限时,逾时即止。
  • 函数 注 函数体:于构建程序中径行一豫言之术;其注入缓存之键。写文件步 径 文 本之。
  • 复制文件步、相同步(逐字相校)、建目录步、删除步:常令之简书。
  • 独占 组名 步:同组之步依目标之拓扑序逐一而行,不并发。共一编译缓存之豫构(及内复调豫构之试)必入同组,以守“同缓存同时唯一构建”。

缓存

输入为 文件输入 径 或 目录输入 目录 后缀们 所除片段们(遍而入之,略点起首之名与 _v0 之目;后缀空则皆取)。输入输出俱非空者可缓存:键合诸步之述、诸输入之径与修改之时(整秒)、诸输出之径,书于 .yybuild/构建编排/<目标名>.印。键不变而输出俱在,则报“已最新”而略之;所依之目标重造,其出之时变,下游之键随改。无输入或无输出者,每次皆行。

约束

  • 本库唯依标准库与构建基础(用其调度器);外令以标准库之异步子进程启之。
  • 标准库无设环境变量之术:须环境变量,则以 env 名=值 程序 … 为令。
  • 修改之时唯精于秒;同秒之内先后改输入或视为未变,须时用 --强制。

所赖

观包之制

上传之记

今修订:1 ·

  1. 修订 1
    取 ZIP

包之层级

父:共用库

无子包。