Cut short extension load cycles during precompilation#53112
Closed
IanButterworth wants to merge 3 commits intoJuliaLang:masterfrom
Closed
Cut short extension load cycles during precompilation#53112IanButterworth wants to merge 3 commits intoJuliaLang:masterfrom
IanButterworth wants to merge 3 commits intoJuliaLang:masterfrom
Conversation
Member
|
This seems better than the status quo so we should try it out imo. |
Member
|
Should this be backported to 1.10? |
3d2e2bd to
0f075f1
Compare
Member
Author
|
@KristofferC I've made this a |
Member
|
I guess we should add a test. Should be enough to generate |
KristofferC
reviewed
Feb 9, 2024
80aef1e to
33d9e2a
Compare
Member
Author
|
Not needed as we now skip cycles in extensions by not precompiling those extensions until loading time (where it somehow works) re. #53972 cc. @KristofferC |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Depends on
Builds on #53111
Fixes #53081
Cuts the cycle short and highlights when two or more extensions are each triggered during the precompilation of eachother, which causes a dependency cycle in nested precompilation that was seen in #53081.
Note if this is considered safe, the
@warns could just be@debugs and the user doesn't need to be notified.i.e. on master this confusing error occurs, and it's actually coming from a double nested precompile worker precompiling
SymbolicsForwardDiffExtbut trying to loadSymbolicsPreallocationToolsExtwhich the parent worker is in the process of precompilingWith this PR
The cycle issue being this strong dependency branch
triggers both of these Symbolics extensions without the need for any further packages present.
So they both get triggered during the precompilation job of the other one.
Note that
FillArraysPDMatsExtdoesn't error on master likeSymbolicsPreallocationToolsExtdoes. Not sure why not.cc. @ChrisRackauckas