Skip to content

Conversation

vtjnash
Copy link
Member

@vtjnash vtjnash commented Mar 13, 2025

Add back support for -debug builds and define ability to use shared
library builds more places in the file.

Fix #57675

@vtjnash vtjnash added the building Build system, or building Julia or its dependencies label Mar 13, 2025
@vtjnash vtjnash force-pushed the jn/sysimg-build-debug branch from cf56062 to d918023 Compare March 13, 2025 13:53
Add back support for -debug builds and define ability to use shared
library builds more places.
@vtjnash vtjnash force-pushed the jn/sysimg-build-debug branch from d918023 to bb34b67 Compare March 14, 2025 14:29
@vtjnash vtjnash added the merge me PR is reviewed. Merge when all tests are passing label Mar 14, 2025
Compiled files load much faster, in the end, generally saving the extra
time needed to generate them. This appears to make the last stage in the
build about a minute faster.
@vtjnash vtjnash force-pushed the jn/sysimg-build-debug branch from bb34b67 to 6b67970 Compare March 14, 2025 15:01
@vtjnash vtjnash merged commit 51da540 into master Mar 14, 2025
5 of 7 checks passed
@vtjnash vtjnash deleted the jn/sysimg-build-debug branch March 14, 2025 18:56
@giordano giordano removed the merge me PR is reviewed. Merge when all tests are passing label Mar 14, 2025
@topolarity
Copy link
Member

This seems to have impacted pre-compilation statements in the build.

With PR:

Collecting and executing precompile statements
└ Collect (Basic:261) => Execute ✓ 340
Precompilation complete. Summary:
Total ───────   4.582742 seconds

Without PR:

Collecting and executing precompile statements
└ Collect (Basic:1189) => Execute ✓ 1258
Precompilation complete. Summary:
Total ───────  38.161908 seconds

@vtjnash
Copy link
Member Author

vtjnash commented Mar 15, 2025

Good, that was the goal

@vtjnash
Copy link
Member Author

vtjnash commented Mar 15, 2025

We appear to have saved over 30 seconds there doing useless work

@topolarity
Copy link
Member

Oh, that's great! I wasn't expecting "used shared libraries" to affect what we're pre-compiling.

What's the bit that helps?

@Keno
Copy link
Member

Keno commented Mar 17, 2025

I think this now requires a full basecompiler build with debug just in order to get a debug build of julia. It used to be that it could just generate the .so from the existing sysimage. I think that's a significant usability regression because that takes many, many minutes.

@vtjnash
Copy link
Member Author

vtjnash commented Mar 17, 2025

It used to be that it could just generate the .so from the existing sysimage.

It still could, even though this currently makes the choice towards being more reliable (since the previous design could be convinced--with a good bit of effort--to crash if used with -j), we can link the same .a file against as many different julia binaries as we want. (my normal workflow is to do cp usr/lib/julia/foo.a usr/lib/julia/foo-debug.a as part of make debug, for those rare cases where FORCE_ASSERTIONS wasn't already enough, and has been my personal workflow for years since it also solved the problem that generating the final .so is also slow and takes many, many minutes too)

I think that's a significant usability regression because that takes many, many minutes.

That is mostly an implementation regression from the bindings changes though (bootstrapping relies very heavily on some features that are currently broken due to the bindings changings), which should be improved upon soon

@gbaraldi gbaraldi added the backport 1.12 Change should be backported to release-1.12 label Aug 15, 2025
This was referenced Aug 18, 2025
@topolarity
Copy link
Member

@gbaraldi Do you know why you marked this for back-port?

I know the motivation for #57500, but not for this bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 1.12 Change should be backported to release-1.12 building Build system, or building Julia or its dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Debug build failing on master.
5 participants