Skip to content

Commit 633ef96

Browse files
authored
precompile: fail in (closer to) linear time and linear error messages (#59765)
Do not allow serial compile fallbacks, since this causes performance and output degredation when serial precompile fails. The precompilepkg driver already ensured DAG ordering, so this work is not necessary or useful to repeat. A bit of code cleanup and asking for Claude to describe the argument list as well, plus a test to start to cover any of this file's code functionality in CI unit tests. This then lets us fix a lot of the error printing issues too, since we know each package will only get one chance to load, not once for each appearance in the dependency tree. Now it tries to be slightly more careful about when and where output should be printed: progress goes to logio (either io or devnull) while output goes to io always and errors get returned without duplicating both the error text and output messages of them also. The main logic here is that we need to print all output if any requested packages failed, but we print only output from successful packages if all requested packages succeeded. If a package was successful, then its output is required to be printed since it will not be regenerated in the future (we don't reprint precompile output on loading since that might be obnoxious for us to implement). If a required package is successful however, none of the failures mattered and they will be regenerated in the future when they are required, so those should be completely filtered out. With some contributions (mainly the docs outline) by Claude
1 parent d244e1b commit 633ef96

File tree

5 files changed

+330
-103
lines changed

5 files changed

+330
-103
lines changed

0 commit comments

Comments
 (0)