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

Identify invalidating blockers of precompilation #262

Merged
merged 4 commits into from
Aug 20, 2021

Conversation

timholy
Copy link
Owner

@timholy timholy commented Aug 19, 2021

This allows one to identify the particular invalidations that block
precompilation of particular MethodInstances.

I am not 100% sure this is right. In particular, it might be too conservative; maybe one should SnoopCompile.getrroot(hits[i]) to see the real impact? But I checked whether the root CodeInstances are there in the precompile cache, and they seem to be. So my best guess is that this is painting an accurate picture as-is. I might let this sit on master for a few days before making a release.

CC @ChrisRackauckas. It seems to suggest that invalidation is not your first-order problem with SciML/ModelingToolkit.jl#1215, as you seemed to expect. But I wanted to get this tool out there in some form.

This allows one to identify the particular invalidations that block
precompilation of particular MethodInstances.
@codecov
Copy link

codecov bot commented Aug 19, 2021

Codecov Report

Merging #262 (f991a4e) into master (8b6bc60) will increase coverage by 1.41%.
The diff coverage is 98.27%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #262      +/-   ##
==========================================
+ Coverage   85.16%   86.58%   +1.41%     
==========================================
  Files          15       16       +1     
  Lines        1807     1878      +71     
==========================================
+ Hits         1539     1626      +87     
+ Misses        268      252      -16     
Impacted Files Coverage Δ
src/SnoopCompile.jl 100.00% <ø> (ø)
src/invalidations.jl 90.28% <96.55%> (+1.89%) ⬆️
src/invalidation_and_inference.jl 100.00% <100.00%> (ø)
src/parcel_snoopi_deep.jl 89.13% <100.00%> (+1.31%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8b6bc60...f991a4e. Read the comment docs.

@timholy
Copy link
Owner Author

timholy commented Aug 20, 2021

I should say that for this to work well you need to be running at least Julia 1.8.0-DEV.368 (you need JuliaLang/julia#41913)

@timholy timholy merged commit 23c8e93 into master Aug 20, 2021
@timholy timholy deleted the teh/precompile_blockers branch August 20, 2021 13:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant