Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Prevent extensions from blocking parallel pre-compilation
Previously our precompilation code was causing any dependencies of a package A to wait on all of A's weakdeps to finish pre-compiling, even if it can't actually load those weakdeps (or the extension itself) This would lead to a pre-compile ordering like: ``` A B \ / \ Ext AB \ | / C / \ / D ``` Here, extension `C` cannot pre-compile in parallel with `Ext {A,B}` and `B`, because it has to wait for `Ext {A,B}` to finish pre-compiling. That happens even though `C` 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: ``` A B / \ / \ C Ext AB | \ | / \-- D --/ ``` which allows `C` to compile in parallel with `B` and `Ext{A,B}`
- Loading branch information