-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
GH-35596: [C++][CI] Improve compilation caching with PCG #35597
Conversation
Also warn/error out if non-deterministic compilation macros such as `__TIME__` are used (with gcc and clang at least).
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.
Sounds good, it seems this is not a feature used in arrow (or it's development)?
The |
Benchmark runs are scheduled for baseline = 8be70c1 and contender = f6e4479. f6e4479 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
['Python', 'R'] benchmarks have high level of regressions. |
…e#35597) ### Rationale for this change The PCG headers use the `__DATE__` and `__TIME__` macros, which makes builds non-deterministic: imneme/pcg-cpp#59 Deterministic builds are useful for a number of reasons. One is security audits of binary artifacts, another (that directly affects us) is making compilation caching as efficient as possible. Preprocessor-based compilation caching breaks when time-dependent macros are used. ### What changes are included in this PR? Remove the `struct static_arbitrary_seed` construct from PCG. Also, enable a gcc/clang warning that detects the use of non-deterministic preprocessor macros. ### Are these changes tested? Yes, by the additional warning (which is turned into an error in "checkin" warnings mode). ### Are there any user-facing changes? No. * Closes: apache#35596 Authored-by: Antoine Pitrou <[email protected]> Signed-off-by: Antoine Pitrou <[email protected]>
Rationale for this change
The PCG headers use the
__DATE__
and__TIME__
macros, which makes builds non-deterministic:imneme/pcg-cpp#59
Deterministic builds are useful for a number of reasons. One is security audits of binary artifacts, another (that directly affects us) is making compilation caching as efficient as possible. Preprocessor-based compilation caching breaks when time-dependent macros are used.
What changes are included in this PR?
Remove the
struct static_arbitrary_seed
construct from PCG.Also, enable a gcc/clang warning that detects the use of non-deterministic preprocessor macros.
Are these changes tested?
Yes, by the additional warning (which is turned into an error in "checkin" warnings mode).
Are there any user-facing changes?
No.