豫构包制

图既定,豫构乃书项目内包籍之所指于 .yybuild/豫构语言服务/<包文件相对路径去掉。豫>.语言服务.json,其式同源码之语言服务。入口之串与列中诸段皆指包内源书;所依之名与主皆指本地包籍,外部之包则用绝对路径。再行豫构则更新其文,编辑器循既有跳转之法读之。

包籍以 。包。豫 为尾,其目录即包根。唯取 parser 之静态值,不求值,不行其中代码。

名称、所有者、版本、简介、说明、类型,皆须明载。名须合文件之名;所有者定其籍,不另署作者。官包之所有者曰“豫言”。版本暂用三段十进整数,无前导零;今诸包初定 0.1.0,非编译器之版本。

包身份以所有者与名称两字段存之。异主同名可并存,同主同名虽异版本亦报错。此版不求远包、不解版本范围、不立锁籍,亦不以自署所有者为身份认证。

索与依

先遍当前目录取包名,继解候选元数据以定主。目录不定本地主;外部包集合首层之主名须与包籍相符。坏籍则止。链接、缓存、Git 与旧版目录不索。

依赖省主,则取同主之包;异主须明书所有者与包。命令省主,唯短名独一可取。导入首段只书包名,其后皆从包根寻之,不寻当前文件之邻。

唯自身与直依可见,同域短名重则拒。单名导入取总集,无则报错。总集不自合诸书,亦非程序入口。子包为界,不可越之。

库与器

类型以典载之,种类惟库与可执行文件。库不得载入口与文件名;器则二者俱备,名以 yy 为首或 .exe 为尾。解码成枚举,各支不杂。旧库、程序、入口之顶层字段皆拒。

唯库可供依赖。构库则编诸普通模块,除试书与子包,不链为器,不借总集充入口。明指文件之试例另论。编译器公用诸书迁库中编译器核心,命令入口仍在豫言编译器包。此二包各有其籍,不复包中套库。

文与原生

说明登记汉语、文言二路径,尾分别为 .汉语.md 与 .文言.md。验其存在、同包、无链接越界。简介供概览,正文载用途、用法与维护之则;不以说明作源码。普通包归档尚未实现,不称说明已可发布。

C 源与包含目录须明列,归豫构编译。系统依赖今为库名列,沿闭包授链接器为独立 -l 参数;缺库则止,不擅安装。不支持 pkg-config、版本约束、平台条件及系统头路径发现。平台运行时仍以 Make 备之;双种子不许漏带额外系统库。

完整例与命令见汉语说明。旧稳定豫构不能读新籍;正式推广须先更新双种子。今版供审,不自行发布。