Skip to content

[C++] Version 25.0.0 does not build with ARROW_SIMD_LEVEL=NONE #50542

Description

@lahwaacz

Describe the bug, including details regarding any error messages, version, and platform.

I tried to build the 25.0.0 release on Arch Linux but it failed with these errors:

cmake_options=(
    -B build
    -S apache-arrow-25.0.0/cpp
    -G Ninja
    -W no-dev
    -DCMAKE_BUILD_TYPE=RelWithDebInfo
    -DCMAKE_INSTALL_PREFIX="/usr"
    -DCMAKE_INSTALL_LIBDIR="lib"
    -DARROW_SIMD_LEVEL=NONE
    -DARROW_RUNTIME_SIMD_LEVEL=MAX
    -DARROW_DEPENDENCY_SOURCE=SYSTEM
    -DARROW_BUILD_STATIC=OFF
    -DARROW_BUILD_TESTS=ON
    -DARROW_BUILD_UTILITIES=ON
    -DARROW_COMPUTE=ON
    -DARROW_CSV=ON
    -DARROW_FILESYSTEM=ON
    -DARROW_FLIGHT=ON
    -DARROW_FLIGHT_SQL=ON
    -DARROW_GANDIVA=OFF
    -DARROW_HDFS=ON
    -DARROW_IPC=ON
    -DARROW_JEMALLOC=ON
    -DARROW_JSON=ON
    -DARROW_ORC=ON
    -DARROW_PARQUET=ON
    -DARROW_S3=ON
    -DARROW_SUBSTRAIT=ON
    -DARROW_TENSORFLOW=ON
    -DARROW_USE_GLOG=ON
    -DARROW_WITH_BROTLI=ON
    -DARROW_WITH_BZ2=ON
    -DARROW_WITH_LZ4=ON
    -DARROW_WITH_SNAPPY=ON
    -DARROW_WITH_ZLIB=ON
    -DARROW_WITH_ZSTD=ON
    -DPARQUET_REQUIRE_ENCRYPTION=ON
)
cmake "${cmake_options[@]}"
cmake --build build
...
FAILED: [code=1] src/arrow/CMakeFiles/arrow_util.dir/util/bpacking.cc.o
/usr/bin/c++ -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_WITH_TIMING_TESTS -DGFLAGS_IS_A_DLL=0 -DGLOG_USE_GFLAGS -DGLOG_USE_GLOG_EXPORT -DURI_STATIC_BUILD -I/build/arrow/src/build/src -I/build/arrow/src/apache-arrow-25.0.0/cpp/src -Wredundant-move -Wno-noexcept-type -Wno-self-move -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/arrow/src=/usr/src/debug/arrow -flto=auto -fdiagnostics-color=always  -Wall -Wno-conversion -Wno-sign-conversion -Wdate-time -Wimplicit-fallthrough -Wunused-result -fno-semantic-interposition  -O2 -g -DNDEBUG -ftree-vectorize -ggdb  -std=c++20 -fPIC -MD -MT src/arrow/CMakeFiles/arrow_util.dir/util/bpacking.cc.o -MF src/arrow/CMakeFiles/arrow_util.dir/util/bpacking.cc.o.d -o src/arrow/CMakeFiles/arrow_util.dir/util/bpacking.cc.o -c /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc
In file included from /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:23:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In static member function ‘static constexpr auto arrow::internal::{anonymous}::UnpackDynamicFunction<Uint>::targets()’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:39:49: error: ‘unpack_sse4_2’ is not a member of ‘arrow::internal::bpacking’ [-Wtemplate-body]
   39 |         ARROW_DISPATCH_TARGET_SSE4_2(&bpacking::unpack_sse4_2<Uint>)  //
      |                                                 ^~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:158:10: note: in definition of macro ‘ARROW_DISPATCH_TARGET_SSE4_2’
  158 |         (func),                                   \
      |          ^~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:39:67: error: expected primary-expression before ‘>’ token [-Wtemplate-body]
   39 |         ARROW_DISPATCH_TARGET_SSE4_2(&bpacking::unpack_sse4_2<Uint>)  //
      |                                                                   ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:158:10: note: in definition of macro ‘ARROW_DISPATCH_TARGET_SSE4_2’
  158 |         (func),                                   \
      |          ^~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:158:14: error: expected primary-expression before ‘)’ token [-Wtemplate-body]
  158 |         (func),                                   \
      |              ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:39:9: note: in expansion of macro ‘ARROW_DISPATCH_TARGET_SSE4_2’
   39 |         ARROW_DISPATCH_TARGET_SSE4_2(&bpacking::unpack_sse4_2<Uint>)  //
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = bool; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:54:71:   required from here
   54 | template void unpack<bool>(const uint8_t*, bool*, const UnpackOptions&);
      |                                                                       ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<bool>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = bool; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:54:71:
       54 | template void unpack<bool>(const uint8_t*, bool*, const UnpackOptions&);
          |                                                                       ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<bool>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<bool>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = bool; uint8_t = unsigned char]’:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:54:71:
       54 | template void unpack<bool>(const uint8_t*, bool*, const UnpackOptions&);
          |                                                                       ^
  • set ‘-fconcepts-diagnostics-depth=’ to at least 2 for more detail
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = unsigned char; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:55:77:   required from here
   55 | template void unpack<uint8_t>(const uint8_t*, uint8_t*, const UnpackOptions&);
      |                                                                             ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<unsigned char>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = unsigned char; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:55:77:
       55 | template void unpack<uint8_t>(const uint8_t*, uint8_t*, const UnpackOptions&);
          |                                                                             ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<unsigned char>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<unsigned char>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = short unsigned int; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:56:79:   required from here
   56 | template void unpack<uint16_t>(const uint8_t*, uint16_t*, const UnpackOptions&);
      |                                                                               ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<short unsigned int>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = short unsigned int; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:56:79:
       56 | template void unpack<uint16_t>(const uint8_t*, uint16_t*, const UnpackOptions&);
          |                                                                               ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<short unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<short unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = unsigned int; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:57:79:   required from here
   57 | template void unpack<uint32_t>(const uint8_t*, uint32_t*, const UnpackOptions&);
      |                                                                               ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<unsigned int>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = unsigned int; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:57:79:
       57 | template void unpack<uint32_t>(const uint8_t*, uint32_t*, const UnpackOptions&);
          |                                                                               ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc: In instantiation of ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = long unsigned int; uint8_t = unsigned char]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:58:79:   required from here
   58 | template void unpack<uint64_t>(const uint8_t*, uint64_t*, const UnpackOptions&);
      |                                                                               ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: error: template constraint failure for ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch’
   50 |   static const DynamicDispatch<UnpackDynamicFunction<Uint>> dispatch;
      |                                                             ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61: note: constraints not satisfied
  • /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h: In substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::internal::{anonymous}::UnpackDynamicFunction<long unsigned int>]’:
  • required from ‘void arrow::internal::unpack(const uint8_t*, Uint*, const UnpackOptions&) [with Uint = long unsigned int; uint8_t = unsigned char]’
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:50:61:
  • required from here
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/bpacking.cc:58:79:
       58 | template void unpack<uint64_t>(const uint8_t*, uint64_t*, const UnpackOptions&);
          |                                                                               ^
  • required for the satisfaction of ‘DynamicDispatchSpec<DynamicFunction>’ [with DynamicFunction = arrow::internal::<unnamed>::UnpackDynamicFunction<long unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:9:
      229 | concept DynamicDispatchSpec = requires {
          |         ^~~~~~~~~~~~~~~~~~~
  • in requirements  [with T = arrow::internal::<unnamed>::UnpackDynamicFunction<long unsigned int>]
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:229:31:
      229 | concept DynamicDispatchSpec = requires {
          |                               ^~~~~~~~~~
      230 |   typename T::FunctionType;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~
      231 |
          |
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      235 | };
          | ~
  • the required expression ‘T::targets()’ is invalid
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:
      232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
          |     ~~~~~~~~~~^~
  • nested requirement ‘(T::targets().size() > 0)’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:233:12:
      233 |   requires T::targets().size() > 0;
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
  • nested requirement ‘DispatchHasStatic<typename T::FunctionType>(T::targets())’ is not satisfied
    /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:234:12:
      234 |   requires DispatchHasStatic<typename T::FunctionType>(T::targets());
          |   ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FAILED: [code=1] src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal.cc.o
/usr/bin/c++ -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_WITH_TIMING_TESTS -DGFLAGS_IS_A_DLL=0 -DGLOG_USE_GFLAGS -DGLOG_USE_GLOG_EXPORT -DURI_STATIC_BUILD -I/build/arrow/src/build/src -I/build/arrow/src/apache-arrow-25.0.0/cpp/src -Wredundant-move -Wno-noexcept-type -Wno-self-move -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/arrow/src=/usr/src/debug/arrow -flto=auto -fdiagnostics-color=always  -Wall -Wno-conversion -Wno-sign-conversion -Wdate-time -Wimplicit-fallthrough -Wunused-result -fno-semantic-interposition  -O2 -g -DNDEBUG -ftree-vectorize -ggdb  -std=c++20 -fPIC -MD -MT src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal.cc.o -MF src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal.cc.o.d -o src/arrow/CMakeFiles/arrow_util.dir/util/byte_stream_split_internal.cc.o -c /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc
In file included from /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:18:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitDecodeSimd(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 2; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:46:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitDecodeDynamic<kNumStreams>::targets() [with int kNumStreams = 2]’
   46 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitDecodeDynamic<2>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:53:75:   required from ‘void arrow::util::internal::ByteStreamSplitDecodeSimdDispatch(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with int kNumStreams = 2; uint8_t = unsigned char; int64_t = long int]’
   53 |   static const DynamicDispatch<ByteStreamSplitDecodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:58:60:   required from here
   58 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:56:28: error: static assertion failed: The smallest SIMD size is 128 bits
   56 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:66:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
   66 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(2 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitDecodeSimd(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 4; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:46:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitDecodeDynamic<kNumStreams>::targets() [with int kNumStreams = 4]’
   46 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitDecodeDynamic<4>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:53:75:   required from ‘void arrow::util::internal::ByteStreamSplitDecodeSimdDispatch(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with int kNumStreams = 4; uint8_t = unsigned char; int64_t = long int]’
   53 |   static const DynamicDispatch<ByteStreamSplitDecodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:60:60:   required from here
   60 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:56:28: error: static assertion failed: The smallest SIMD size is 128 bits
   56 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:66:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
   66 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(4 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitDecodeSimd(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 8; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:46:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitDecodeDynamic<kNumStreams>::targets() [with int kNumStreams = 8]’
   46 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitDecodeDynamic<8>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:53:75:   required from ‘void arrow::util::internal::ByteStreamSplitDecodeSimdDispatch(const uint8_t*, int, int64_t, int64_t, uint8_t*) [with int kNumStreams = 8; uint8_t = unsigned char; int64_t = long int]’
   53 |   static const DynamicDispatch<ByteStreamSplitDecodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:62:60:   required from here
   62 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:56:28: error: static assertion failed: The smallest SIMD size is 128 bits
   56 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:66:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
   66 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(8 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitEncodeSimd(const uint8_t*, int, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 2; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:80:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitEncodeDynamic<kNumStreams>::targets() [with int kNumStreams = 2]’
   80 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitEncodeDynamic<2>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:88:75:   required from ‘void arrow::util::internal::ByteStreamSplitEncodeSimdDispatch(const uint8_t*, int, int64_t, uint8_t*) [with int kNumStreams = 2; uint8_t = unsigned char; int64_t = long int]’
   88 |   static const DynamicDispatch<ByteStreamSplitEncodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:93:60:   required from here
   93 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:178:28: error: static assertion failed: The smallest SIMD size is 128 bits
  178 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:189:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
  189 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(2 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:215:35: error: static assertion failed
  215 |   static_assert(kNumValuesInBatch > 0);
      |                 ~~~~~~~~~~~~~~~~~~^~~
  • the comparison reduces to ‘(0 > 0)’
In file included from /build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:21:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:221:44:   in ‘constexpr’ expansion of ‘arrow::internal::ReversePow2<int>(((int)kNumValuesInBatch))’
  221 |   constexpr int kNumStepsByte = ReversePow2(kNumValuesInBatch) + 1;
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
   66 |   for (T n = 0, y = 1; n <= (kByteLen * static_cast<T>(sizeof(T))); ++n, y = y * 2) {
      |                                                                              ~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:223:75: error: division by zero is not a constant expression
  223 |   constexpr int kNumStepsLarge = ReversePow2(static_cast<int>(kBatchSize) / kNumBytes);
      |                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:226:27: error: non-constant condition for static assertion
  226 |   static_assert(kNumSteps == ReversePow2(kBatchSize));
      |                 ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:232:32: error: size of array is not an integral constant-expression
  232 |     simd_batch stage[kNumSteps + 1][kNumStreams];
      |                      ~~~~~~~~~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitEncodeSimd(const uint8_t*, int, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 4; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:80:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitEncodeDynamic<kNumStreams>::targets() [with int kNumStreams = 4]’
   80 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitEncodeDynamic<4>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:88:75:   required from ‘void arrow::util::internal::ByteStreamSplitEncodeSimdDispatch(const uint8_t*, int, int64_t, uint8_t*) [with int kNumStreams = 4; uint8_t = unsigned char; int64_t = long int]’
   88 |   static const DynamicDispatch<ByteStreamSplitEncodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:95:60:   required from here
   95 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:178:28: error: static assertion failed: The smallest SIMD size is 128 bits
  178 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:189:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
  189 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(4 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:215:35: error: static assertion failed
  215 |   static_assert(kNumValuesInBatch > 0);
      |                 ~~~~~~~~~~~~~~~~~~^~~
  • the comparison reduces to ‘(0 > 0)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:221:44:   in ‘constexpr’ expansion of ‘arrow::internal::ReversePow2<int>(((int)kNumValuesInBatch))’
  221 |   constexpr int kNumStepsByte = ReversePow2(kNumValuesInBatch) + 1;
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
   66 |   for (T n = 0, y = 1; n <= (kByteLen * static_cast<T>(sizeof(T))); ++n, y = y * 2) {
      |                                                                              ~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:223:75: error: division by zero is not a constant expression
  223 |   constexpr int kNumStepsLarge = ReversePow2(static_cast<int>(kBatchSize) / kNumBytes);
      |                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:226:27: error: non-constant condition for static assertion
  226 |   static_assert(kNumSteps == ReversePow2(kBatchSize));
      |                 ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:232:32: error: size of array is not an integral constant-expression
  232 |     simd_batch stage[kNumSteps + 1][kNumStreams];
      |                      ~~~~~~~~~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h: In instantiation of ‘void arrow::util::internal::ByteStreamSplitEncodeSimd(const uint8_t*, int, int64_t, uint8_t*) [with Arch = xsimd::sse4_2; int kNumStreams = 8; uint8_t = unsigned char; int64_t = long int]’:
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:80:5:   required from ‘static constexpr auto arrow::util::internal::ByteStreamSplitEncodeDynamic<kNumStreams>::targets() [with int kNumStreams = 8]’
   80 |     };
      |     ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/dispatch_internal.h:232:15:   required by substitution of ‘template<class DynamicFunction>  requires  DynamicDispatchSpec<DynamicFunction> class arrow::internal::DynamicDispatch [with DynamicFunction = arrow::util::internal::ByteStreamSplitEncodeDynamic<8>]’
  232 |   { T::targets() } -> DynamicDispatchTargets<typename T::FunctionType>;
      |     ~~~~~~~~~~^~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:88:75:   required from ‘void arrow::util::internal::ByteStreamSplitEncodeSimdDispatch(const uint8_t*, int, int64_t, uint8_t*) [with int kNumStreams = 8; uint8_t = unsigned char; int64_t = long int]’
   88 |   static const DynamicDispatch<ByteStreamSplitEncodeDynamic<kNumStreams>> dispatch;
      |                                                                           ^~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.cc:97:60:   required from here
   97 |                                                    uint8_t*);
      |                                                            ^
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:178:28: error: static assertion failed: The smallest SIMD size is 128 bits
  178 |   static_assert(kBatchSize >= 16, "The smallest SIMD size is 128 bits");
      |                 ~~~~~~~~~~~^~~~~
  • the comparison reduces to ‘(1 >= 16)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:189:29: error: static assertion failed: The algorithm works when the number of streams is smaller than the SIMD batch size.
  189 |   static_assert(kNumStreams <= kBatchSize,
      |                 ~~~~~~~~~~~~^~~~~~~~~~~~~
  • the comparison reduces to ‘(8 <= 1)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:215:35: error: static assertion failed
  215 |   static_assert(kNumValuesInBatch > 0);
      |                 ~~~~~~~~~~~~~~~~~~^~~
  • the comparison reduces to ‘(0 > 0)’
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:221:44:   in ‘constexpr’ expansion of ‘arrow::internal::ReversePow2<int>(((int)kNumValuesInBatch))’
  221 |   constexpr int kNumStepsByte = ReversePow2(kNumValuesInBatch) + 1;
      |                                 ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
   66 |   for (T n = 0, y = 1; n <= (kByteLen * static_cast<T>(sizeof(T))); ++n, y = y * 2) {
      |                                                                              ~~^~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/math_internal.h:66:80: error: overflow in constant expression [-fpermissive]
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:223:75: error: division by zero is not a constant expression
  223 |   constexpr int kNumStepsLarge = ReversePow2(static_cast<int>(kBatchSize) / kNumBytes);
      |                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:226:27: error: non-constant condition for static assertion
  226 |   static_assert(kNumSteps == ReversePow2(kBatchSize));
      |                 ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/build/arrow/src/apache-arrow-25.0.0/cpp/src/arrow/util/byte_stream_split_internal.h:232:32: error: size of array is not an integral constant-expression
  232 |     simd_batch stage[kNumSteps + 1][kNumStreams];
      |                      ~~~~~~~~~~^~~

Component(s)

C++

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions