jonkeane commented on PR #45145: URL: https://github.com/apache/arrow/pull/45145#issuecomment-2567098682
This isn't working yet — the change(s) needed aren't just substituting. Looking at [some examples](https://github.com/ComputationalRadiationPhysics/redGrapes/pull/83/files) and https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2869r0.pdf I need to change the type of result to be wrapped by `std::atomic<>` https://github.com/jonkeane/arrow/blob/8b110388819afc433bd9bdbe62c6d1c5a93dc3f8/cpp/src/arrow/array/array_nested.cc#L1080-L1081 But haven't quite found the right place for that yet. Separately + on the CRAN front, I actually think we might be ok to submit something not compatible with C++20 (but would love a double check of my understanding here 🙏 @kou ): from the [log output](https://www.stats.ox.ac.uk/pub/bdr/gcc15/arrow.out) I see at the end: ``` Failing compile command: g++-15 -E -I/usr/local/include -g -O2 -Wall -pedantic -mtune=native -Wno-ignored-attributes -Wno-parentheses -Wp,-D_FORTIFY_SOURCE=3 -fexceptions -fstack-protector-strong -fstack-clash-protection -fcf-protection -std=gnu++17 -xc++ - ``` Am I reading the `-std=gnu++17` part correctly that it's using the C++17 standard (with GNU extensions) and _not_ C++20? ~I also tried building locally with GCC15 + `CMAKE_CXX_STANDARD=17` to see if that built ok.~ I ended up making a PR to run this on crossbow https://github.com/apache/arrow/pull/45150 and it did get past the `atomic` issue, but there is a slightly different deprecation treated as an error in google test (Though for CRAN purposes, those aren't built, so that might be ok) ``` FAILED: src/arrow/CMakeFiles/arrow_testing_objlib.dir/io/test_common.cc.o /usr/local/bin/sccache /usr/lib/ccache/g++-15 -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_HAVE_SSE4_2 -DARROW_TESTING_EXPORTING -DARROW_WITH_TIMING_TESTS -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROCESS_HAVE_V2 -DBOOST_PROCESS_NEED_SOURCE -DBOOST_SYSTEM_DYN_LINK -DBOOST_SYSTEM_NO_LIB -I/build/cpp/src -I/arrow/cpp/src -I/arrow/cpp/src/generated -isystem /arrow/cpp/thirdparty/flatbuffers/include -Wredundant-move -Wno-noexcept-type -Wno-self-move -fdiagnostics-color=always -Wall -Wno-conversion -Wno-sign-conversion -Wdate-time -Wimplicit-fallthrough -Wunused-result -fno-semantic-interposition -msse4.2 -g -Werror -O0 -ggdb -g1 -std=c++17 -fPIC -DGTEST_HAS_PTHREAD=1 -MD -MT src/arrow/CMakeFiles/arrow_testing_objlib.dir/io/test_common.cc.o -MF src/arrow/CMakeFiles/arrow_testing_objlib.dir/io/test_common.cc.o.d -o src/arrow/CMakeFiles/arrow_testing _objlib.dir/io/test_common.cc In file included from /usr/include/gtest/internal/gtest-port.h:295, from /usr/include/gtest/gtest-message.h:57, from /usr/include/gtest/gtest-assertion-result.h:46, from /usr/include/gtest/gtest.h:63, from /arrow/cpp/src/arrow/testing/gtest_util.h:33, from /arrow/cpp/src/arrow/io/test_common.cc:33: /usr/include/c++/15/ciso646:46:4: error: #warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" [-Werror=cpp] 46 | # warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" | ^~~~~~~ cc1plus: all warnings being treated as errors [560/1252] Building CXX object src/arrow/CMakeFiles/arrow_testing_objlib.dir/ipc/test_common.cc.o FAILED: src/arrow/CMakeFiles/arrow_testing_objlib.dir/ipc/test_common.cc.o /usr/local/bin/sccache /usr/lib/ccache/g++-15 -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_HAVE_SSE4_2 -DARROW_TESTING_EXPORTING -DARROW_WITH_TIMING_TESTS -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROCESS_HAVE_V2 -DBOOST_PROCESS_NEED_SOURCE -DBOOST_SYSTEM_DYN_LINK -DBOOST_SYSTEM_NO_LIB -I/build/cpp/src -I/arrow/cpp/src -I/arrow/cpp/src/generated -isystem /arrow/cpp/thirdparty/flatbuffers/include -Wredundant-move -Wno-noexcept-type -Wno-self-move -fdiagnostics-color=always -Wall -Wno-conversion -Wno-sign-conversion -Wdate-time -Wimplicit-fallthrough -Wunused-result -fno-semantic-interposition -msse4.2 -g -Werror -O0 -ggdb -g1 -std=c++17 -fPIC -DGTEST_HAS_PTHREAD=1 -MD -MT src/arrow/CMakeFiles/arrow_testing_objlib.dir/ipc/test_common.cc.o -MF src/arrow/CMakeFiles/arrow_testing_objlib.dir/ipc/test_common.cc.o.d -o src/arrow/CMakeFiles/arrow_testi ng_objlib.dir/ipc/test_common In file included from /usr/include/gtest/internal/gtest-port.h:295, from /usr/include/gtest/gtest-message.h:57, from /usr/include/gtest/gtest-assertion-result.h:46, from /usr/include/gtest/gtest.h:63, from /arrow/cpp/src/arrow/testing/gtest_util.h:33, from /arrow/cpp/src/arrow/testing/builder.h:30, from /arrow/cpp/src/arrow/ipc/test_common.cc:38: /usr/include/c++/15/ciso646:46:4: error: #warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" [-Werror=cpp] 46 | # warning "<ciso646> is deprecated in C++17, use <version> to detect implementation-specific macros" | ^~~~~~~ cc1plus: all warnings being treated as errors [561/1252] Building CXX object src/arrow/CMakeFiles/arrow_objlib.dir/scalar.cc.o [562/1252] Building CXX object src/arrow/CMakeFiles/arrow_objlib.dir/c/bridge.cc.o [563/1252] Building CXX object src/arrow/CMakeFiles/arrow_objlib.dir/type.cc.o ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
