执行。豫
yuyan · 558 行 · 26860 字节 · 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 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558
「:
文言:构建编排之行:析命令行,取所求目标及其所依,拆为调度之务,交构建基础之调度器并行之;键未变者跳过。
汉语:构建编排的执行部分:解析构建程序的命令行,取出所求目标及其依赖闭包,把每个目标拆成“检查、各步骤、完成”一串调度任务,交给构建基础的调度器并行执行;缓存键未变的目标直接跳过。
:」
寻观「标准库」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「子进程」之书。
寻观「标准库」之「操作系统」之「异步子进程」之书。
寻观「标准库」之「操作系统」之「时间」之书。
寻观「标准库」之「控制」之「异步」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「标准库」之「语言核心」之「异常」之书。
寻观「标准库」之「数学运算」之「转换」之书。
寻「标准库」之「数据结构」之「小数操作」之书。
寻观「构建基础」之「调度器」之书。
寻观「构建编排」之「定义」之书。
「限时可用」乃「爻」也。
「限时可用」者(「查找可执行程序」于『timeout』)中「零」也。
「经过秒数」乃化「小数」而「整数」也。
「经过秒数」者会「起点」而
「除以」
于(「小数转整数」于(「小数操作」之「减」于(「获取当前纳秒时间」于「元」)于「起点」))于「一零零零零零零零零零」
也。
「即成」乃化「有」而(「异步任务」于「子进程结果」)也。
「即成」者会「无」而
「立即完成」授以「子进程结果」于(「零」与「零」与『』与『』)
也。
「:文言:启一外令;定目录者,暂迁而启,启毕即还(协作调度,无并发之虞)。汉语:启动一条外部命令;指定工作目录时先切换目录再启动,启动后立即切回(单线程协作调度,不会与其他任务交错)。:」
「启动命令」乃
化「字符串」而
化(「列」于「字符串」)而
化「字符串」而
化「整数」而
(「异步任务」于「子进程结果」)
也。
「启动命令」者会「程序」而会「参数们」而会「工作目录」而会「秒数」而
虑「用限时」者「且」于「限时可用」于(「大于」于「秒数」于「零」)而
虑「实程序」者(若「用限时」则『timeout』否则「程序」)而
虑「实参数」者
(
若「用限时」
则
「附加」授以「字符串」
于(「列」【『-k』,『10』,(「整数表示」于「秒数」),「程序」】)
于「参数们」
否则
「参数们」
)
而
若「串相等」于「工作目录」于『』
则
「异步获取输出」于「实程序」于「实参数」
否则
虑「原目录」者「获取当前路径」于「元」而
虑「切入」者「切换当前路径」于「工作目录」而
若「非」于(「等」于(「切入」中「零」)于「零」)
则
「发生事故」授以(「异步任务」于「子进程结果」)
于(『无法进入工作目录:』附「工作目录」附『:』附(「切入」中「一」))
否则
虑「已启」者「异步获取输出」于「实程序」于「实参数」
而
虑「无」者「切换当前路径」于「原目录」而
「已启」
也。
「启动步骤」乃
化(「引用类」于「爻」)而
化「步骤」而
(「异步任务」于「子进程结果」)
也。
「启动步骤」者会「跳过」而会「某步」而
若「读引用」授以「爻」于「跳过」
则
「即成」于「元」
否则
(
鉴「某步」而
有(「命令」于「程序」于「参数们」于「工作目录」于「秒数」)则
「启动命令」
于「程序」
于「参数们」
于「工作目录」于「秒数」
或有(「函数」于「函数说明」于「函数体」)则
(「函数体」于「元」;
「即成」于「元」)
或有(「独占」于「独占组名」于「内步」)则
「启动步骤」于「跳过」于「内步」
)
也。
「完成名」乃化「字符串」而「字符串」也。
「完成名」者会「名称」而
「名称」附『#完成』
也。
「:文言:目标之名是否在列。汉语:判断名称是否在名单中。:」
「含名」乃化(「列」于「字符串」)而化「字符串」而「爻」也。
「含名」者会「名称们」而会「名称」而
鉴「名称们」而
有「罄」则「阴」
或有(「缀」于「首名」于「余名」)则
若「串相等」于「首名」于「名称」则「阳」否则「含名」于「余名」于「名称」
也。
「:文言:组表记每独占组末一务之名。汉语:组表记录每个独占组里最后一个任务的名称,用来把同组步骤串成一条链。:」
「组中末任务」乃
化(「列」于(「字符串」合「字符串」))而
化「字符串」而
(「或可有」于「字符串」)
也。
「组中末任务」者会「组表」而会「组名」而
鉴「组表」而
有「罄」则(「可无」授以「字符串」)
或有(「缀」于「首条」于「余条」)则
若「串相等」于(「首条」中「零」)于「组名」
则
(「可有」授以「字符串」于(「首条」中「一」))
否则
「组中末任务」于「余条」于「组名」
也。
「更新组表」乃
化(「列」于(「字符串」合「字符串」))而
化「字符串」而
化「字符串」而
(「列」于(「字符串」合「字符串」))
也。
「更新组表」者会「组表」而会「组名」而会「任务名」而
「缀」授以(「字符串」合「字符串」)
于(「组名」与「任务名」)
于((「滤」授以(「字符串」合「字符串」))
于(会「某条」而「非」于(「串相等」于(「某条」中「零」)于「组名」))
于「组表」
)
也。
「步骤独占组」乃化「步骤」而(「或可有」于「字符串」)也。
「步骤独占组」者会「某步」而
鉴「某步」而
有(「独占」于「独占组名」于「内步」)则(「可有」授以「字符串」于「独占组名」)
或有「其他」则(「可无」授以「字符串」)
也。
「组依赖名们」乃
化「步骤」而
化(「列」于(「字符串」合「字符串」))而
(「列」于「字符串」)
也。
「组依赖名们」者会「某步」而会「组表」而
鉴「步骤独占组」于「某步」而
有「可无」则(「罄」授以「字符串」)
或有(「可有」于「组名」)则(
鉴「组中末任务」于「组表」于「组名」而
有(「可有」于「末任务名」)则(「缀」授以「字符串」于「末任务名」于(「罄」授以「字符串」))
或有「可无」则(「罄」授以「字符串」)
)
也。
「步后组表」乃
化「步骤」而
化(「列」于(「字符串」合「字符串」))而
化「字符串」而
(「列」于(「字符串」合「字符串」))
也。
「步后组表」者会「某步」而会「组表」而会「任务名」而
鉴「步骤独占组」于「某步」而
有「可无」则「组表」
或有(「可有」于「组名」)则
「更新组表」于「组表」于「组名」于「任务名」
也。
「:文言:诸步相继为务;独占之步并待其组前一务。汉语:把步骤依次变成任务,后一步依赖前一步;独占步骤另外依赖同组的前一个任务。返回任务列与更新后的组表。:」
「步骤任务们」乃
化「字符串」而
化(「引用类」于「爻」)而
化「整数」而
化「字符串」而
化(「列」于「步骤」)而
化(「列」于(「字符串」合「字符串」))而
((「列」于「构建任务」)合(「列」于(「字符串」合「字符串」)))
也。
「步骤任务们」者会「名称」而会「跳过」而会「序号」而会「前名」而会「余步」而会「组表」而
鉴「余步」而
有「罄」则((「罄」授以「构建任务」)与「组表」)
或有(「缀」于「首步」于「后步」)则
虑「本名」者「名称」附『#』附(「整数表示」于「序号」)而
虑「本任务」者
「新构建任务」
于「本名」
于(「缀」授以「字符串」于「前名」于(「组依赖名们」于「首步」于「组表」))
于(会「无」而「启动步骤」于「跳过」于「首步」)
于(会「结果」而「元」)
而
虑「后续」者
「步骤任务们」
于「名称」
于「跳过」
于(「加」于「序号」于「一」)
于「本名」于「后步」
于(「步后组表」于「首步」于「组表」于「本名」)
而
((「缀」授以「构建任务」于「本任务」于(「后续」中「零」))与(「后续」中「一」))
也。
「:文言:一目标为一串之务:检查定其跳否,诸步相继,完成书印而报;所依限于所选之中。汉语:一个目标对应一串任务:检查任务决定是否跳过,各步骤依次执行,完成任务写印记并报告;只等待同在所选范围内的依赖。返回任务列与更新后的组表。:」
「目标任务们」乃
化「构建目标」而
化「爻」而
化(「列」于「字符串」)而
化(「列」于(「字符串」合「字符串」))而
((「列」于「构建任务」)合(「列」于(「字符串」合「字符串」)))
也。
「目标任务们」者会「某目标」而会「强制」而会「所选名们」而会「组表」而
虑「名称」者「目标名称」于「某目标」而
虑「跳过」者「新引用」授以「爻」于「阴」而
虑「键引用」者「新引用」授以「字符串」于『』而
虑「起时」者「新引用」授以「小数」于(「获取当前纳秒时间」于「元」)而
虑「检查名」者「名称」附『#检查』而
虑「步数」者「长度」授以「步骤」于(「目标步骤」于「某目标」)而
虑「末名」者
(若「等」于「步数」于「零」则「检查名」否则「名称」附『#』附(「整数表示」于「步数」))而
虑「所待们」者
(「态射」授以「字符串」授以「字符串」)
于((「滤」授以「字符串」)于(会「依赖名」而「含名」于「所选名们」于「依赖名」)于(「目标依赖」于「某目标」))
于「完成名」
而
虑「检查任务」者
「新构建任务」
于「检查名」
于「所待们」
于(会「无」
而
虑「键」者「目标键」于「某目标」而
虑「最新」者
「且」于(「非」于「强制」)于(「已最新」于「某目标」于「键」)而
虑「无」者「写引用」授以「字符串」于「键引用」于「键」而
虑「无」者「写引用」授以「爻」于「跳过」于「最新」而
虑「无」者
「写引用」授以「小数」于「起时」于(「获取当前纳秒时间」于「元」)
而
虑「无」者
(若「最新」则「元」否则「打印行」于(『【开始】』附「名称」))
而
「即成」于「元」
)
于(会「结果」而「元」)
而
虑「完成任务」者
「新构建任务」
于(「完成名」于「名称」)
于(「列」【「末名」】)
于(会「无」
而
虑「无」者
(
若「读引用」授以「爻」于「跳过」
则
「打印行」于(『【已最新】』附「名称」)
否则
(
虑「无」者
(
若「可缓存」于「某目标」
则
「写文件」
于(「印记路径」于「名称」)
于(「读引用」授以「字符串」于「键引用」)
否则
「元」
)
而
「打印行」
于(『【完成】』附「名称」附『(』附(「整数表示」于(「经过秒数」于(「读引用」授以「小数」于「起时」)))
附『 秒)』)
)
)
而
「即成」于「元」
)
于(会「结果」而「元」)
而
虑「步段」者
「步骤任务们」于「名称」于「跳过」于「一」于「检查名」于(「目标步骤」于「某目标」)于「组表」
而
((「缀」授以「构建任务」
于「检查任务」
于(「附加」授以「构建任务」于(「步段」中「零」)于(「列」【「完成任务」】)))
与(「步段」中「一」)
)
也。
「:文言:依所依排序:所依在前;所依不在所选者不计;成环则止。汉语:按依赖做拓扑排序,依赖在前;不在所选范围内的依赖不计;有环即报错。:」
「拓扑排序」乃
化(「列」于「构建目标」)而
化(「列」于「构建目标」)而
(「列」于「构建目标」)
也。
「拓扑排序」者会「剩余」而会「已排」而
虑「所选名们」者
(「态射」授以「构建目标」授以「字符串」)
于(「附加」授以「构建目标」于「剩余」于「已排」)
于「目标名称」而
虑「已排名们」者
(「态射」授以「构建目标」授以「字符串」)于「已排」于「目标名称」而
虑「可排」者
(「滤」授以「构建目标」)
于(会「候选」而
「等」
于(「长度」授以「字符串」
于((「滤」授以「字符串」)
于(会「依赖名」而「且」
于(「含名」于「所选名们」于「依赖名」)
于(「非」于(「含名」于「已排名们」于「依赖名」)))
于(「目标依赖」于「候选」)))
于「零」
)
于「剩余」
而
若「等」于(「长度」授以「构建目标」于「剩余」)于「零」
则
「已排」
否则
(
若「等」于(「长度」授以「构建目标」于「可排」)于「零」
则
「发生事故」授以(「列」于「构建目标」)
于(『目标依赖成环:』附(「间合」
于『、』
于((「态射」授以「构建目标」授以「字符串」)于「剩余」于「目标名称」)))
否则
「拓扑排序」
于((「滤」授以「构建目标」)
于(会「候选」而「非」
于(「含名」
于((「态射」授以「构建目标」授以「字符串」)于「可排」于「目标名称」)
于(「目标名称」于「候选」)))
于「剩余」)
于(「附加」授以「构建目标」于「已排」于「可排」)
)
也。
「查目标」乃
化(「列」于「构建目标」)而
化「字符串」而
(「或可有」于「构建目标」)
也。
「查目标」者会「目标们」而会「名称」而
鉴「目标们」而
有「罄」则(「可无」授以「构建目标」)
或有(「缀」于「首目标」于「余目标」)则
若「串相等」于(「目标名称」于「首目标」)于「名称」
则
(「可有」授以「构建目标」于「首目标」)
否则
「查目标」于「余目标」于「名称」
也。
「目标名单」乃化(「列」于「构建目标」)而「字符串」也。
「目标名单」者会「目标们」而
「间合」于『、』于((「态射」授以「构建目标」授以「字符串」)于「目标们」于「目标名称」)
也。
「:文言:自所求者起,遍其所依,得闭包之诸目标。汉语:从所求目标出发遍历依赖,得到需要执行的全部目标。:」
「目标闭包」乃
化(「列」于「构建目标」)而
化(「列」于「字符串」)而
化(「列」于「构建目标」)而
(「列」于「构建目标」)
也。
「目标闭包」者会「目标们」而会「待访」而会「已得」而
鉴「待访」而
有「罄」则「已得」
或有(「缀」于「首名」于「余访」)则
若「含名」于((「态射」授以「构建目标」授以「字符串」)于「已得」于「目标名称」)
于「首名」
则
「目标闭包」于「目标们」于「余访」于「已得」
否则
(
鉴「查目标」于「目标们」于「首名」而
有(「可有」于「所求目标」)则
「目标闭包」
于「目标们」
于(「附加」授以「字符串」于(「目标依赖」于「所求目标」)于「余访」)
于(「缀」授以「构建目标」于「所求目标」于「已得」)
或有「可无」则
「发生事故」授以(「列」于「构建目标」)
于(『未知目标:』附「首名」附『。可用目标:』附(「目标名单」于「目标们」))
)
也。
「:文言:命令行之所解:目标、并发、强制、但列。汉语:命令行解析结果:目标名单、并发数、是否强制、是否只列出。:」
「解析参数」乃
化(「列」于「字符串」)而
化((「列」于「字符串」)合「整数」合「爻」合「爻」)而
((「列」于「字符串」)合「整数」合「爻」合「爻」)
也。
「解析参数」者会「余参」而会「已解」而
鉴「余参」而
有「罄」则「已解」
或有(「缀」于「首参」于「后参」)则
若「串相等」于「首参」于『-j』
则
(
鉴「后参」而
有「罄」则(「发生事故」授以((「列」于「字符串」)合「整数」合「爻」合「爻」)于『-j 之后须写并发数』)
或有(「缀」于「并发文」于「再后参」)则
「解析参数」
于「再后参」
于((「已解」中「零」)与(「理解整数」于「并发文」)与(「已解」中「二」)与(「已解」中「三」))
)
否则
(
若「串相等」于「首参」于『--强制』
则
「解析参数」
于「后参」
于((「已解」中「零」)与(「已解」中「一」)与「阳」与(「已解」中「三」))
否则
(
若「串相等」于「首参」于『--列出』
则
「解析参数」
于「后参」
于((「已解」中「零」)与(「已解」中「一」)与(「已解」中「二」)与「阳」)
否则
(
若「串开头是它吗」于『-』于「首参」
则
(「发生事故」授以((「列」于「字符串」)合「整数」合「爻」合「爻」)
于(『未知选项:』附「首参」))
否则
「解析参数」
于「后参」
于((「缀」授以「字符串」于「首参」于(「已解」中「零」))与(「已解」中「一」)
与(「已解」中「二」)与(「已解」中「三」))
)
)
)
也。
「列出目标」乃化(「列」于「构建目标」)而「有」也。
「列出目标」者会「目标们」而
鉴「目标们」而
有「罄」则「元」
或有(「缀」于「首目标」于「余目标」)则
虑「无」者
「打印行」于((「目标名称」于「首目标」)附『 』附(「目标说明」于「首目标」))
而
「列出目标」于「余目标」
也。
「:文言:但取所求之目标,不及所依;有不识者则止。汉语:只取所求的目标本身,不展开依赖;遇到未知目标即报错。:」
「只取所求」乃
化(「列」于「构建目标」)而
化(「列」于「字符串」)而
(「列」于「构建目标」)
也。
「只取所求」者会「目标们」而会「所求们」而
(「态射」授以「字符串」授以「构建目标」)
于「所求们」
于(会「所求名」而
鉴「查目标」于「目标们」于「所求名」而
有(「可有」于「所求目标」)则「所求目标」
或有「可无」则
「发生事故」授以「构建目标」于(『未知目标:』附「所求名」附『。可用目标:』附(「目标名单」于「目标们」)))
也。
「:文言:执所求之目标,返退码;连带者并执其所依。汉语:执行给定名称的目标,返回退出码(零为成功);连带为阳时连同依赖一起执行,为阴时只执行所求目标本身。:」
「执行目标」乃
化(「列」于「构建目标」)而
化(「列」于「字符串」)而
化「整数」而
化「爻」而
化「爻」而
「整数」
也。
「执行目标」者会「目标们」而会「所求们」而会「并发」而会「强制」而会「连带」而
虑「闭包」者
(
若「连带」
则
「目标闭包」于「目标们」于「所求们」于(「罄」授以「构建目标」)
否则
「只取所求」于「目标们」于「所求们」
)
而
虑「排序后」者「拓扑排序」于「闭包」于(「罄」授以「构建目标」)而
虑「所选名们」者
(「态射」授以「构建目标」授以「字符串」)于「排序后」于「目标名称」而
虑「无」者
「获取输出」于『mkdir』于(「列」【『-p』,「印记目录」】)
而
虑「折叠果」者
「从左折叠」授以「构建目标」授以((「列」于「构建任务」)合(「列」于(「字符串」合「字符串」)))
于(会「某目标」而会「已有」
而
虑「本段」者
「目标任务们」于「某目标」于「强制」于「所选名们」于(「已有」中「一」)
而
((「附加」授以「构建任务」于(「已有」中「零」)于(「本段」中「零」))与(「本段」中「一」)))
于((「罄」授以「构建任务」)与(「罄」授以(「字符串」合「字符串」)))
于「排序后」
而
虑「任务们」者「折叠果」中「零」而
虑「起点」者「获取当前纳秒时间」于「元」而
虑「码」者
「执行任务图」于(「新引用」授以(「列」于「构建任务」)于「任务们」)
于「并发」
而
虑「无」者
(
若「等」于「码」于「零」
则
「打印行」于(『构建成功(』附(「整数表示」于(「经过秒数」于「起点」))附『 秒)』)
否则
「标准错误打印行」于(『构建失败,退出码 』附(「整数表示」于「码」))
)
而
「码」
也。
「:文言:构建程序之主:依命令行执其目标而退。汉语:构建程序的主函数:按命令行执行目标后以相应退出码结束进程。用法:程序 [目标…] [-j 并发] [--强制] [--不连带] [--列出];不给目标时执行“全部”;--不连带 只执行所列目标本身,不执行其依赖。:」
「构建程序主函数」乃化(「列」于「构建目标」)而「有」也。
「构建程序主函数」者会「目标们」而
虑「原参数们」者「获取参数」于「元」而
虑「连带」者「非」于(「含名」于「原参数们」于『--不连带』)而
虑「解」者
「解析参数」
于((「滤」授以「字符串」)于(会「某参」而「非」于(「串相等」于「某参」于『--不连带』))于「原参数们」)
于((「罄」授以「字符串」)与(「在线处理器数量」于「元」)与「阴」与「阴」)
而
若「解」中「三」
则
(「列出目标」于「目标们」;
「进程」之「退出」于「零」)
否则
虑「目标参数」者「解」中「零」而
虑「所求们」者
(
若「等」于(「长度」授以「字符串」于「目标参数」)于「零」
则
(「缀」授以「字符串」于『全部』于(「罄」授以「字符串」))
否则
「反转」授以「字符串」于「目标参数」
)
而
「进程」之「退出」于(「执行目标」于「目标们」于「所求们」于(「解」中「一」)于(「解」中「二」)于「连带」)
也。