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

Migrate from SnoopPrecompile to PrecompileTools #347

Merged
merged 1 commit into from
Apr 25, 2023
Merged

Migrate from SnoopPrecompile to PrecompileTools #347

merged 1 commit into from
Apr 25, 2023

Conversation

timholy
Copy link
Member

@timholy timholy commented Apr 25, 2023

This pull request migrates the package from SnoopPrecompile to PrecompileTools.
PrecompileTools is nearly a drop-in replacement except that there are changes in naming and how developers locally disable precompilation (to make their development workflow more efficient). These changes are described in PrecompileTool's enhanced documentation, which also includes instructions for users on how to set up custom "Startup" packages, handling precompilation tasks that are not amenable to workloads, and tips for troubleshooting.

Why the new package? It meets several goals:

  • The name "SnoopPrecompile" was easily confused with "SnoopCompile," a package designed for analyzing rather than enacting precompilation.
  • SnoopPrecompile/PrecompileTools has become (directly or indirectly) a dependency for much of the Julia ecosystem, a trend that seems likely to grow with time. It makes sense to host it in a more central location than one developer's personal account.
  • As Julia's own stdlibs migrate to become independently updateable (true for DelimitedFiles in Julia 1.9, with others anticipated for Julia 1.10), several of them would like to use PrecompileTools for high-quality precompilation. That requires making PrecompileTools its own "upgradable stdlib."
  • We wanted to change the use of Preferences to make packages more independent of one another. Since this would have been a breaking change, it seemed like a good opportunity to fix other issues, too.

For more information and discussion, see this discourse post.

@codecov
Copy link

codecov bot commented Apr 25, 2023

Codecov Report

Patch coverage: 100.00% and project coverage change: +0.39 🎉

Comparison is base (c367853) 82.94% compared to head (471503f) 83.34%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #347      +/-   ##
==========================================
+ Coverage   82.94%   83.34%   +0.39%     
==========================================
  Files          24       24              
  Lines        3302     3326      +24     
==========================================
+ Hits         2739     2772      +33     
+ Misses        563      554       -9     
Impacted Files Coverage Δ
src/generic/broadcast.jl 96.09% <100.00%> (+0.88%) ⬆️
src/precompile.jl 100.00% <100.00%> (ø)

... and 3 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@jishnub jishnub merged commit 7988daf into JuliaLinearAlgebra:master Apr 25, 2023
@dlfivefifty
Copy link
Member

I'm slightly bemused that

https://github.com/JuliaData/DelimitedFiles.jl

Has an empty README... would have expected an explanation whats going on.

@timholy timholy deleted the teh/precompiletools branch April 25, 2023 10:39
@timholy
Copy link
Member Author

timholy commented Apr 25, 2023

Well, it has docs. And this change isn't specifically about DelimitedFiles (so there's no reason it should have a readme explaining about PrecompileTools), as I'm not sure it's one of the stdlibs for which there are latency concerns.

On Julia master most of the stdlibs have moved out. Pkg will have terrible latency without PrecompileTools, so I know it's one of the targets.

@dlfivefifty
Copy link
Member

I mean that I was completely unaware parts of StdLib had been moved out, and as a user using DelimitedFiles still works as in v1.8. So I was hoping to read the README to better understand what is going on

@timholy
Copy link
Member Author

timholy commented Apr 25, 2023

Gotcha. The 1.9 release announcement blog will explain more (when 1.9 is released).

@jishnub
Copy link
Member

jishnub commented Apr 25, 2023

Looks related: JuliaLang/julia#49479

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.

3 participants