直至正文豫言学篇

仓库包构建

于仓根行豫构。包名取 。包。豫 之文件名,其所在即包根。配置唯解语法,不行其文。主名与依赖之制,见包系统。

目录

仓根惟五目:库/ 藏众用之库,依父库层层而置;应用/ 藏可执行之程序,分刊行坊(发布)、网汇坊(网页汇编)、书院(文档站)、百工坊(开发工具)、机智坊(人工智能)、网览坊(应用/浏览器)诸组,另有豫言编译器、豫构、度量;豫寓榫卯/ 为带回收之接口;豫寓底榫卯/ 为无回收之底层接口;豫言操作系统/ 为其实现,内有宿主、适配、裸机,及操作系统之工具(应用/)。

库之试置其库下之 测试/;试若须外依,则于其处别立试包(如 库/豫章/测试 之「豫章试」),试包依所试之库,登于其上一层之父(见“包之层级”)。唯一应用所用之库,置其应用下之 库/,登为其应用之子;众用者乃入顶层 库/。WasmGC 客体运行时书于编译器之内(库/译场/分职/笔受/洒扫运行时。豫),编译器直书 Wasm 二进制。

包之层级

诸包以「包含包」「包含在」相系,成若干之树,以便循层而览。./豫构。林檎。豫行 发现 --树 录诸包之树:根依其目而排,子依「包含包」之序缩进,每行书包名、目录与简介。层级不改包名,不改导入;应用仍径依具体之包。

根 目录 子
百家 库/ 众用之高级库;安全外壳(分组之父,其下四库与验程);诸库 测试/ 下之试包
磐石 库/底层库 无;底层之文(名。底层。豫),自成一根
中枢算阵 库/底层库/中枢算阵 无;底层之文,依底层库(不得为其子,父之库子为隐依),自成一根;其试「中央张量内核测试」为可执行之包,登于百家之下
刊行坊、网汇坊、书院、百工坊、机智坊、网览坊 应用/ 下诸组(网览坊在 应用/浏览器) 组中之程;数据库连接兼为其私库「行囊」之父
豫言编译器 应用/豫言编译器 校场(语言回归之试)、范文(文档之例)
豫构、度量 应用/豫构、应用/度量 无
豫寓榫榫 豫言操作系统/适配 诸接口之适配,依接口总纲之序;基础适配之验收程
豫寓百工 豫言操作系统/应用 操作系统之具与用户态之程(发行之构、接口之检、绑与装皆豫构之令)
豫言裸机 豫言操作系统/裸机 冶铸(旧曰裸机后端)、客体二号及诸例与探针;汇寓(旧曰瓦西库)依客体二号之内模,不能独编,自成一根
豫寓榫卯 豫寓榫卯/ 诸接口包,依总纲表序;其说即总纲
豫寓底榫卯 豫寓底榫卯/ 诸底层接口包(名。底层接口。豫);其说即总纲

分组之父唯有包述与双语包说,无模,置于组之目;目中不属诸子之文(如 应用/百工坊/yuyan-vscode、应用/书院/库/文档界面)属之。

目有 。包。豫.txt 包述之模板者(若诸适配之一致性验证应用),他器另建之应用也:双宿主构建抄模板为真包述而后建之。此目不入上包之源,豫构之全包类型检查与依赖之核皆略之。

规:

包界

库有豫章(旧曰标准库)、考课(单元测试)、结绳(旧曰结森工具)、网页客、云工东道、网览东道、营造(旧曰构建基础)、译场(旧曰编译器核心)、牌记(旧曰包配置)诸包;工具包唯数据库连接所用,移入其下之 库/。豫章无外依;营造司包定位、上下文与并行调度,不依编译器。编译器居 应用/豫言编译器,依豫章、结绳、营造。牌记用编译器之 parser;豫构复依牌记,故不可反使编译器依豫构。着色语言之内建之声为点染(库/点染,无所依),其译器在译场;着色语言之试为「点染试」(库/点染/测试),依译场,故别为一包。张量计算之 GPU 算核为算阵(库/算阵,依豫章、点染),其试为「算阵试」(库/算阵/测试),依借道(系统库调用)、金(金属)与算阵,无金属则略之。

工具各有目录、包籍与入口,不复立工具总包,分居 应用/<组>/ 与 豫言操作系统/应用/。语言之试为校场包,居 应用/豫言编译器/校场;文档及其例为范文包,居 应用/豫言编译器/文档;度量居 应用/度量。豫章之试居 库/豫章/测试(「豫章试」),免反依成环。测试有预期失败之文,不可尽以构建成功为验。*_v0 不察。

导入

寻观「豫章」之书。
寻观「豫章」之「形制」之「次第」之书。
寻观「营造」之「访包」之书。

首例独书豫章,则依豫章之默认导入而展,凡十四前置之模:本原之本类、然诺、匣椟、祸福,形制之次第、文章、爻术、筹算、小数术、有无、簿录、对偶,御之缓算,出纳之笔;导后所绑名空间曰“豫章”。余豫章之模,循路径显导之。众库包同此法:包籍必书默认导入,列独书包名之导所展之目,展唯依此列,目皆自包根求之,不循当前目录(见包系统“默认导入”)。

库、应用及其下分组之目,皆为分类,分组之目另有父包(见“包之层级”);导入不书分类之目。旧标准库转发书与特殊搜索之途皆除。

包可用「包含在」「包含包」二字段成组:父登记其直子,子明其父。依父,即得以 父之子之模块 引其子之模块;路径止于子,则依子之默认导入而展。成组乃逻辑之系,不改包名,不系于目录之相套。字段、校验与上下文,见包系统。

构建

./豫构。林檎。豫行 目标 豫构
./豫构。林檎。豫行 目标 类型检查 豫构测试
./豫构。林檎。豫行 检查 豫言编译器
./豫构。林檎。豫行 构建 豫言编译器 --输出 编译器。林檎。豫行
./豫构。林檎。豫行 构建 文档网站生成器 --输出 文档网站。林檎。豫行
./豫构。林檎。豫行 构建 豫章试 数据结构 可选值。测试 --输出 可选值测试。林檎。豫行
./可选值测试。林檎。豫行

构建与类型检查可于包名后明言入口各段,不带扩展名,不复书包名。不言则取包文件之入口。无默认入口者仍可供依赖,亦可明择程序而建之。入口虽异,不越子包,不宽直依之禁。

初举

凡构建皆由豫构之仓库目标(应用/豫构/仓库目标。豫)行之:于仓根行 ./豫构。林檎。豫行 自举|测试|打包|清理|全部 [-j 并发] [--强制] [--不连带] [--列出],或以 ./豫构。林檎。豫行 目标 名… 行任一目标。林檎与 Linux 稳定之器出自 CI 所发之原生工具链包(historical-binaries 之 <提交之时>-yuyan-native-<平台>-<提交号>.tar.gz,平台为 linux-x64、linux-arm64、macos-arm64,时取 UTC,若 20260930T090727Z;最新之连续版为 continuous-binaries 之 yuyan-native-<平台>.tar.gz,CI 自举即起于其中最新之 Linux x64 包,其址见 .github/workflows/main.yml 之 YY_NATIVE_TOOLCHAIN_URL),包中有原生豫构 豫构稳定。林檎。豫行 与执行器之汇编树码 执行器。树码。解包于仓根,径行之:

./豫构稳定。林檎。豫行 构建 豫构 --输出 豫构。林檎。豫行 -j 24 -- --目标 本机 --执行器 执行器。树码
./豫构。林檎。豫行 全部 -j 24

