intel / cpp-std-extensions

Extensions to the C++ standard library. This library implements polyfills to enable library functionality from later versions of C++ to be used in earlier versions. It also implements some nonstandard but useful extras.
https://intel.github.io/cpp-std-extensions/
Boost Software License 1.0
62 stars 9 forks source link

Error compiling tuple.hpp or tuple_algorithms.hpp on arm64/aarch64 while attempting to test #168

Open Mark-Dunn-OIL opened 5 days ago

Mark-Dunn-OIL commented 5 days ago

Running on a Raspberry Pi 4 (arm64 or aarch64 depending how you squint) and attempting to test prior to evaluation

My environment is:

uname -a
Linux Pi1 6.6.51+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64 GNU/Linux
gcc --version
gcc (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
cmake --version
cmake version 3.31.20241031-g7e0d3b1

CMake suite maintained and supported by Kitware (kitware.com/cmake).

The CMake was compiled (today) because the default supplied was not sufficient for 'cpp-baremetal-senders-and-receivers' library. I then started building with:

cmake -B build
cmake --build  build

And the build failed at:

[ 49%] Building CXX object test/CMakeFiles/algorithm_test.dir/algorithm.cpp.o
In file included from /home/mark/pico/cpp-std-extensions/include/stdx/algorithm.hpp:5,
                 from /home/mark/pico/cpp-std-extensions/test/algorithm.cpp:1:
/home/mark/pico/cpp-std-extensions/include/stdx/tuple.hpp: In instantiation of ‘struct stdx::v1::detail::tuple_impl<std::integer_sequence<long unsigned int>, stdx::v1::detail::index_function_list<> >’:
/home/mark/pico/cpp-std-extensions/include/stdx/tuple.hpp:401:7:   required from ‘class stdx::v1::tuple<>’
/home/mark/pico/cpp-std-extensions/include/stdx/tuple_algorithms.hpp:44:30:   required from here
/home/mark/pico/cpp-std-extensions/include/stdx/tuple.hpp:351:31: error: mismatched argument pack lengths while expanding ‘equality_comparable_with<Ts, Us>’
  351 |         requires(... and std::equality_comparable_with<Ts, Us>)
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
gmake[2]: *** [test/CMakeFiles/algorithm_test.dir/build.make:79: test/CMakeFiles/algorithm_test.dir/algorithm.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1857: test/CMakeFiles/algorithm_test.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2

Similarly, failed cpp-baremetal-senders-and-receivers at:

[ 52%] Building CXX object test/CMakeFiles/allocator_test.dir/allocator.cpp.o
In file included from /home/mark/pico/cpp-baremetal-senders-and-receivers/include/async/env.hpp:4,
                 from /home/mark/pico/cpp-baremetal-senders-and-receivers/include/async/concepts.hpp:4,
                 from /home/mark/pico/cpp-baremetal-senders-and-receivers/test/detail/common.hpp:4,
                 from /home/mark/pico/cpp-baremetal-senders-and-receivers/test/allocator.cpp:1:
/home/mark/pico/cpp-baremetal-senders-and-receivers/build/_deps/cpp-std-extensions-src/include/stdx/tuple.hpp: In instantiation of ‘struct stdx::v1::detail::tuple_impl<std::integer_sequence<long unsigned int>, stdx::v1::detail::index_function_list<> >’:
/home/mark/pico/cpp-baremetal-senders-and-receivers/build/_deps/cpp-std-extensions-src/include/stdx/tuple.hpp:401:7:   required from ‘class stdx::v1::tuple<>’
/home/mark/pico/cpp-baremetal-senders-and-receivers/include/async/env.hpp:59:26:   required from ‘struct async::env<>’
/home/mark/pico/cpp-baremetal-senders-and-receivers/include/async/env.hpp:82:73:   required from here
/home/mark/pico/cpp-baremetal-senders-and-receivers/build/_deps/cpp-std-extensions-src/include/stdx/tuple.hpp:351:31: error: mismatched argument pack lengths while expanding ‘equality_comparable_with<Ts, Us>’
  351 |         requires(... and std::equality_comparable_with<Ts, Us>)
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
gmake[2]: *** [test/CMakeFiles/allocator_test.dir/build.make:79: test/CMakeFiles/allocator_test.dir/allocator.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1878: test/CMakeFiles/allocator_test.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
elbeno commented 5 days ago

Thanks for the report - can you please provide:

For the second part, you do not have to build everything - it will be sufficient to build a single failing test target, e.g. $ cmake --build build -t run_algorithm_test.

I notice to begin with that CI is using GCC 12.3 and you are using GCC 12.2, so that could be an issue. I have seen the odd frontend bug like this in older compilers where they think packs are mismatched...

Mark-Dunn-OIL commented 4 days ago

Not sure if this is what you want, but I am happy to provide more feedback if you want to be more specific.

$ cmake -B build

-- The CXX compiler identification is GNU 12.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Downloading CPM.cmake to /home/mark/pico/cpp-std-extensions/build/cmake/CPM_0.38.2.cmake
-- CPM: Adding package cicd-repo-infrastructure@ (dev)
CMake Warning (dev) at /usr/local/share/cmake-3.31/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(cicd-repo-infrastructure) is deprecated, call
  FetchContent_MakeAvailable(cicd-repo-infrastructure) instead.  Policy
  CMP0169 can be set to OLD to allow
  FetchContent_Populate(cicd-repo-infrastructure) to be called directly for
  now, but the ability to call it with declared details will be removed
  completely in a future version.
Call Stack (most recent call first):
  build/cmake/CPM_0.38.2.cmake:1005 (FetchContent_Populate)
  build/cmake/CPM_0.38.2.cmake:799 (cpm_fetch_package)
  CMakeLists.txt:12 (cpmaddpackage)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- CICD: cached version (ecc786e099de01131a427ccbc0b413dbd7a7921d) is not requested version (dev); checking upstream
-- CICD: requested version hash is ecc786e099de01131a427ccbc0b413dbd7a7921d
-- CICD: cached version (ecc786e099de01131a427ccbc0b413dbd7a7921d) fulfils requested version hash (ecc786e099de01131a427ccbc0b413dbd7a7921d)
/home/mark/pico/cpp-std-extensions/.gitignore exists, not overwriting -- this may result in git taking notice of symlinks
/home/mark/pico/cpp-std-extensions/.github/workflows/unit_tests.yml exists, not updating
-- llvm-profdata not found. Test coverage targets will be unavailable.
-- CPM: cicd-repo-infrastructure: Adding package Format.cmake@1.7.3 (v1.7.3)
CMake Warning (dev) at /usr/local/share/cmake-3.31/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(Format.cmake) is deprecated, call
  FetchContent_MakeAvailable(Format.cmake) instead.  Policy CMP0169 can be
  set to OLD to allow FetchContent_Populate(Format.cmake) to be called
  directly for now, but the ability to call it with declared details will be
  removed completely in a future version.
Call Stack (most recent call first):
  build/cmake/CPM_0.38.2.cmake:1005 (FetchContent_Populate)
  build/cmake/CPM_0.38.2.cmake:799 (cpm_fetch_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/dependencies.cmake:167 (cpmaddpackage)
  build/_deps/cicd-repo-infrastructure-src/cmake/format.cmake:6 (add_versioned_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/quality.cmake:23 (include)
  build/_deps/cicd-repo-infrastructure-src/cmake/main.cmake:54 (include)
  build/_deps/cicd-repo-infrastructure-src/CMakeLists.txt:96 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found Python: /usr/bin/python3.11 (found version "3.11.2") found components: Interpreter
-- Format.cmake: clang-format and/or python not found, adding dummy targets
-- Format.cmake: cmake-format and/or git not found, adding dummy targets
-- mypy not found. Adding dummy target.
-- black not found. Adding dummy target.
-- asciidoctor not found. Adding dummy target.
-- CPM: Adding package mp11@ (boost-1.83.0)
CMake Warning (dev) at /usr/local/share/cmake-3.31/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(mp11) is deprecated, call
  FetchContent_MakeAvailable(mp11) instead.  Policy CMP0169 can be set to OLD
  to allow FetchContent_Populate(mp11) to be called directly for now, but the
  ability to call it with declared details will be removed completely in a
  future version.
Call Stack (most recent call first):
  build/cmake/CPM_0.38.2.cmake:1005 (FetchContent_Populate)
  build/cmake/CPM_0.38.2.cmake:799 (cpm_fetch_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/dependencies.cmake:167 (cpmaddpackage)
  CMakeLists.txt:17 (add_versioned_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- CPM: Adding package fmt@10.2.1 (10.2.1)
CMake Warning (dev) at /usr/local/share/cmake-3.31/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(fmt) is deprecated, call
  FetchContent_MakeAvailable(fmt) instead.  Policy CMP0169 can be set to OLD
  to allow FetchContent_Populate(fmt) to be called directly for now, but the
  ability to call it with declared details will be removed completely in a
  future version.
Call Stack (most recent call first):
  build/cmake/CPM_0.38.2.cmake:1005 (FetchContent_Populate)
  build/cmake/CPM_0.38.2.cmake:799 (cpm_fetch_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/dependencies.cmake:167 (cpmaddpackage)
  build/_deps/cicd-repo-infrastructure-src/cmake/cpm_recipes.cmake:3 (add_versioned_package)
  CMakeLists.txt:18 (fmt_recipe)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Version: 10.2.1
-- Build type: 
-- CPM: Adding package cpp-baremetal-concurrency@06 (06e5901)
CMake Warning (dev) at /usr/local/share/cmake-3.31/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(cpp-baremetal-concurrency) is deprecated,
  call FetchContent_MakeAvailable(cpp-baremetal-concurrency) instead.  Policy
  CMP0169 can be set to OLD to allow
  FetchContent_Populate(cpp-baremetal-concurrency) to be called directly for
  now, but the ability to call it with declared details will be removed
  completely in a future version.
Call Stack (most recent call first):
  build/cmake/CPM_0.38.2.cmake:1005 (FetchContent_Populate)
  build/cmake/CPM_0.38.2.cmake:799 (cpm_fetch_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/dependencies.cmake:167 (cpmaddpackage)
  CMakeLists.txt:19 (add_versioned_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning at build/cmake/CPM_0.38.2.cmake:317 (message):
  CPM: cpp-baremetal-concurrency: Requires a newer version of
  cicd-repo-infrastructure (3) than currently included ().
Call Stack (most recent call first):
  build/cmake/CPM_0.38.2.cmake:616 (cpm_check_if_package_already_added)
  build/_deps/cpp-baremetal-concurrency-src/CMakeLists.txt:14 (cpmaddpackage)

-- add_docs(docs) is disabled because asciidoctor was not found.
-- CPM: Adding package Catch2@3.6.0 (v3.6.0)
CMake Warning (dev) at /usr/local/share/cmake-3.31/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(Catch2) is deprecated, call
  FetchContent_MakeAvailable(Catch2) instead.  Policy CMP0169 can be set to
  OLD to allow FetchContent_Populate(Catch2) to be called directly for now,
  but the ability to call it with declared details will be removed completely
  in a future version.
Call Stack (most recent call first):
  build/cmake/CPM_0.38.2.cmake:1005 (FetchContent_Populate)
  build/cmake/CPM_0.38.2.cmake:799 (cpm_fetch_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/dependencies.cmake:167 (cpmaddpackage)
  build/_deps/cicd-repo-infrastructure-src/cmake/test.cmake:28 (add_versioned_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/test.cmake:285 (get_catch2)
  test/CMakeLists.txt:6 (add_unit_test)
  test/CMakeLists.txt:20 (add_tests)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Performing Test HAVE_FLAG__ffile_prefix_map__home_mark_pico_cpp_std_extensions_build__deps_catch2_src__
-- Performing Test HAVE_FLAG__ffile_prefix_map__home_mark_pico_cpp_std_extensions_build__deps_catch2_src__ - Success
-- CPM: Adding package rapidcheck@1 (1c91f40)
CMake Warning (dev) at /usr/local/share/cmake-3.31/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(rapidcheck) is deprecated, call
  FetchContent_MakeAvailable(rapidcheck) instead.  Policy CMP0169 can be set
  to OLD to allow FetchContent_Populate(rapidcheck) to be called directly for
  now, but the ability to call it with declared details will be removed
  completely in a future version.
Call Stack (most recent call first):
  build/cmake/CPM_0.38.2.cmake:1005 (FetchContent_Populate)
  build/cmake/CPM_0.38.2.cmake:799 (cpm_fetch_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/dependencies.cmake:167 (cpmaddpackage)
  build/_deps/cicd-repo-infrastructure-src/cmake/test.cmake:93 (add_versioned_package)
  build/_deps/cicd-repo-infrastructure-src/cmake/test.cmake:286 (add_rapidcheck)
  test/CMakeLists.txt:6 (add_unit_test)
  test/CMakeLists.txt:20 (add_tests)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Deprecation Warning at build/_deps/rapidcheck-src/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- add_mull_test(algorithm_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(always_false_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(atomic_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(atomic_override_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(atomic_bitset_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(atomic_bitset_override_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(bind_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(bit_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(bitset_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(byterator_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(cached_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(callable_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(concepts_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(conditional_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(ct_conversions_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(cx_map_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(cx_multimap_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(cx_queue_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(cx_set_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(cx_vector_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(default_panic_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(for_each_n_args_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(function_traits_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(intrusive_forward_list_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(intrusive_list_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(intrusive_list_properties_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(is_constant_evaluated_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(iterator_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(memory_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(numeric_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(optional_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(overload_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(panic_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(priority_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(ranges_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(remove_cvref_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(span_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(to_underlying_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(type_map_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(type_traits_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(with_result_of_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(utility_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(udls_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(ct_format_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(ct_string_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(indexed_tuple_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(tuple_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- add_mull_test(tuple_algorithms_test) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- clang_tidy_interface(stdx) is disabled because CMAKE_CXX_COMPILER_ID is GNU.
-- Configuring done (22.1s)
-- Generating done (0.3s)
-- Build files have been written to: /home/mark/pico/cpp-std-extensions/build

$ cmake --build build -t run_algorithm_test

[  0%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/BeforeMinimalTestCase.cpp.o
[  0%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/Check.cpp.o
[  0%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/Classify.cpp.o
[  2%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/GenerationFailure.cpp.o
[  2%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/Log.cpp.o
[  2%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/Random.cpp.o
[  4%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/Show.cpp.o
[  4%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Any.cpp.o
[  4%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Assertions.cpp.o
[  4%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Base64.cpp.o
[  6%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Configuration.cpp.o
[  6%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/DefaultTestListener.cpp.o
[  6%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/FrequencyMap.cpp.o
[  9%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/ImplicitParam.cpp.o
[  9%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/LogTestListener.cpp.o
[  9%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/MapParser.cpp.o
[  9%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/MulticastTestListener.cpp.o
[ 11%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/ParseException.cpp.o
[ 11%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Platform.cpp.o
[ 11%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Property.cpp.o
[ 13%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/PropertyContext.cpp.o
[ 13%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/ReproduceListener.cpp.o
[ 13%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Results.cpp.o
[ 13%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Serialization.cpp.o
[ 16%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/StringSerialization.cpp.o
[ 16%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/TestMetadata.cpp.o
[ 16%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/TestParams.cpp.o
[ 18%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/detail/Testing.cpp.o
[ 18%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/gen/Numeric.cpp.o
[ 18%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/gen/Text.cpp.o
[ 18%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/gen/detail/ExecHandler.cpp.o
[ 20%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/gen/detail/GenerationHandler.cpp.o
[ 20%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/gen/detail/Recipe.cpp.o
[ 20%] Building CXX object _deps/rapidcheck-build/CMakeFiles/rapidcheck.dir/src/gen/detail/ScaleInteger.cpp.o
[ 23%] Linking CXX static library librapidcheck.a
[ 23%] Built target rapidcheck
[ 23%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/benchmark/catch_chronometer.cpp.o
[ 23%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/benchmark/detail/catch_analyse.cpp.o
[ 23%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/benchmark/detail/catch_benchmark_function.cpp.o
[ 25%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/benchmark/detail/catch_run_for_at_least.cpp.o
[ 25%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/benchmark/detail/catch_stats.cpp.o
[ 25%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/generators/catch_generator_exception.cpp.o
[ 27%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/generators/catch_generators.cpp.o
[ 27%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/generators/catch_generators_random.cpp.o
[ 27%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_automake.cpp.o
[ 27%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_common_base.cpp.o
[ 30%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_compact.cpp.o
[ 30%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_console.cpp.o
[ 30%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_cumulative_base.cpp.o
[ 32%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_event_listener.cpp.o
[ 32%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_helpers.cpp.o
[ 32%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_json.cpp.o
[ 32%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_junit.cpp.o
[ 34%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_multi.cpp.o
[ 34%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_registrars.cpp.o
[ 34%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_sonarqube.cpp.o
[ 37%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_streaming_base.cpp.o
[ 37%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_tap.cpp.o
[ 37%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_teamcity.cpp.o
[ 37%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/reporters/catch_reporter_xml.cpp.o
[ 39%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/interfaces/catch_interfaces_capture.cpp.o
[ 39%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/interfaces/catch_interfaces_config.cpp.o
[ 39%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/interfaces/catch_interfaces_exception.cpp.o
[ 41%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/interfaces/catch_interfaces_generatortracker.cpp.o
[ 41%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/interfaces/catch_interfaces_registry_hub.cpp.o
[ 41%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/interfaces/catch_interfaces_reporter.cpp.o
[ 41%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/interfaces/catch_interfaces_reporter_factory.cpp.o
[ 44%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/interfaces/catch_interfaces_testcase.cpp.o
[ 44%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_approx.cpp.o
[ 44%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_assertion_result.cpp.o
[ 46%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_config.cpp.o
[ 46%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_get_random_seed.cpp.o
[ 46%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_message.cpp.o
[ 46%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_registry_hub.cpp.o
[ 48%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_session.cpp.o
[ 48%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_tag_alias_autoregistrar.cpp.o
[ 48%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_test_case_info.cpp.o
[ 51%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_test_spec.cpp.o
[ 51%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_timer.cpp.o
[ 51%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_tostring.cpp.o
[ 51%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_totals.cpp.o
[ 53%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_translate_exception.cpp.o
[ 53%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/catch_version.cpp.o
[ 53%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_assertion_handler.cpp.o
[ 55%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_case_insensitive_comparisons.cpp.o
[ 55%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_clara.cpp.o
[ 55%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_commandline.cpp.o
[ 55%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_console_colour.cpp.o
[ 58%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_context.cpp.o
[ 58%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_debug_console.cpp.o
[ 58%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_debugger.cpp.o
[ 60%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_decomposer.cpp.o
[ 60%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_enforce.cpp.o
[ 60%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_enum_values_registry.cpp.o
[ 62%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_errno_guard.cpp.o
[ 62%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_exception_translator_registry.cpp.o
[ 62%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_fatal_condition_handler.cpp.o
[ 62%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_floating_point_helpers.cpp.o
[ 65%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_getenv.cpp.o
[ 65%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_istream.cpp.o
[ 65%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_jsonwriter.cpp.o
[ 67%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_lazy_expr.cpp.o
[ 67%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_leak_detector.cpp.o
[ 67%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_list.cpp.o
[ 67%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_message_info.cpp.o
[ 69%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_output_redirect.cpp.o
[ 69%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_parse_numbers.cpp.o
[ 69%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_polyfills.cpp.o
[ 72%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_random_number_generator.cpp.o
[ 72%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_random_seed_generation.cpp.o
[ 72%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_reporter_registry.cpp.o
[ 72%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_reporter_spec_parser.cpp.o
[ 74%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_result_type.cpp.o
[ 74%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_reusable_string_stream.cpp.o
[ 74%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_run_context.cpp.o
[ 76%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_section.cpp.o
[ 76%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_singletons.cpp.o
[ 76%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_source_line_info.cpp.o
[ 76%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_startup_exception_registry.cpp.o
[ 79%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_stdstreams.cpp.o
[ 79%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_string_manip.cpp.o
[ 79%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_stringref.cpp.o
[ 81%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_tag_alias_registry.cpp.o
[ 81%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_test_case_info_hasher.cpp.o
[ 81%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_test_case_registry_impl.cpp.o
[ 81%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_test_case_tracker.cpp.o
[ 83%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_test_failure_exception.cpp.o
[ 83%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_test_registry.cpp.o
[ 83%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_test_spec_parser.cpp.o
[ 86%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_textflow.cpp.o
[ 86%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_uncaught_exceptions.cpp.o
[ 86%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_wildcard_pattern.cpp.o
[ 86%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/internal/catch_xmlwriter.cpp.o
[ 88%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/catch_matchers.cpp.o
[ 88%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/catch_matchers_container_properties.cpp.o
[ 88%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/catch_matchers_exception.cpp.o
[ 90%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/catch_matchers_floating_point.cpp.o
[ 90%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/catch_matchers_predicate.cpp.o
[ 90%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/catch_matchers_quantifiers.cpp.o
[ 90%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/catch_matchers_string.cpp.o
[ 93%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/catch_matchers_templated.cpp.o
[ 93%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2.dir/catch2/matchers/internal/catch_matchers_impl.cpp.o
[ 93%] Linking CXX static library libCatch2.a
[ 93%] Built target Catch2
[ 95%] Building CXX object _deps/catch2-build/src/CMakeFiles/Catch2WithMain.dir/catch2/internal/catch_main.cpp.o
[ 95%] Linking CXX static library libCatch2Main.a
[ 95%] Built target Catch2WithMain
[ 97%] Building CXX object test/CMakeFiles/algorithm_test.dir/algorithm.cpp.o
In file included from /home/mark/pico/cpp-std-extensions/include/stdx/algorithm.hpp:5,
                 from /home/mark/pico/cpp-std-extensions/test/algorithm.cpp:1:
/home/mark/pico/cpp-std-extensions/include/stdx/tuple.hpp: In instantiation of ‘struct stdx::v1::detail::tuple_impl<std::integer_sequence<long unsigned int>, stdx::v1::detail::index_function_list<> >’:
/home/mark/pico/cpp-std-extensions/include/stdx/tuple.hpp:401:7:   required from ‘class stdx::v1::tuple<>’
/home/mark/pico/cpp-std-extensions/include/stdx/tuple_algorithms.hpp:44:30:   required from here
/home/mark/pico/cpp-std-extensions/include/stdx/tuple.hpp:351:31: error: mismatched argument pack lengths while expanding ‘equality_comparable_with<Ts, Us>’
  351 |         requires(... and std::equality_comparable_with<Ts, Us>)
      |                 ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
gmake[3]: *** [test/CMakeFiles/algorithm_test.dir/build.make:79: test/CMakeFiles/algorithm_test.dir/algorithm.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/Makefile2:1857: test/CMakeFiles/algorithm_test.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:1926: test/CMakeFiles/run_algorithm_test.dir/rule] Error 2
gmake: *** [Makefile:556: run_algorithm_test] Error 2
elbeno commented 4 days ago

Yeah, I see the same issue after compiling GCC 12.2.0 on Ubuntu 23.10. It looks like this is simply a front-end bug in gcc-12.2.0 - probably: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109425