-
-
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
make JULIA_PRECOMPILE=0
doesn't skip precompilation of stdlibs anymore
#55181
Comments
I suspect this was broken by #53403, or something related to |
Dup of #51145? I don't think this ever "worked". |
On 532125d (just to pick up an old commit where I'm sure I used to use $ make cleanall; time make -j60
[...]
Sysimage built. Summary:
Base ──────── 18.201171 seconds 41.8207%
Stdlibs ───── 25.319237 seconds 58.1758%
Total ─────── 43.521916 seconds
JULIA usr/lib/julia/sys-o.a
Generating REPL precompile statements... 40/40
Executing precompile statements... 1835/1878
Precompilation complete. Summary:
Generation ── 77.660580 seconds 76.7357%
Execution ─── 23.544638 seconds 23.2643%
Total ─────── 101.205217 seconds
Outputting sysimage file...
Output ────── 119.377511 seconds
LINK usr/lib/julia/sys.so
real 6m16.258s
user 8m45.557s
sys 0m6.304s
$ make cleanall; time make -j60 JULIA_PRECOMPILE=0
Sysimage built. Summary:
Base ──────── 18.283613 seconds 41.7191%
Stdlibs ───── 25.540378 seconds 58.2774%
Total ─────── 43.825553 seconds
JULIA usr/lib/julia/sys-o.a
Outputting sysimage file...
Output ────── 63.089566 seconds
LINK usr/lib/julia/sys.so
real 3m38.520s
user 6m8.566s
sys 0m5.207s These were run after having done a full build to make sure all binaries dependencies are downloaded. Note that when using
As far as I understand, the fact is that
That issue predates the introduction of |
I think the meaning has changed and it's not clear what it should do. Perhaps we can agree and fix it. Two meanings I can think of:
I believe an issue with 1) is that it can cause stdlib caches to get put into the default depot, which can mess up where caches are looked for until those are deleted. Maybe we need two settings? |
Historically it's been more like 2) because stdlibs used to be in the sysimage, but I think you want 1)? |
I'm talking about precompilation for stdlibs that are not in the sysimage. Earlier when all stdlibs were in the sysimage all precompilation was done from generate_precompile but the stdlibs are precompiled from a separate make stage now. |
I have been tempted to pull in PrecompileTools for stdlibs, which would provide a preference based method to opt stdlibs out of their precompiled workloads. I think Jameson was against using environment variably since that is not tracked by the caching mechanism and so you could get stale cache results into your session by accident. |
@IanButterworth my goal was to have a "minimal" julia build that can be quickly compiled for git bisection, for those cases where you don't need to pull in (m)any stdlibs for a minimal reproducer. If anything, thanks to improved parallelism, on this machine building a recent commit on |
I still don't understand why this is not a dup of #51145. |
At least to me it was unclear whether we were talking about workloads or precompilation entirely. Seems like it's the latter so it is a dup |
Already in v1.11.0-alpha1,
make JULIA_PRECOMPILE=0
doesn't work anymore to skip precompilation of stdlibs. I'm confused because it looks to me the check injulia/contrib/generate_precompile.jl
Line 10 in 3290904
julia/sysimage.mk
Line 89 in 3290904
Confirmed by @Octogonapus on current
master
.The text was updated successfully, but these errors were encountered: