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

pyoxidizer: avoid pyo3 recompiles when Python config has not changed #471

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dae
Copy link
Contributor

@dae dae commented Oct 24, 2021

Whenever the pyo3 config file has its modification time bumped, the
pyo3 crates and python-oxidized-importer get recompiled, which adds
to the build time. This change brings an incremental 'pyoxidizer build'
time down from ~24 seconds to ~10 seconds.

This only makes sense in conjunction with something like #468, as
otherwise all Rust crates get recompiled each time anyway.

Whenever the pyo3 config file has its modification time bumped, the
pyo3 crates and python-oxidized-importer get recompiled, which adds
to the build time. This change brings my incremental build time down
from ~24 seconds to ~10 seconds
@dae
Copy link
Contributor Author

dae commented Oct 24, 2021

Presented mainly for discussion - I will probably end up going with #466 for now instead, and this doesn't help there, as the artifacts don't seem to get regenerated by run-build-script if they're not removed first. I ended up with a different workaround of copying the generated pyo3 config into a separate folder, and preserving its mtime when it was unchanged, then pointing PYO3_CONFIG_FILE to that other location. It allows me to rebuild the artifacts each time, without the extra crate rebuilding. Compared to 'pyoxidizer build', an incremental build is ~8s.

@indygreg indygreg force-pushed the main branch 3 times, most recently from 8f998b7 to 5c5ac33 Compare December 1, 2021 03:16
@indygreg indygreg force-pushed the main branch 2 times, most recently from 5e0524b to 789c62e Compare May 31, 2022 04:07
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.

1 participant