首令以今源所造之原生豫构即可常用;机既装工具链(PATH 有 豫构)者,新工作树、新克隆径用之。次令「全部」乃三级自举,以验编译器之正、出所发之工具链。仓库目标之连带自举者,唯出工具链之鹄:自举、原生工具链、网页汇编编译器、豫构、值桥、打包、原生打包、豫行打包、下载产品、全部,并造盘工具、启动光盘(盘载今源所编之工具链,预编前导须宿主豫构与盘上豫构之摘相同,唯定点能之)。核型、豫构诸试、全树测试工具、行在工具、可执行包程序、诸发行、模拟器冒烟、快检用今行之豫构;豫构诸试先以之编今源之执行器与豫构各一代,置于 .豫构缓存/豫构测试/,以授验豫构本身之四试。

工具链既备,可行 ./豫构。林檎。豫行 目标 模拟器冒烟 -j 24:重造普通豫言之验证器,于 QEMU 之 ARM64、AMD64 各验打印。二〇二六年九月二十八日本机热缓存约三十二秒而过。此为 WP10 快检中 QEMU 冒烟之一部;按所改择试及全快检目标尚待接之。

首步以包中稳定之豫构配包中之执行器,据今源径出一级原生豫构 豫构。林檎。豫行。一级之驱,今源之码行于包中旧执行器之上;故工具链自身(编译器、豫构)欲用执行器新增之原语者,先合执行器之支持,俟 CI 一轮自举既过、连续版易其新包,乃用之于工具链之码(CI 起步取连续版最新之包,自十月十八日不复定提交)。次步“全部”原生自举:一级为方行之原生豫构,二级、三级各以前级先构执行器之汇编树码(客体二号,唯六十四位址一构),复径出原生豫构 豫构二。林檎。豫行、豫构三。林檎。豫行,核二、三级之豫构与执行器逐字相同(定点),装三级为常用之 豫构。林檎。豫行、编译器。林檎。豫行 与执行器 执行器。树码;终以原生豫构构网页后端所用之 编译器.wasm、豫构.wasm 与值桥。本机冷缓约五至八分钟,全程惟用原生之程。仓库目标「原生打包」打原生工具链之包(原生工具链包/:原生豫构 豫构稳定。林檎。豫行 与 执行器。树码):CI 之自举之作打 Linux x64 之包,诸平台原生自举之作以 Linux 上交叉径出之豫构起步,打 Linux arm64 与林檎 arm64 之包。推于 yybs 时,一平台自举既过,即覆连续版(continuous-binaries)之本平台包;三平台俱过,乃按提交发史版(historical-binaries)。试之败不阻其发。

轩窗起于 Wasm 工具链之包(轩窗之原生工具链包待后版):其包于 historical-binaries 名 <提交之时>-yuyan-wasm-<提交号>.tar.gz,最新之连续版为 continuous-binaries 之 yuyan-wasm.tar.gz,中有 编译器稳定.wasm、豫构稳定.wasm 与 Node 宿主 稳定节点宿主/。解包于仓根,以 Node 行之:

node 稳定节点宿主/宿主.cjs 豫构稳定.wasm 构建 豫构 --编译器 ./编译器稳定.wasm --输出 豫构.wasm -j 24
node 豫言操作系统/宿主/节点/宿主.cjs 豫构.wasm 全部 -j 24

豫行工具链之包(提案〇〇〇二一):./豫构。林檎。豫行 目标 豫行打包 -j 24 置二构之豫构豫行(豫构臂。豫行、豫构兼。豫行)、四宿主之豫行启动器(豫行启动器臂。林檎。豫行、豫行启动器臂。林纳。豫行、豫行启动器兼。林纳。豫行、豫行启动器兼.exe)与执行器之汇编树码 执行器。树码 于 豫行工具链/。一豫行于豫言操作系统与诸宿主之启动器皆可行,如于林檎 ./豫行启动器臂。林檎。豫行 豫构臂。豫行 构建 …。CI 每轮打之,于 Linux 二构与林檎以启动器行豫构豫行(发现诸包,构而行原生你好之豫行版),于轩窗以启动器行原生你好之兼豫行,合兼之豫构豫行为单文件 豫构。林檎。豫行,发现诸包(其出与 Linux 原生豫构之所出逐字较之)、构原生你好之豫行版(与 Linux 原生豫构所出逐字节较之)而以 -j 4 类检一库(数常驻之工作进程同时而行),推 yybs 时传为连续版之 yuyan-yuxing-toolchain.tar.gz。新检之仓亦可自此包起步:以本机之启动器行豫构豫行,明书宿主之目标系统与架构而径出本机之原生豫构,复「全部」,见《快速开始》。

