-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
precompile: serialize the full edges graph #46920
Merged
Merged
Conversation
This file contains 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
vtjnash
force-pushed
the
jn/dump-ci-graph
branch
from
September 27, 2022 11:35
9e4b066
to
f12390c
Compare
vtjnash
force-pushed
the
jn/dump-ci-graph
branch
3 times, most recently
from
October 4, 2022 15:32
6cb9427
to
2c969ea
Compare
timholy
reviewed
Oct 4, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few suggestions for the logging part
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. This also avoids needing to interact with backedges at all. This uses the same algorithm now as #46749 for cycle convergence.
vtjnash
force-pushed
the
jn/dump-ci-graph
branch
from
October 4, 2022 19:18
2c969ea
to
8724481
Compare
timholy
approved these changes
Oct 5, 2022
timholy
added a commit
to timholy/SnoopCompile.jl
that referenced
this pull request
Oct 15, 2022
This updates to the logging format used by the most recent nightly build of Julia (1.9). While there has been a lot of churn in this area, there are reasons to hope that we're entering a period of stability: there are no known "holes" in our coverage after resolving the `invoke` issues (JuliaLang/julia#46010 and fixup PRs that came later), and the subsequent major rewrite of the invalidation logic (JuliaLang/julia#46920) suggests this format may have some durability.
timholy
added a commit
to timholy/SnoopCompile.jl
that referenced
this pull request
Oct 15, 2022
This updates to the logging format used by the most recent nightly build of Julia (1.9). While there has been a lot of churn in this area, there are reasons to hope that we're entering a period of stability: there are no known "holes" in our coverage after resolving the `invoke` issues (JuliaLang/julia#46010 and fixup PRs that came later), and the subsequent major rewrite of the invalidation logic (JuliaLang/julia#46920) suggests this format may have some durability. Co-authored-by: Rik Huijzer <[email protected]>
timholy
added a commit
to timholy/SnoopCompile.jl
that referenced
this pull request
Oct 15, 2022
This updates to the logging format used by the most recent nightly build of Julia (1.9). While there has been a lot of churn in this area, there are reasons to hope that we're entering a period of stability: there are no known "holes" in our coverage after resolving the `invoke` issues (JuliaLang/julia#46010 and fixup PRs that came later), and the subsequent major rewrite of the invalidation logic during deserialization (JuliaLang/julia#46920) suggests this format may have some durability. Co-authored-by: Rik Huijzer <[email protected]>
vtjnash
added a commit
that referenced
this pull request
Nov 29, 2022
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that. Validation is performed while they are represented as forward edges, so avoids needing to interact with backedges at all. This uses the same algorithm now as #46749 for cycle convergence. (cherry picked from commit fbd5a72)
KristofferC
added a commit
that referenced
this pull request
Dec 14, 2022
[release 1.8] backport of precompile: serialize the full edges graph (#46920)
KristofferC
added a commit
that referenced
this pull request
Dec 14, 2022
[release 1.8] backport of precompile: serialize the full edges graph (#46920)
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.
Previously, we would flatten the edges graph during serialization, to simplify the deserialization codes, but that now was adding complexity and confusion and uncertainty to the code paths. Clean that all up, so that we do not do that.
This uses the same algorithm now as #46749 for cycle convergence.
@timholy Sorry that I have probably broken a bit of SnoopCompile here. I didn't quite know what needed to be kept. But
jl_insert_backedges
is much smaller now, and handles everything, so I think it should be easy to figure out. Thanks for adding all of the excellent tests, as they were quite good at finding places I had shifted some array or where I hadn't completed the algorithm rewrite.