包节点
公开「元类型」文言:此篇纯函数,自应用起,循依赖而尽取其闭包;磁盘之事(列包、读描述)由调用者授以函数与表。汉语:传递依赖解析。输入:包表(包名与包文件路径的对应)、包根列表(只用于报错)、读取包描述的函数、应用根节点;输出:按依赖在前、应用在末排序的库与应用节点,以及按首次遇到顺序排列的操作系统接口名。标准库与内置基础库(原拓展库拆出,见「内置基础库名们」)内置,豫言操作系统XXX 表示接口 XXX,其余依赖到包表里找恰一个。环用已访问表截断。
包说明.html模块 / 4
依赖解析。豫
「元类型」文言:此篇纯函数,自应用起,循依赖而尽取其闭包;磁盘之事(列包、读描述)由调用者授以函数与表。汉语:传递依赖解析。输入:包表(包名与包文件路径的对应)、包根列表(只用于报错)、读取包描述的函数、应用根节点;输出:按依赖在前、应用在末排序的库与应用节点,以及按首次遇到顺序排列的操作系统接口名。标准库与内置基础库(原拓展库拆出,见「内置基础库名们」)内置,豫言操作系统XXX 表示接口 XXX,其余依赖到包表里找恰一个。环用已访问表截断。
化(「字符串」合「字符串」合(「列」于「字符串」))而「字符串」暂无说明。
化(「字符串」合「字符串」合(「列」于「字符串」))而「字符串」暂无说明。
化(「字符串」合「字符串」合(「列」于「字符串」))而(「列」于「字符串」)暂无说明。
「元类型」文言:包表之一项:名与所在之包文件。汉语:包表的一项:包名与包描述文件的路径。
「元类型」文言:解析所得:库与应用之节点(依赖在前,应用居末),及接口名(首见之序)。汉语:解析结果:节点列表与接口名列表。
化((「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))而(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))暂无说明。
化((「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))而(「列」于「字符串」)暂无说明。
(「列」于「字符串」)文言:内置基础库之名,依依赖之序;标准库另计。汉语:内置基础库(原拓展库拆出)的包名,按依赖先后排列;标准库另行处理。
化「字符串」而(「列」于「字符串」)文言:内置基础库之所依。汉语:内置基础库各自的依赖名。
化「字符串」而化(「列」于「字符串」)而「爻」暂无说明。
化「字符串」而「爻」暂无说明。
「字符串」暂无说明。
化「字符串」而(「或可有」于「字符串」)文言:依赖名冠以豫言操作系统者,乃公约接口,去其冠得接口名。汉语:如果依赖名以「豫言操作系统」开头且后面还有字,返回其后的接口名;否则返回无。 文言:待办事项:诸父包(豫言操作系统接口、底层接口、适配、工具)亦冠此名,客若依之,则误作同名之接口而不得其目;今惟令客径依具体之包。汉语:待办事项:以此前缀开头的父包(豫言操作系统接口、豫言操作系统底层接口、豫言操作系统适配、豫言操作系统工具)若被应用依赖,会被当作名为“接口”“底层接口”“适配”“工具”的接口而找不到目录;目前只要求应用直接依赖具体的包。
「元类型」暂无说明。
「依赖分类」暂无说明。
化「字符串」而「依赖分类」暂无说明。
「依赖分类」暂无说明。
「元类型」文言:状态三事:已访问之包名、已得之节点(逆序)、已见之接口(逆序)。汉语:解析状态:已访问的包名、已产出节点的逆序列表、已遇到接口名的逆序列表。
化「字符串」而化「字符串」而「有」文言:一依赖何属:内置、已见者略过;接口未见则收之;余者为普通包。汉语:给依赖分类:内置包或已访问的包、已收集的接口都略过,新接口收集,其余是需要到包表里找的普通包。 文言:依赖之名将入路径与命令,先验其洁。汉语:依赖名必须是安全名称(不空、不含斜杠等),否则抛出指明请求者的中文事故;接口名同样受检。
化「字符串」而化「字符串」而化((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))而「依赖分类」暂无说明。
化(「列」于(「字符串」合「字符串」))而化「字符串」而(「列」于「字符串」)文言:同名之包,取其路径之去重有序者。汉语:在包表里按名查找,返回去重并按字节序排序的候选路径列表。
化「字符串」而化「字符串」而化(「列」于「字符串」)而化(「列」于「字符串」)而「字符串」文言:无则告其所搜之根,多则列其诸径。汉语:候选恰有一个时返回其路径;没有或有多个时抛出说明依赖名、请求者与包根的中文事故。
化「字符串」而化(「字符串」合「字符串」合(「列」于「字符串」))而「有」文言:自动模式所识之包,主皆为豫言。汉语:自动模式生成的包上下文里所有包的所有者都是「豫言」,其他所有者暂不支持。
化化「字符串」而(「字符串」合「字符串」合(「列」于「字符串」))而化「字符串」而化「字符串」而(「字符串」合「字符串」合(「列」于「字符串」))文言:入一包:读其描述,验其名与所有者。汉语:读取包描述并核对:包描述里的名称必须与依赖名一致,所有者必须是「豫言」。
化(「列」于(「字符串」合「字符串」))而化(「列」于「字符串」)而化化「字符串」而(「字符串」合「字符串」合(「列」于「字符串」))而化「字符串」而化「字符串」而(「字符串」合「字符串」合(「列」于「字符串」))暂无说明。
化「字符串」而化((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))而((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))文言:三事各有登记之术;泛型之缀,必在有型之函内为之,以免类型不定。汉语:解析状态的三个更新函数:登记已访问的包名、登记新遇到的接口名、追加产出的节点。写成带完整类型签名的小函数,避免在局部绑定里构造带泛型的元组导致隐式参数无法确定。
化(「字符串」合「字符串」合(「列」于「字符串」))而化((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))而((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))暂无说明。
化「字符串」而化((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))而((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))暂无说明。
化(「列」于(「字符串」合「字符串」))而化(「列」于「字符串」)而化化「字符串」而(「字符串」合「字符串」合(「列」于「字符串」))而化(「字符串」合「字符串」合(「列」于「字符串」))而化((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))而((「列」于「字符串」)合(「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))文言:访一包:先记其名(防环),逐依而入;接口则收,普通包则载而访之;毕,乃书其节点于后。汉语:深度优先访问一个包:进入时先登记,防止环;按依赖声明顺序处理每个依赖;处理完再把本节点追加到结果(因此依赖在前,应用在末)。
化(「列」于(「字符串」合「字符串」))而化(「列」于「字符串」)而化化「字符串」而(「字符串」合「字符串」合(「列」于「字符串」))而化(「字符串」合「字符串」合(「列」于「字符串」))而((「列」于(「字符串」合「字符串」合(「列」于「字符串」)))合(「列」于「字符串」))文言:自应用起尽取其依赖之闭包。汉语:解析入口:从应用节点出发,返回(节点列表,接口名列表);节点依赖在前、应用在末,接口按首次遇到的顺序。