Skip to content

Fixes for FreeBSD support#1109

Merged
ararslan merged 1 commit into
masterfrom
aa/bsd
Jun 5, 2026
Merged

Fixes for FreeBSD support#1109
ararslan merged 1 commit into
masterfrom
aa/bsd

Conversation

@ararslan

@ararslan ararslan commented Jun 2, 2026

Copy link
Copy Markdown
Member

The changes are pretty trivial since we can reuse the Linux code paths.

I was trying this out locally and it got OOM killed, but it seemed to have been working up to that point. @giordano, you have access to a beefier FreeBSD system than I do, would you be willing to try out this branch? The example from the documentation works as expected.

Fixes #1079. Closes #1080.

@ararslan ararslan requested review from giordano and topolarity June 2, 2026 00:59
end

remaining_libs = Set(strip_prefix_suffix.(copy(all_libraries), Sys.isunix() ? "linux" : Sys.isapple() ? "mac" : "windows"))
remaining_libs = Set(strip_prefix_suffix.(copy(all_libraries), Sys.isapple() ? "mac" : Sys.isunix() ? "linux" : "windows"))

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note the change of order here. Since Sys.isunix() is true on macOS, the Sys.isapple() path is never executed, so we had been setting this argument to "linux" on macOS. That seemed unintentional, so I changed it (even though no edits to this line were otherwise needed within the scope of the PR) but I can change it back.

@ararslan

ararslan commented Jun 2, 2026

Copy link
Copy Markdown
Member Author

Ah, I just saw #1080. @KristofferC, should we close this in favor of that or vice versa?

@codecov

codecov Bot commented Jun 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.43%. Comparing base (f34698c) to head (4cf26b0).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1109      +/-   ##
==========================================
- Coverage   85.45%   85.43%   -0.02%     
==========================================
  Files           3        3              
  Lines         832      831       -1     
==========================================
- Hits          711      710       -1     
  Misses        121      121              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@giordano

giordano commented Jun 2, 2026

Copy link
Copy Markdown
Member

What should I check specifically?

@ararslan

ararslan commented Jun 3, 2026

Copy link
Copy Markdown
Member Author

My thought had just been to verify that this package's functionality works as expected, but I was actually able to do that myself (I think—see below). I realized that when I had tried create_sysimage earlier and it OOM'd, I was doing a pretty large and complex package. Using Example.jl as in the example in this package's documentation completed successfully. So I think you're off the hook for now, @giordano. 🙂 I appreciate your willingness to help!

A journey of self-discovery (click to expand, if interested)

While I was able to successfully compile an incremental system image, actually using it as described in the documentation behaved a bit strangely. Granted, this is my first time using PackageCompiler (at least post v1.0), so perhaps this is user error/misunderstanding, and it's also worth noting that I'm using a local build of Julia master rather than a tagged version. But when I started a new session using the built system image specified by -J, both the InteractiveUtils and REPL stdlibs had to precompile before the banner and prompt were shown. Base.loaded_modules showed Example, but using Example triggered precompilation of REPLExt, showed a bunch of lines prefixed by __JL_PRECOMP_VERBOSE_TIMING__, then said "Package Example not found, but a package named Example is available from a registry" with an installation prompt. Does this indicate an issue with... something that needs fixing?

EDIT: using Example actually had to be using .Example, which worked fine. I was still surprised by all of the additional compilation though, given that I did not set incremental=false. But maybe it's expected since my system image did not include REPL and InteractiveUtils?

EDIT 2: TIL REPL and InteractiveUtils are not in the default sysimage, so perhaps it makes sense that they're not included in the custom built one, thus triggering additional precompilation. So maybe all is well?

EDIT 3: Yeah I think it's fine

@ararslan

ararslan commented Jun 5, 2026

Copy link
Copy Markdown
Member Author

@topolarity, looks like you approved #1080, but that has merge conflicts. Can you take a look at this one? Should be ready to go, and we can close #1080.

@topolarity topolarity left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good to me

Thanks @ararslan

@ararslan ararslan merged commit ae30359 into master Jun 5, 2026
22 of 26 checks passed
@ararslan ararslan deleted the aa/bsd branch June 5, 2026 19:39
@ararslan

ararslan commented Jun 5, 2026

Copy link
Copy Markdown
Member Author

Any chance we can tag a new version too, or are there other things you wanted to get in before the next version?

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.

[Julia 1.12.2/PackageCompiler] : Unknown os

3 participants