-
-
Notifications
You must be signed in to change notification settings - Fork 175
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
Proposal: Force recompilation of all dependencies #195
base: main
Are you sure you want to change the base?
Conversation
@kmod |
True, that's not how users install packages, so the package installation process would be a bit different between the benchmarks and users. But in the common case the actual running of the benchmarks shouldn't be affected, and in the rare case that the benchmarks are affected by whether or not binary packages are installed I'd argue that that's when we would want this behavior. |
Great observation! tl;dr +1, but add an option to disable The kinds of benchmarks where dependencies matter are typically workload-oriented (macro benchmarks). We want to be able to communicate a performance delta to users relative to how they should expect their Python workload to perform. So with that in mind I'd lean toward avoiding That said, I get what you are saying about apples-to-apples comparisons for Python implementations (or distros). We also run into this with running the benchmarks against CPython main: few dependencies are available on PyPI. So I agree we don't want benchmark dependencies to dictate any difference in performance between result sets. Weighing the two sides, I'm in favor of the latter, which you are proposing. So +1. There is still a use for using pre-built extensions, though, so it would be good for pyperformance to allow us to opt out of |
Also, presumably all the dependencies build on all our tested versions, based on the CI results. |
There is, in general, not a requirement that source packages compile to the same thing as available binary packages. It's rare, but this is one thing that can end up causing differences in benchmark results between two Python distributions, if one has binary packages and one does not. Forcing all dependencies to compile from source eliminates this potential difference. The only case I know of is mypy, which ships a more-optimized binary package than what their source package compiles to.
No problem, I added a Anyway, let me know if there's anything else I can do to make this more acceptable. I'm not sure what to do about the test failures -- in my view these are legitimate issues (that these interpreters are unable to build these dependencies) that are being uncovered by this PR. I think we could add |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There is, in general, not a requirement that source packages compile to the same thing as available binary packages. It's rare, but this is one thing that can end up causing differences in benchmark results between two Python distributions, if one has binary packages and one does not. Forcing all dependencies to compile from source eliminates this potential difference.
The only case I know of is mypy, which ships a more-optimized binary package than what their source package compiles to.