包依赖。豫
yuyan · 422 行 · 20866 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
寻观「标准库」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「构建基础」之「包定位」之书。
寻观「包配置」之「配置数据」之书。
寻观「包配置」之「配置解析」之书。
「:文言:先定众籍,后循所依。汉语:校验候选包元数据,再解析依赖闭包,返回完整身份索引、拓扑顺序与根包入口。:」
「已解析包图」即
「包索引」
合(「列」于「包标识」)
合(「列」于「字符串」)
也。
「:文言:层级之资料:主、名、父名、子名列、为库否。汉语:各包配置里的包含关系资料(所有者、名称、包含在、包含包、是否库类型),用于两向校验并给库类型子包填写父包名。:」
「包层级资料」即
「字符串」
合「字符串」
合「字符串」
合(「列」于「字符串」)
合「爻」
也。
「查层级资料」乃
化(「列」于「包层级资料」)而
化「字符串」而
化「字符串」而
「或可有」于「包层级资料」
也。
「查层级资料」者会「资料们」而会「所有者」而会「名」而
鉴「资料们」而
有「罄」则「可无」
或有(「缀」于「首」于「余」)则
若「且」于(「串相等」于(「首」中「零」)于「所有者」)
于(「串相等」于(「首」中「一」)于「名」)
则
「可有」于「首」
否则
「查层级资料」于「余」于「所有者」于「名」
也。
「必取层级资料」乃
化(「列」于「包层级资料」)而
化「字符串」而
化「字符串」而
化「字符串」而
「包层级资料」
也。
「必取层级资料」者会「资料们」而会「所有者」而会「名」而会「缺失提示」而
鉴「查层级资料」于「资料们」于「所有者」于「名」而
有(「可有」于「资料」)则「资料」
或有「可无」则
「发生事故」授以「包层级资料」于「缺失提示」
也。
「:文言:父子必两向相应。汉语:严格两向:每个声明“包含在”的包,其父必须存在且在“包含包”里登记它;每个登记的子包必须存在且声明“包含在”本包。:」
「确认包含关系登记」乃化(「列」于「包层级资料」)而「有」也。
「确认包含关系登记」者会「资料们」而
虑「无」者
「态射」授以「包层级资料」授以「有」
于「资料们」
于(会「资料」而
虑「所有者」者「资料」中「零」而
虑「名」者「资料」中「一」而
虑「父名」者「资料」中「二」而
虑「无」者
若「串相等」于「父名」于『』则
「元」
否则
(
虑「父」者
「必取层级资料」
于「资料们」
于「所有者」
于「父名」
于(『包含在的父包不存在:』附「名」附『 → 』附「父名」)
而
若「包内含名」于(「父」中「三」)于「名」则
「元」
否则
「发生事故」授以「有」于(『父包未登记子包:』附「父名」附『 的「包含包」缺少 』附「名」)
)
而
虑「无」者
「态射」授以「字符串」授以「有」
于(「资料」中「三」)
于(会「子名」
而
虑「子」者
「必取层级资料」于「资料们」于「所有者」于「子名」于(『登记的子包不存在:』附「名」附『 → 』附「子名」)而
若「串相等」于(「子」中「二」)于「名」则
「元」
否则
「发生事故」授以「有」于(『子包未声明包含在:』附「子名」附『(应含在 』附「名」附『)』))
而
「元」
)
而
「元」
也。
「:文言:沿父上溯,步数有穷。汉语:沿“包含在”上溯的步数不超过包总数,否则成环。:」
「确认包含无环」乃
化(「列」于「包层级资料」)而
化「包层级资料」而
化「整数」而
「有」
也。
「确认包含无环」者会「资料们」而会「资料」而会「余步」而
若「串相等」于(「资料」中「二」)于『』则
「元」
否则若「大于」于「余步」于「零」
则
「确认包含无环」
于「资料们」
于(「必取层级资料」
于「资料们」
于(「资料」中「零」)
于(「资料」中「二」)
于(『包含在的父包不存在:』附(「资料」中「一」)附『 → 』附(「资料」中「二」)))
于(「减」于「余步」于「一」)
否则
「发生事故」授以「有」于(『包含关系成环:』附(「资料」中「一」))
也。
「:文言:验其登记,填其父名;唯库子可下钻。汉语:校验包含关系,并把库类型子包的父包名填进记录(可执行文件类型的子包保持为空,不可下钻)。:」
「补全包含关系」乃化「包索引」而化(「列」于「包层级资料」)而「包索引」也。
「补全包含关系」者会「索引」而会「资料们」而
虑「无」者「确认包含关系登记」于「资料们」而
虑「无」者
「态射」授以「包层级资料」授以「有」
于「资料们」
于(会「资料」而「确认包含无环」于「资料们」于「资料」于(「长度」授以「包层级资料」于「资料们」))
而
「态射」授以「包记录」授以「包记录」
于「索引」
于(会「记录」而
虑「资料」者
「必取层级资料」
于「资料们」
于(「记录」中「零」)
于(「记录」中「一」)
于(『包含关系资料缺失:』附(「记录」中「一」))而
若(「资料」中「四」)
则
((「记录」中「零」)与(「记录」中「一」)与(「记录」中「二」)与(「记录」中「三」)与(「资料」中「二」))
否则
((「记录」中「零」)与(「记录」中「一」)与(「记录」中「二」)与(「记录」中「三」)与『』))
也。
「:文言:先索候选,继验其籍。汉语:文件名仅供候选发现;完整身份取配置所有者,外部目录必须与声明一致;并校验包含关系(两向一致、无环),填写库类型子包的父包名。:」
「补全包索引」乃化「包索引」而「包索引」也。
「补全包索引」者会「候选」而
虑「带资料」者
「态射」授以「包记录」授以(「包记录」合「包层级资料」)
于「候选」
于(会「记录」而
虑「配置」者「解析包文件」于(「记录」中「二」)而
虑「所有者」者「包所有者」于「配置」而
虑「无」者
若「或者」于(「串相等」于(「记录」中「零」)于『』)
于(「串相等」于(「记录」中「零」)于「所有者」)则
「元」
否则
「发生事故」授以「有」于(『包所有者与发现目录不一致:』附(「记录」中「二」))
而
(「包记录」也(「所有者」与(「记录」中「一」)与(「记录」中「二」)与(「记录」中「三」)与(「记录」中「四」)))
与
(「包层级资料」也(「所有者」与(「记录」中「一」)与(「包声明父」于「配置」)与(「包声明子们」于「配置」)
与(「包为库」于「配置」))))
而
虑「索引」者
「从左折叠」授以(「包记录」合「包层级资料」)授以「包索引」
于(会「项」而会「已有」而「插入包索引」于(「项」中「零」)于「已有」)于「罄」于「带资料」
而
「补全包含关系」
于「索引」
于(「态射」授以(「包记录」合「包层级资料」)授以「包层级资料」于「带资料」于(会「项」而「项」中「一」))
也。
「发现具名包」乃化「字符串」而化「字符串」而「包索引」也。
「发现具名包」者会「根」而会「外部」而
「补全包索引」于(「发现包」于「根」于「外部」)
也。
「确认包说明」乃化「包索引」而化「包记录」而化「包」而「有」也。
「确认包说明」者会「索引」而会「记录」而会「配置」而
虑「无」者
「态射」授以「字符串」授以「有」
于(「包说明」于「配置」)
于(会「路径」而
虑「文件」者「路径合并」于(「包目录」于「记录」)于「路径」而
虑「无」者
若「路径存在」于「文件」则「元」否则「发生事故」授以「有」
于(『说明文件不存在:』附「文件」)
而
虑「无」者
若「路径是普通文件」于「文件」则「元」否则「发生事故」授以「有」
于(『说明文件不存在:』附「文件」)
而
虑「实际」者「真实路径」于「文件」而
若「且」
于(「串相等」于「实际」于「文件」)
于(「包标识相等」于(「包身份」于(「所属包」于「索引」于「实际」))于(「包身份」于「记录」))
则
「元」
否则
「发生事故」授以「有」于(『说明文件越过包边界或符号链接:』附「文件」))
而
「元」
也。
「:文言:库子隐为所依,次序依「包含包」。汉语:依“包含包”的顺序返回本包登记的库类型子包(记录里父包名等于本包名者);它们是依赖闭包里的隐含边,依赖父包即依赖它们。:」
「隐含子包标识」乃
化「包索引」而
化「包记录」而
化「包」而
(「列」于「包标识」)
也。
「隐含子包标识」者会「索引」而会「记录」而会「配置」而
虑「候选们」者
「态射」授以「字符串」授以「包标识」
于(「包声明子们」于「配置」)
于(会「名」而(「记录」中「零」)与「名」)
而
「滤」授以「包标识」
于(会「标识」而「串相等」于(「包父名」于(「查包」于「索引」于「标识」))于(「记录」中「一」))
于「候选们」
也。
「:文言:子先于模块,故父之模块名不得与子同。汉语:父包自己的模块路径若是“<子包名>。豫”或以“<子包名>/”开头,就会被同名库类型子包遮蔽,报错。:」
「确认子包不遮蔽模块」乃化「包索引」而化「包记录」而「有」也。
「确认子包不遮蔽模块」者会「索引」而会「包值」而
虑「子们」者「子包们」于「索引」于「包值」而
若「等于」于(「长度」授以「包记录」于「子们」)于「零」则
「元」
否则
虑「根」者(「包目录」于「包值」)附『/』
而
虑「相对们」者
「态射」授以「字符串」授以「字符串」
于(「收集包源码」于(「包目录」于「包值」)于「阳」)
于(会「路径」而「去除串开头」于「根」于「路径」)
而
虑「无」者
「态射」授以「包记录」授以「有」
于「子们」
于(会「子」
而
虑「名」者「子」中「一」而
若「或者」
于(「包内含名」于「相对们」于(「名」附『。豫』))
于(「非」
于(「等于」
于(「长度」授以「字符串」
于(「滤」授以「字符串」于(会「路径」而「串开头是它吗」于(「名」附『/』)于「路径」)于「相对们」))
于「零」))
则
「发生事故」授以「有」于(『子包与父包模块重名:』附(「包全名」于「包值」)附『 的模块「』附「名」附
『」与其子包同名』)
否则
「元」
)
而
「元」
也。
「:文言:环中有含者,为提示。汉语:依赖环里如果有库类型子包,多半是子包依赖了它的祖先,给出提示。:」
「链含层级」乃化「包索引」而化(「列」于「包标识」)而「爻」也。
「链含层级」者会「索引」而会「链」而
「非」于(「等于」
于(「长度」授以「包标识」
于(「滤」授以「包标识」
于(会「标识」而「非」于(「串相等」于(「包父名」于(「查包」于「索引」于「标识」))于『』))
于「链」))
于「零」)
也。
「解析包图」乃化「包索引」而化「包标识」而「已解析包图」也。
「解析包图」者会「候选」而会「根引用」而
虑「索引」者「补全包索引」于「候选」而
虑「根名」者「选择包身份」于「索引」于「根引用」而
虑「完成名」者「新引用」授以(「列」于「包标识」)于「罄」而
虑「已解包」者「新引用」授以「包索引」于「罄」而
虑「根入口」者「新引用」授以(「列」于「字符串」)于「罄」而
递归虑「访问」其化「包标识」而化(「列」于「包标识」)而「有」者会「全名」而
会「链」而
若「含包标识」于「链」于「全名」
则
「发生事故」授以「有」于(『包依赖成环:』附(「间合」
于『 → 』
于(「态射」授以「包标识」授以「字符串」于(「结尾多」授以「包标识」于「链」于「全名」)于「包标识表示」))附
(
若「链含层级」
于「索引」
于(「结尾多」授以「包标识」于「链」于「全名」)则『(环中含包含关系:子包不能依赖其祖先)』
否则
『』
))
否则若「含包标识」于(「读引用」授以(「列」于「包标识」)于「完成名」)
于「全名」则「元」
否则
虑「记录」者「查包」于「索引」于「全名」而
「尝试运行」授以「有」
于(会「无」
而
虑「配置」者「解析包文件」于(「记录」中「二」)而
虑「无」者「确认包说明」于「索引」于「记录」于「配置」而
虑「依赖」者
「态射」授以「包引用」授以「包标识」
于(「包依赖」于「配置」)
于(会「引用」而
(鉴「引用」中「零」而
有「可无」则(「记录」中「零」)
或有(「可有」于「所有者」)则「所有者」)与(「引用」中「一」))
而
虑「无」者
「从左折叠」授以「包标识」授以(「列」于「包标识」)
于(会「名」而会「已有」
而
若「含包标识」于「已有」于「名」则
「发生事故」授以(「列」于「包标识」)
于(『重复声明依赖:』附(「包标识表示」于「名」))
否则
「缀」于「名」于「已有」
)于「罄」于「依赖」而
虑「无」者
「确认可见包名」于((「记录」中「零」)与(「记录」中「一」)与(「记录」中「二」)与「依赖」
与(「记录」中「四」)
)
而
虑「无」者
「态射」授以「包标识」授以「有」
于「依赖」
于(会「标识」
而
若「包为库」于(「解析包文件」于((「查包」于「索引」于「标识」)中「二」))则
「元」
否则
「发生事故」授以「有」于(『依赖包未声明库能力:』附(「包标识表示」于「标识」)))
而
「:文言:同闭包之包,其模必同。汉语:编译模式(高级/底层)必须在整个依赖闭包内一致,底层包因此不能依赖标准库等高级包。:」
虑「无」者
「态射」授以「包标识」授以「有」
于「依赖」
于(会「标识」
而
虑「依赖模」者
「包编译模式」于(「解析包文件」于((「查包」于「索引」于「标识」)中「二」))
而
若「串相等」于「依赖模」于(「包编译模式」于「配置」)则
「元」
否则
「发生事故」授以「有」于(『编译模式不一致:〈』附(「包标识表示」于「全名」)附『〉是』附(「包编译模式」
于「配置」)附『,其依赖〈』附(「包标识表示」于「标识」)附『〉是』附「依赖模」附
『;同一依赖闭包内的包必须同模式』))
而
「:文言:库子隐为所依,模亦须同。汉语:父包的库类型子包是隐含依赖,编译模式也必须与父包一致,并检查子包名不遮蔽父包自己的模块。:」
虑「子们」者「隐含子包标识」于「索引」于「记录」于「配置」
而
虑「无」者
「态射」授以「包标识」授以「有」
于「子们」
于(会「标识」
而
虑「子模」者
「包编译模式」于(「解析包文件」于((「查包」于「索引」于「标识」)中「二」))
而
若「串相等」于「子模」于(「包编译模式」于「配置」)则
「元」
否则
「发生事故」授以「有」于(『编译模式不一致:〈』附(「包标识表示」于「全名」)附『〉是』附(「包编译模式」
于「配置」)附『,其子包〈』附(「包标识表示」于「标识」)附『〉是』附「子模」附
『;父包与其库类型子包必须同模式』))
而
虑「无」者「确认子包不遮蔽模块」于「索引」于「记录」
而
虑「新链」者「结尾多」授以「包标识」于「链」于「全名」
而
虑「无」者
「态射」授以「包标识」授以「有」
于「依赖」
于(会「名」而「访问」于「名」于「新链」)
而
虑「无」者
「态射」授以「包标识」授以「有」
于「子们」
于(会「名」而「访问」于「名」于「新链」)
而
虑「无」者
「写引用」
于「已解包」
于(「缀」授以「包记录」
于((「记录」中「零」)与(「记录」中「一」)与(「记录」中「二」)与「依赖」与(「记录」中「四」))
于(「读引用」授以「包索引」于「已解包」))
而
虑「无」者
「写引用」
于「完成名」
于(「结尾多」授以「包标识」于(「读引用」授以(「列」于「包标识」)于「完成名」)于「全名」)
而
若「包标识相等」于「全名」于「根名」则
「写引用」于「根入口」于(「包入口」于「配置」)
否则
「元」
)
于(会「错误」而「发生事故」授以「有」于((「记录」中「二」)附『:「:换行:」』附「错误」))
而
虑「无」者「访问」于「根名」于「罄」而
(「态射」授以「包记录」授以「包记录」
于「索引」
于(会「记录」而
若「含包标识」于(「读引用」授以(「列」于「包标识」)于「完成名」)
于(「包身份」于「记录」)
则
「查包」于(「读引用」授以「包索引」于「已解包」)
于(「包身份」于「记录」)
否则
「记录」
))与
(「读引用」授以(「列」于「包标识」)于「完成名」)与(「读引用」授以(「列」于「字符串」)于「根入口」)
也。