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

Implement a pre-build configuration process and datatype #929

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

sjkelly
Copy link
Collaborator

@sjkelly sjkelly commented Mar 17, 2024

This is intended to be an API-compatible refactor to
make future extensibility and configuration of
PackageCompiler.jl far simpler. The core idea is
to implement a configuration process, and corresponding
output datatype to be consumed by the build process.

This conceptually splits the process of building sysimg/app/libs,
from the high-level logic determining names, build tools, flags,
etc. The benefit of this is that it immediately commonizes
code that was duplicated amongst the three of: create_sysimage,
create_library, and create_app. It will also
make it far simpler to allow for configuration and propagation of flags
like ldflags and cflags which are currently not
easily exposed in the build process.

This is a rough sketch of the idea, and so far the API seems
to be preserved acceptably. Feedback and design
input would be much appreciated. I suspect the Conf
type may need some indication of mode since
some terms are overloaded and may not make sense to
define in all contexts.

Copy link

codecov bot commented Mar 17, 2024

Codecov Report

Attention: Patch coverage is 96.15385% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 85.19%. Comparing base (8cd96a1) to head (15b3656).

Files Patch % Lines
src/PackageCompiler.jl 96.15% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #929      +/-   ##
==========================================
+ Coverage   84.62%   85.19%   +0.57%     
==========================================
  Files           3        3              
  Lines         826      831       +5     
==========================================
+ Hits          699      708       +9     
+ Misses        127      123       -4     

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

This is intended to be an API-compatible refactor to
make future extensibility and configuration of
PackageCompiler.jl far simpler. The core idea is
to implement a configuration process, and corresponding
output datatype to be consumed by the build process.

This conceptually splits the process of building sysimg/app/libs,
from the high-level logic determining names, build tools, flags,
etc. The benefit of this is that it immediately commonizes
code that was duplicated amongst the three of: `create_sysimage`,
`create_library`, and `create_app`. It will also
make it far simpler to allow for configuration and propagation of flags
like `ldflags` and `cflags` which are currently not
easily exposed in the build process.

This is a rough sketch of the idea, and so far the API seems
to be preserved acceptably. Feedback and design
input would be much appreciated. I suspect the `Conf`
type may need some indication of `mode` since
some terms are overloaded and may not make sense to
define in all contexts.
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.

None yet

1 participant