Prevent extensions from blocking parallel pre-compilation #55910
+101
−63
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously our precompilation code was causing anything with package A as a dependency to wait on all of A's extensions and weakdeps to finish before starting to pre-compile, even if it can't actually load those weakdeps (or the extensions themselves)
This would lead to a pre-compile ordering like:
Here
C
cannot pre-compile in parallel withExt {A,B}
andB
, because it has to wait forExt {A,B}
to finish pre-compiling. That happens even thoughC
has no way to load either of these.This change updates the pre-compile ordering to be more parallel, reflecting the true place where
Ext {A,B}
can be loaded:which allows
C
to compile in parallel withB
andExt{A,B}
Please review 55b40ed (that's the only commit w/ important changes)