-
Notifications
You must be signed in to change notification settings - Fork 4k
GH-43095: [C++] Update bundled vendor/datetime to support for building with libc++ and C++20 #43094
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
Conversation
|
Thanks for opening a pull request! If this is not a minor PR. Could you open an issue for this pull request on GitHub? https://github.com/apache/arrow/issues/new/choose Opening GitHub issues ahead of time contributes to the Openness of the Apache Arrow project. Then could you also rename the pull request title in the following format? or In the case of PARQUET issues on JIRA the title also supports: See also: |
|
|
|
Hmm. Our C++20 CI job doesn't report this error: https://github.com/ursacomputing/crossbow/actions/runs/9736169142/job/26866418106 What is the difference between the job and you? g++ and clang++? |
|
Thank you for the quick response! I can reproduce the behaviour like this Where Looks like |
|
And it doesn't look like they are coming to libstdc++ soon, this compiles with gcc trunk, but fails when you select clang and use libc++: https://godbolt.org/z/ehnTdsK1e Somehow reproducing it like this only works for clang-17, but the problem is also there for clang-18. |
|
OK. |
|
The library is part of the standard for c++ 20 and some compilers now, so I think the proper fix would be not to use it anymore. |
How can we do this? Does
What does "this" refer? Changing our bundled date library directly? If so, it's not acceptable. We don't want to maintain these changes in our side. We should upstream these changes. |
|
I've bumped the version of |
|
The upstream already has changes for this, right? |
|
Yep, I think this is the relevant PR: HowardHinnant/date#827 |
kou
left a comment
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.
+1
|
After merging your PR, Conbench analyzed the 4 benchmarking runs that have been run so far on merge-commit 7184150. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about 4 possible false positives for unstable benchmarks that are known to sometimes produce them. |
|
Hey, |
|
We'll release 18.0.0 in this month. Then conan will add support for 18.0.0. |
Rationale for this change
We can't build with libc++ and C++20:
CMake command line:
cmake -DARROW_ENABLE_THREADING=OFF \ -DARROW_JEMALLOC=OFF \ -DCMAKE_CXX_STANDARD=20 \ -DCXX_ONLY_FLAGS="-stdlib=libc++" \ -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake --preset ninja-debug-minimal ../cpp/Error log:
What changes are included in this PR?
Update the bundled vendor/datetime because the upstream has changes for this case:
HowardHinnant/date#827
Are these changes tested?
Are there any user-facing changes?