Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent extensions from blocking parallel pre-compilation #55910

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Commits on Sep 30, 2024

  1. Configuration menu
    Copy the full SHA
    37ff4af View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6fe8e88 View commit details
    Browse the repository at this point in the history
  3. 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}`
    topolarity committed Sep 30, 2024
    Configuration menu
    Copy the full SHA
    55b40ed View commit details
    Browse the repository at this point in the history