启动光盘:./豫构。林檎。豫行 目标 启动光盘 -j 24 并「造盘工具」,置二构之 BIOS/UEFI 混合启动 ISO 豫言系统-兼容六十四.iso 与 豫言系统-臂六十四.iso 于 启动光盘/(预置空、带工具链,同 豫言系统 启动盘 --预置 无 --只出光盘)。此目标每次皆行,CI 取其所出发为发行之物。

下载产品:./豫构。林檎。豫行 目标 下载产品 -j 24 并「原生工具链」,置官网下载中心之编译器包 编译器-<系统>-<构>.tar.gz(豫言、林檎、林纳、轩窗四系统、二构;全源加交叉所构之豫构、其抄本编译器(程名依系统取缀,如 豫构。林纳。豫行、编译器。林纳。豫行)与执行器之汇编树码)与桌面包 桌面-<系统>-<构>.tar.gz(林檎、林纳、轩窗、二构;编译器包加豫言工作台 豫言桌面。林檎。豫行 与文楷之字体)于 下载产品/。此目标每次皆行;社区包仓库之 CI 并「启动光盘」之所出挂于连续之发行,官网下载中心惟链此诸物。

可执行包之程:./豫构。林檎。豫行 目标 可执行包程序 -j 24 编 应用/豫构/仓库目标。豫 之清单「可执行包程序们」所列之可执行包为诸目标之程,置于 可执行包程序/<目标>/<软件名>,并清单 可执行包程序/清单。数据。豫(数据子语言,顶名「程序们」,每程一记「程序」,十字段:软件名、包名、所有者、版、目标、文(相对 可执行包程序/)、沙256(小写十六进制)、字数、简介、源码之提交号;版为包述之版加 + 与 git rev-parse HEAD 之前九位)。目标书“系统-架构”:豫言-兼容六十四、豫言-臂六十四(豫行,与造盘置于 /工具 者同式)、林檎-臂六十四、林纳-兼容六十四、林纳-臂六十四;环境变量 可执行包目标 择目标(逗号分之,全部 则诸目标),未设则惟编 豫言-兼容六十四。语言仓 CI 每轮编兼容之豫行,以林兼启动器行你好以冒烟。其布由社区包仓库:语言仓 CI 推 yybs 后抄此诸应用于 yuyan-lang/yuyan-community-packages 之 包/豫言/(作业 community-copy,清单为社区包工具之「社区复制包们」),由社区仓库之 CI 编诸目标而布程序与软件目录于包仓库 yuyan-lang.org;豫言操作系统之“安装软件”读诸社区之程之汇总目录 https://yuyan-lang.org/豫/社区/软件/豫言-兼容六十四。数据。豫(所有者“豫言”之程以包名为名)。清单惟收能以 --目标系统 豫言 编之、装于豫言操作系统而能行之应用;欲发新软件,增一项于此清单与「社区复制包们」。

首步以包中稳定之豫构与编译器,据今源造 豫构.wasm;今所定之种默生 Wasm,无须指定目标。“全部”于轩窗循 Wasm 之自举(编译器二.wasm → 编译器三.wasm → 编译器.wasm,较三、四级之定点)。于林檎与 Linux 起于 Wasm 之包者,“全部”先由「原生起步」于 Node 上以今源之 豫构.wasm(自带编译器)构六十四位执行器之汇编树码而径出一级原生豫构,乃如上文原生自举;CI 依提交号抽样约四之一之轮(手发者必行),于三平台验此路。不复造单文件引导器。

文件式编译命令仍可用,然皆委豫构,非旧搜索也。

依赖、位置、子包之界有变,则缓存别域,不误用旧绑定。远程获取、版本求解与锁文件,皆未设。