FloydZ / decoding

Implementation of the fastest ISD algorithms
18 stars 2 forks source link

Encountered a problem while executing the make command #11

Closed identitymapping closed 3 months ago

identitymapping commented 3 months ago

This is the error message I encountered after executing the make command. It seems to be a code error in the avx2. h file, but I checked and found out that my CPU supports avx2. Could you please help me figure out what's going on? @FloydZ

/home/hou/decoding/deps/cryptanalysislib/src/sort/sorting_network/avx2.h:129:18: error: cannot convert ‘__m256i’ to ‘__m256d’
  129 |         COEX64X4(a0,b0,a1,b1,t)
      |                  ^~
      |                  |
      |                  __m256i
/usr/lib/gcc/x86_64-linux-gnu/12/include/avx2intrin.h:426:1: note: ‘__m256i _mm256_min_epu32(__m256i, __m256i)’ declared here
  426 | _mm256_min_epu32 (__m256i __A, __m256i __B)
      | ^~~~~~~~~~~~~~~~
/home/hou/decoding/deps/cryptanalysislib/src/sort/sorting_network/avx2.h: In function ‘constexpr void merge_8_columns_with_16_elements_i(__m256i*)’:
/home/hou/decoding/deps/cryptanalysislib/src/sort/sorting_network/avx2.h:476:39: error: call to non-‘constexpr’ function ‘__m256i _mm256_shuffle_epi32(__m256i, int)’
  476 |         vecs[8] = _mm256_shuffle_epi32(vecs[8], _MM_SHUFFLE(2,3,0,1)); COEX(vecs[7], vecs[8]);          \
      |                   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FloydZ commented 3 months ago

See my answer https://github.com/FloydZ/cryptanalysislib/issues/30#issuecomment-2296563470

identitymapping commented 3 months ago

Thank you very much, Professor!

identitymapping commented 3 months ago

@FloydZ I switched to a computer with an EPYC 9654 CPU and found that the above problem did not occur. Now I have installed the software package successfully. But I don't know how to successfully run the code in the tests folder. Could you please teach me how to use this software package?

identitymapping commented 3 months ago

I tried running the code under tests folder.I created a build folder,then first using the cmake .. command, and then using the make command to compile, but encountered many errors. The details are as follows. It seems that the main issue is still with the cryptanalysislib library.

Consolidate compiler generated dependencies of target isd
[  3%] Building CXX object CMakeFiles/isd.dir/isd.o
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bc.h:8,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:9,
                 from /root/autodl-tmp/decoding/src/mitm.h:5,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint8x16_t::_uint8x16_t()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:55:51: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint8x16_t::<unnamed union>’ must initialize exactly one non-static data member
   55 |                 constexpr _uint8x16_t() noexcept {}
      |                                                   ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint16x8_t::_uint16x8_t()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:253:51: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint16x8_t::<unnamed union>’ must initialize exactly one non-static data member
  253 |                 constexpr _uint16x8_t() noexcept {}
      |                                                   ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint32x4_t::_uint32x4_t()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:421:51: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint32x4_t::<unnamed union>’ must initialize exactly one non-static data member
  421 |                 constexpr _uint32x4_t() noexcept {}
      |                                                   ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint64x2_t::_uint64x2_t()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:575:51: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint64x2_t::<unnamed union>’ must initialize exactly one non-static data member
  575 |                 constexpr _uint64x2_t() noexcept {}
      |                                                   ^
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2282,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bc.h:8,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:9,
                 from /root/autodl-tmp/decoding/src/mitm.h:5,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/float/simd.h: In constructor ‘constexpr f32x8_t::f32x8_t()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/float/simd.h:16:9: error: ‘constexpr’ constructor for union ‘f32x8_t::<unnamed union>’ must initialize exactly one non-static data member
   16 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/float/simd.h: In constructor ‘constexpr f32x8_t::f32x8_t(uint32x8_t)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/float/simd.h:22:9: error: ‘constexpr’ constructor for union ‘f32x8_t::<unnamed union>’ must initialize exactly one non-static data member
   22 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/float/simd.h: In constructor ‘constexpr f64x4_t::f64x4_t()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/float/simd.h:63:9: error: ‘constexpr’ constructor for union ‘f64x4_t::<unnamed union>’ must initialize exactly one non-static data member
   63 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/float/simd.h: In constructor ‘constexpr f64x4_t::f64x4_t(uint64x4_t)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/float/simd.h:69:9: error: ‘constexpr’ constructor for union ‘f64x4_t::<unnamed union>’ must initialize exactly one non-static data member
   69 |         }
      |         ^
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bc.h:8,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:9,
                 from /root/autodl-tmp/decoding/src/mitm.h:5,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint8x16_t::_uint8x16_t(const cryptanalysislib::_uint16x8_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2752:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint8x16_t::<unnamed union>’ must initialize exactly one non-static data member
 2752 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint8x16_t::_uint8x16_t(const cryptanalysislib::_uint32x4_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2757:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint8x16_t::<unnamed union>’ must initialize exactly one non-static data member
 2757 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint8x16_t::_uint8x16_t(const cryptanalysislib::_uint64x2_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2762:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint8x16_t::<unnamed union>’ must initialize exactly one non-static data member
 2762 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint16x8_t::_uint16x8_t(const cryptanalysislib::_uint8x16_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2768:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint16x8_t::<unnamed union>’ must initialize exactly one non-static data member
 2768 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint16x8_t::_uint16x8_t(const cryptanalysislib::_uint32x4_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2773:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint16x8_t::<unnamed union>’ must initialize exactly one non-static data member
 2773 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint16x8_t::_uint16x8_t(const cryptanalysislib::_uint64x2_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2778:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint16x8_t::<unnamed union>’ must initialize exactly one non-static data member
 2778 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint32x4_t::_uint32x4_t(const cryptanalysislib::_uint16x8_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2784:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint32x4_t::<unnamed union>’ must initialize exactly one non-static data member
 2784 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint32x4_t::_uint32x4_t(const cryptanalysislib::_uint8x16_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2789:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint32x4_t::<unnamed union>’ must initialize exactly one non-static data member
 2789 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint32x4_t::_uint32x4_t(const cryptanalysislib::_uint64x2_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2794:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint32x4_t::<unnamed union>’ must initialize exactly one non-static data member
 2794 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint64x2_t::_uint64x2_t(const cryptanalysislib::_uint16x8_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2800:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint64x2_t::<unnamed union>’ must initialize exactly one non-static data member
 2800 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint64x2_t::_uint64x2_t(const cryptanalysislib::_uint32x4_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2805:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint64x2_t::<unnamed union>’ must initialize exactly one non-static data member
 2805 |         }
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h: In constructor ‘constexpr cryptanalysislib::_uint64x2_t::_uint64x2_t(const cryptanalysislib::_uint8x16_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2810:9: error: ‘constexpr’ constructor for union ‘cryptanalysislib::_uint64x2_t::<unnamed union>’ must initialize exactly one non-static data member
 2810 |         }
      |         ^
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2892,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bc.h:8,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:9,
                 from /root/autodl-tmp/decoding/src/mitm.h:5,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:17:5: error: ‘requires’ does not name a type
   17 |     requires std::is_integral_v<T>
      |     ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:17:5: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/simd.h:2892,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bc.h:8,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:9,
                 from /root/autodl-tmp/decoding/src/mitm.h:5,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:320:8: error: ‘TxN_t’ does not name a type
  320 | inline TxN_t<T, N> operator*(const TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:324:8: error: ‘TxN_t’ does not name a type
  324 | inline TxN_t<T, N> operator*(const TxN_t<T, N> &lhs, const uint8_t &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:328:8: error: ‘TxN_t’ does not name a type
  328 | inline TxN_t<T, N> operator*(const uint8_t &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:332:8: error: ‘TxN_t’ does not name a type
  332 | inline TxN_t<T, N> operator+(const TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:336:8: error: ‘TxN_t’ does not name a type
  336 | inline TxN_t<T, N> operator-(const TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:340:8: error: ‘TxN_t’ does not name a type
  340 | inline TxN_t<T, N> operator&(const TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:344:8: error: ‘TxN_t’ does not name a type
  344 | inline TxN_t<T, N> operator^(const TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:348:8: error: ‘TxN_t’ does not name a type
  348 | inline TxN_t<T, N> operator|(const TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:352:8: error: ‘TxN_t’ does not name a type
  352 | inline TxN_t<T, N> operator~(const TxN_t<T, N> &lhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:364:8: error: ‘TxN_t’ does not name a type
  364 | inline TxN_t<T, N> operator^=(TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:369:8: error: ‘TxN_t’ does not name a type
  369 | inline TxN_t<T, N> operator&=(TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:374:8: error: ‘TxN_t’ does not name a type
  374 | inline TxN_t<T, N> operator|=(TxN_t<T, N> &lhs, const TxN_t<T, N> &rhs) {
      |        ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:381:7: error: ‘TxN_t’ is not a class template
  381 | class TxN_t<uint64_t, 4> : public uint64x4_t {};
      |       ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:381:46: error: explicit specialization of non-template ‘TxN_t’
  381 | class TxN_t<uint64_t, 4> : public uint64x4_t {};
      |                                              ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:383:7: error: ‘TxN_t’ is not a class template
  383 | class TxN_t<uint32_t, 8> : public uint32x8_t {};
      |       ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:383:24: error: ‘TxN_t’ is not a template
  383 | class TxN_t<uint32_t, 8> : public uint32x8_t {};
      |                        ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:381:7: note: previous declaration here
  381 | class TxN_t<uint64_t, 4> : public uint64x4_t {};
      |       ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:385:7: error: ‘TxN_t’ is not a class template
  385 | class TxN_t<uint16_t, 16> : public uint16x16_t {};
      |       ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:385:25: error: ‘TxN_t’ is not a template
  385 | class TxN_t<uint16_t, 16> : public uint16x16_t {};
      |                         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:381:7: note: previous declaration here
  381 | class TxN_t<uint64_t, 4> : public uint64x4_t {};
      |       ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:387:7: error: ‘TxN_t’ is not a class template
  387 | class TxN_t<uint8_t, 32> : public uint8x32_t {};
      |       ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:387:24: error: ‘TxN_t’ is not a template
  387 | class TxN_t<uint8_t, 32> : public uint8x32_t {};
      |                        ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/simd/generic.h:381:7: note: previous declaration here
  381 | class TxN_t<uint64_t, 4> : public uint64x4_t {};
      |       ^~~~~
In file included from /root/autodl-tmp/decoding/src/mitm.h:5,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:14:1: error: ‘concept’ does not name a type
   14 | concept EnumeratorAble = requires(Enumerator e) {
      | ^~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:14:1: note: ‘concept’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:8,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:11,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:15:44: error: ‘mutex’ in namespace ‘std’ does not name a type
   15 | template<typename T, typename Mutex = std::mutex>
      |                                            ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:9:1: note: ‘std::mutex’ is defined in header ‘<mutex>’; did you forget to ‘#include <mutex>’?
    8 | #include <queue>
  +++ |+#include <mutex>
    9 | 
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:19:22: error: ‘lock_guard’ in namespace ‘std’ does not name a template type
   19 |         typedef std::lock_guard<mutex_type> lock_type;
      |                      ^~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:19:17: note: ‘std::lock_guard’ is defined in header ‘<mutex>’; did you forget to ‘#include <mutex>’?
   19 |         typedef std::lock_guard<mutex_type> lock_type;
      |                 ^~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:25:9: error: ‘constexpr’ destructors only available with ‘-std=c++20’ or ‘-std=gnu++20’
   25 |         constexpr ~concurrent_queue() noexcept {}
      |         ^~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h: In member function ‘constexpr std::size_t concurrent_queue<T, Mutex>::size()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:29:17: error: ‘lock_type’ was not declared in this scope
   29 |                 lock_type lock(_mutex);
      |                 ^~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h: In member function ‘constexpr bool concurrent_queue<T, Mutex>::empty()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:35:17: error: ‘lock_type’ was not declared in this scope
   35 |                 lock_type lock(_mutex);
      |                 ^~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h: In member function ‘constexpr bool concurrent_queue<T, Mutex>::try_pop_front(concurrent_queue<T, Mutex>::value_type&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:56:17: error: ‘lock_type’ was not declared in this scope
   56 |                 lock_type lock(_mutex);
      |                 ^~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h: In member function ‘constexpr void concurrent_queue<T, Mutex>::_emplace_back(Args&& ...)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/queue.h:69:17: error: ‘lock_type’ was not declared in this scope
   69 |                 lock_type lock(_mutex);
      |                 ^~~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:11,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:91:1: error: ‘concept’ does not name a type
   91 | concept Allocator = requires(T a, Blk b, size_t n) {
      | ^~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:91:1: note: ‘concept’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:173:10: error: ‘Allocator’ has not been declared
  173 | template<Allocator Parent, const size_t size>
      |          ^~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:174:7: error: no default argument for ‘size’
  174 | class FreeListAllocator {
      |       ^~~~~~~~~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:179:9: error: ‘Parent’ does not name a type
  179 |         Parent _parent;
      |         ^~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:264:10: error: ‘Allocator’ has not been declared
  264 | template<Allocator A,
      |          ^~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:267:7: error: no default argument for ‘Prefix’
  267 | class AffixAllocator {
      |       ^~~~~~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:278:9: error: ‘A’ does not name a type
  278 |         A allocator;
      |         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:430:37: error: template argument 2 is invalid
  430 |         typedef concurrent_queue<Blk> queue_type;
      |                                     ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:443:22: error: ‘mutex’ in namespace ‘std’ does not name a type
  443 |                 std::mutex _mutex;
      |                      ^~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:11:1: note: ‘std::mutex’ is defined in header ‘<mutex>’; did you forget to ‘#include <mutex>’?
   10 | #include "memory/memory.h"
  +++ |+#include <mutex>
   11 | 
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h: In destructor ‘FreeListPageMallocator<_page_alignment, _page_size, PAllocator>::_static_helper::~_static_helper()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/alloc/alloc.h:450:39: error: request for member ‘try_pop_front’ in ‘((FreeListPageMallocator<_page_alignment, _page_size, PAllocator>::_static_helper*)this)->FreeListPageMallocator<_page_alignment, _page_size, PAllocator>::_static_helper::_queue’, which is of non-class type ‘FreeListPageMallocator<_page_alignment, _page_size, PAllocator>::queue_type’ {aka ‘int’}
  450 |                         while (_queue.try_pop_front(p)) {
      |                                       ^~~~~~~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:5,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/abs.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/abs.h:17:13: error: ‘requires’ does not name a type
   17 |             requires std::is_arithmetic<T>::value
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/abs.h:17:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/abs.h:27:13: error: ‘requires’ does not name a type
   27 |             requires std::is_floating_point<T>::value
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/abs.h:27:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/abs.h:39:13: error: ‘requires’ does not name a type
   39 |             requires std::is_arithmetic_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/abs.h:39:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/entropy.h:8,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:7,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/exp.h:24:13: error: ‘requires’ does not name a type
   24 |             requires std::is_floating_point_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/exp.h:24:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/exp.h:35:13: error: ‘requires’ does not name a type
   35 |             requires std::is_arithmetic_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/exp.h:35:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/entropy.h:8,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:7,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:16:13: error: ‘requires’ does not name a type
   16 |             requires std::is_floating_point_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:16:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:23:13: error: ‘requires’ does not name a type
   23 |             requires std::is_floating_point_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:23:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:42:13: error: ‘requires’ does not name a type
   42 |             requires std::is_floating_point_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:42:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:49:13: error: ‘requires’ does not name a type
   49 |             requires std::is_floating_point_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:49:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:59:13: error: ‘requires’ does not name a type
   59 |             requires std::is_arithmetic_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:59:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:78:13: error: ‘requires’ does not name a type
   78 |             requires std::is_arithmetic_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/log.h:78:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:7,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/entropy.h:17:17: error: ‘requires’ does not name a type
   17 |                 requires std::is_floating_point_v<T>
      |                 ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/entropy.h:17:17: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:9,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/floor.h:15:13: error: ‘requires’ does not name a type
   15 |             requires std::is_floating_point_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/floor.h:15:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:10,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/ipow.h:16:5: error: ‘requires’ does not name a type
   16 |     requires std::is_arithmetic_v<T> &&
      |     ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/ipow.h:16:5: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:12,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:16:13: error: ‘requires’ does not name a type
   16 |             requires std::is_arithmetic_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:16:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:24:13: error: ‘requires’ does not name a type
   24 |             requires std::is_arithmetic_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:24:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:35:13: error: ‘requires’ does not name a type
   35 |             requires std::is_arithmetic_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:35:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:12,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:43:13: error: ‘requires’ does not name a type
   43 |             requires std::is_arithmetic_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:43:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:53:13: error: ‘requires’ does not name a type
   53 |             requires std::is_arithmetic_v<T> &&
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:53:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:62:13: error: ‘requires’ does not name a type
   62 |             requires std::is_arithmetic_v<T> &&
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/root.h:62:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:13,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/round.h:11:13: error: ‘requires’ does not name a type
   11 |             requires std::is_floating_point_v<T>
      |             ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/round.h:11:13: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/math.h:20,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_packed_vector.h:11,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:6,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:10:20: error: ‘std::unsigned_integral’ has not been declared
   10 | template<size_t N, std::unsigned_integral T = uint64_t>
      |                    ^~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:10:55: error: expected primary-expression before ‘>’ token
   10 | template<size_t N, std::unsigned_integral T = uint64_t>
      |                                                       ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:11:29: error: ‘T’ was not declared in this scope
   11 | struct big_int : std::array<T, N> {
      |                             ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:11:33: error: template argument 1 is invalid
   11 | struct big_int : std::array<T, N> {
      |                                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:19:33: error: ‘T’ does not name a type
   19 |         constexpr big_int(const T a) {
      |                                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:34:42: error: template argument 2 is invalid
   34 |         constexpr big_int(const big_int<M> &a) {
      |                                          ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr auto cryptanalysislib::take(int)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:87:28: error: invalid types ‘int[long unsigned int]’ for array subscript
   87 |                         res[i-Begin] = t[i];
      |                            ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:87:41: error: invalid types ‘int[long unsigned int]’ for array subscript
   87 |                         res[i-Begin] = t[i];
      |                                         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr auto cryptanalysislib::take(int, size_t, size_t, size_t)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:104:28: error: invalid types ‘int[long unsigned int]’ for array subscript
  104 |                         res[i - Begin + Offset] = t[i];
      |                            ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:104:52: error: invalid types ‘int[long unsigned int]’ for array subscript
  104 |                         res[i - Begin + Offset] = t[i];
      |                                                    ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr auto cryptanalysislib::unary_encoding()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:157:20: error: invalid types ‘int[long unsigned int]’ for array subscript
  157 |                 res[K] = 1;
      |                    ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr auto cryptanalysislib::unary_encoding(size_t)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:169:20: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
  169 |                 res[K] = 1;
      |                    ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr auto add_same(int, int)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:186:28: error: invalid types ‘int[unsigned int]’ for array subscript
  186 |                 auto aa = a[i];
      |                            ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:187:34: error: invalid types ‘int[unsigned int]’ for array subscript
  187 |                 auto sum = aa + b[i];
      |                                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:190:18: error: invalid types ‘int[unsigned int]’ for array subscript
  190 |                 r[i] = res;
      |                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:193:10: error: invalid types ‘int[long unsigned int]’ for array subscript
  193 |         r[N] = carry;
      |          ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr auto subtract_same(int, int)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:209:28: error: invalid types ‘int[unsigned int]’ for array subscript
  209 |                 auto aa = a[i];
      |                            ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:210:35: error: invalid types ‘int[unsigned int]’ for array subscript
  210 |                 auto diff = aa - b[i];
      |                                   ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:213:18: error: invalid types ‘int[unsigned int]’ for array subscript
  213 |                 r[i] = res;
      |                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:217:10: error: invalid types ‘int[long unsigned int]’ for array subscript
  217 |         r[N] = carry * static_cast<T>(-1);
      |          ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr auto mul(int, int)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:264:49: error: invalid types ‘int[unsigned int]’ for array subscript
  264 |                         TT t = static_cast<TT>(u[i]) * static_cast<TT>(v[j]) + w[i + j] + k;
      |                                                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:264:73: error: invalid types ‘int[unsigned int]’ for array subscript
  264 |                         TT t = static_cast<TT>(u[i]) * static_cast<TT>(v[j]) + w[i + j] + k;
      |                                                                         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:264:81: error: invalid types ‘int[unsigned int]’ for array subscript
  264 |                         TT t = static_cast<TT>(u[i]) * static_cast<TT>(v[j]) + w[i + j] + k;
      |                                                                                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:265:26: error: invalid types ‘int[unsigned int]’ for array subscript
  265 |                         w[i + j] = static_cast<T>(t);
      |                          ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:268:18: error: invalid types ‘int[long unsigned int]’ for array subscript
  268 |                 w[j + M] = k;
      |                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:287:53: error: template argument 1 is invalid
  287 | constexpr DivisionResult<big_int<M, T>, big_int<N, T>> div(big_int<M, T> u,
      |                                                     ^~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:287:53: error: template argument 2 is invalid
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr int div(int, int)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:307:32: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
  307 |         while (tight_N > 0 && v[tight_N - 1] == 0)
      |                                ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:318:73: error: invalid types ‘int[int]’ for array subscript
  318 |                         TT w = (r << std::numeric_limits<T>::digits) + u[i];
      |                                                                         ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:319:26: error: invalid types ‘int[int]’ for array subscript
  319 |                         q[i] = w / v[0];
      |                          ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:319:37: error: invalid types ‘int[int]’ for array subscript
  319 |                         q[i] = w / v[0];
      |                                     ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:320:34: error: invalid types ‘int[int]’ for array subscript
  320 |                         r = w % v[0];
      |                                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:326:17: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
  326 |         while (v[tight_N - 1] <
      |                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:329:48: error: there are no arguments to ‘shift_left’ that depend on a template parameter, so a declaration of ‘shift_left’ must be available [-fpermissive]
  329 |                 v = cryptanalysislib::first<N>(shift_left(v, 1));
      |                                                ^~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:329:48: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:331:19: error: there are no arguments to ‘shift_left’ that depend on a template parameter, so a declaration of ‘shift_left’ must be available [-fpermissive]
  331 |         auto us = shift_left(u, k);
      |                   ^~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:337:34: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
  337 |                 TT qhat = tmp / v[tight_N - 1];
      |                                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:338:34: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
  338 |                 TT rhat = tmp % v[tight_N - 1];
      |                                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:342:33: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
  342 |                        (qhat * v[tight_N - 2] >
      |                                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:345:34: error: invalid types ‘int[size_t {aka long unsigned int}]’ for array subscript
  345 |                         rhat += v[tight_N - 1];
      |                                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:354:78: error: no matching function for call to ‘pad<2>(int&)’
  354 |                         auto new_us_part = add_ignore_carry(corrected, pad<2>(v));
      |                                                                        ~~~~~~^~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:117:24: note: candidate: ‘template<long unsigned int N, class T, long unsigned int N1> constexpr auto cryptanalysislib::pad(int)’
  117 |         constexpr auto pad(big_int<N1, T> t) {
      |                        ^~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:117:24: note:   template argument deduction/substitution failed:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:354:78: note:   couldn’t deduce template parameter ‘T’
  354 |                         auto new_us_part = add_ignore_carry(corrected, pad<2>(v));
      |                                                                        ~~~~~~^~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:362:18: error: invalid types ‘int[int]’ for array subscript
  362 |                 q[j] = qhat;
      |                  ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: In function ‘constexpr int binomial()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:402:49: error: template argument 1 is invalid
  402 |         std::array<std::array<big_int<N, T>, k+1>, n+1> tmp;
      |                                                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:402:55: error: template argument 1 is invalid
  402 |         std::array<std::array<big_int<N, T>, k+1>, n+1> tmp;
      |                                                       ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:417:16: error: ‘constexpr auto operator/(int, int)’ must have an argument of class or enumerated type
  417 | constexpr auto operator/(big_int<N1, T> a, big_int<N2, T> b) {
      |                ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:422:16: error: ‘constexpr auto operator%(int, int)’ must have an argument of class or enumerated type
  422 | constexpr auto operator%(big_int<N1, T> a, big_int<N2, T> b) {
      |                ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:427:16: error: ‘constexpr auto operator*(int, int)’ must have an argument of class or enumerated type
  427 | constexpr auto operator*(big_int<N1, T> a, big_int<N2, T> b) {
      |                ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:432:16: error: ‘constexpr auto operator+(int, int)’ must have an argument of class or enumerated type
  432 | constexpr auto operator+(big_int<N1, T> a, big_int<N2, T> b) {
      |                ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/math/bigint/bigint.h:437:16: error: ‘constexpr auto operator-(int, int)’ must have an argument of class or enumerated type
  437 | constexpr auto operator-(big_int<N1, T> a, big_int<N2, T> b) {
      |                ^~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_vector.h:9,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:7,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/common.h:7:1: error: ‘concept’ does not name a type
    7 | concept kAryContainerAble =
      | ^~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/common.h:7:1: note: ‘concept’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:7,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_vector.h: In static member function ‘static constexpr bool kAryContainerMeta<T, n, q>::add(kAryContainerMeta<T, n, q>&, const kAryContainerMeta<T, n, q>&, const kAryContainerMeta<T, n, q>&, uint32_t, uint32_t, uint32_t)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_vector.h:484:54: error: ‘abs’ is not a member of ‘cryptanalysislib::math’
  484 |                         if ((cryptanalysislib::math::abs(v3.__data[i]) > norm) && (norm != uint32_t(-1)))
      |                                                      ^~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_vector.h:484:54: note: suggested alternatives:
In file included from /usr/include/c++/11/cstdlib:77,
                 from /usr/include/c++/11/ext/string_conversions.h:41,
                 from /usr/include/c++/11/bits/basic_string.h:6608,
                 from /usr/include/c++/11/string:55,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/ostream:38,
                 from /root/autodl-tmp/benchmark-main/build/third_party/googletest/src/googletest/include/gtest/gtest.h:58,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:1:
/usr/include/c++/11/bits/std_abs.h:56:3: note:   ‘abs’
   56 |   abs(long __i) { return __builtin_labs(__i); }
      |   ^~~
/usr/include/c++/11/bits/std_abs.h:103:3: note:   ‘std::abs’
  103 |   abs(__float128 __x)
      |   ^~~
In file included from /usr/include/c++/11/bits/this_thread_sleep.h:38,
                 from /usr/include/c++/11/thread:44,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/helper.h:48,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:8,
                 from /root/autodl-tmp/decoding/src/mitm.h:5,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/usr/include/c++/11/chrono:393:7: note:   ‘std::chrono::abs’
  393 |       abs(duration<_Rep, _Period> __d)
      |       ^~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/matrix.h:7,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/fq_matrix.h:4,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/matrix/binary_matrix.h:13,
                 from /root/autodl-tmp/decoding/src/mitm.h:6,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_vector.h: In static member function ‘static constexpr bool kAryContainerMeta<T, n, q>::sub(kAryContainerMeta<T, n, q>&, const kAryContainerMeta<T, n, q>&, const kAryContainerMeta<T, n, q>&, uint32_t, uint32_t, uint32_t)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_vector.h:542:54: error: ‘abs’ is not a member of ‘cryptanalysislib::math’
  542 |                         if ((cryptanalysislib::math::abs(v3.__data[i]) > norm) && (norm != uint32_t(-1)))
      |                                                      ^~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/fq_vector.h:542:54: note: suggested alternatives:
In file included from /usr/include/c++/11/cstdlib:77,
                 from /usr/include/c++/11/ext/string_conversions.h:41,
                 from /usr/include/c++/11/bits/basic_string.h:6608,
                 from /usr/include/c++/11/string:55,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/ostream:38,
                 from /root/autodl-tmp/benchmark-main/build/third_party/googletest/src/googletest/include/gtest/gtest.h:58,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:1:
/usr/include/c++/11/bits/std_abs.h:56:3: note:   ‘abs’
   56 |   abs(long __i) { return __builtin_labs(__i); }
      |   ^~~
/usr/include/c++/11/bits/std_abs.h:103:3: note:   ‘std::abs’
  103 |   abs(__float128 __x)
      |   ^~~
In file included from /usr/include/c++/11/bits/this_thread_sleep.h:38,
                 from /usr/include/c++/11/thread:44,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/helper.h:48,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/combination/chase.h:8,
                 from /root/autodl-tmp/decoding/src/mitm.h:5,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/usr/include/c++/11/chrono:393:7: note:   ‘std::chrono::abs’
  393 |       abs(duration<_Rep, _Period> __d)
      |       ^~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:4,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/hash/simple.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/hash/simple.h:14:5: error: ‘requires’ does not name a type
   14 |     requires std::is_integral<T>::value
      |     ^~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/hash/simple.h:14:5: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:9,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:7,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/atomic_primitives.h: In member function ‘void one_byte_mutex::lock()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/atomic_primitives.h:147:31: error: ‘struct std::atomic<unsigned char>’ has no member named ‘wait’
  147 |                         state.wait(sleeper, std::memory_order_relaxed);
      |                               ^~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/atomic_primitives.h: In member function ‘void one_byte_mutex::unlock()’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/atomic_primitives.h:154:31: error: ‘struct std::atomic<unsigned char>’ has no member named ‘notify_one’
  154 |                         state.notify_one();
      |                               ^~~~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:7,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:135:57: error: ‘is_bounded_array_v’ is not a member of ‘std’
  135 |         using ret_type = typename std::conditional<std::is_bounded_array_v<data_type>,
      |                                                         ^~~~~~~~~~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:135:85: error: wrong number of template arguments (1, should be 3)
  135 |         using ret_type = typename std::conditional<std::is_bounded_array_v<data_type>,
      |                                                                                     ^
In file included from /usr/include/c++/11/bits/move.h:57,
                 from /usr/include/c++/11/bits/stl_pair.h:59,
                 from /usr/include/c++/11/bits/stl_algobase.h:64,
                 from /usr/include/c++/11/memory:63,
                 from /root/autodl-tmp/benchmark-main/build/third_party/googletest/src/googletest/include/gtest/gtest.h:57,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:1:
/usr/include/c++/11/type_traits:105:12: note: provided for ‘template<bool <anonymous>, class, class> struct std::conditional’
  105 |     struct conditional;
      |            ^~~~~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:7,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:135:86: error: expected identifier before ‘,’ token
  135 |         using ret_type = typename std::conditional<std::is_bounded_array_v<data_type>,
      |                                                                                      ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:138:26: error: ‘ret_type’ does not name a type; did you mean ‘key_type’?
  138 |         constexpr inline ret_type ptr(const index_type i) noexcept {
      |                          ^~~~~~~~
      |                          key_type
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:148:26: error: ‘ret_type’ does not name a type; did you mean ‘key_type’?
  148 |         constexpr inline ret_type operator[](const index_type i) noexcept {
      |                          ^~~~~~~~
      |                          key_type
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h: In member function ‘constexpr void SimpleHashMap<keyType, valueType, config, Hash>::insert(const keyType&, const valueType&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:105:36: error: ‘is_bounded_array_v’ is not a member of ‘std’
  105 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                    ^~~~~~~~~~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:105:64: error: expected primary-expression before ‘>’ token
  105 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                                                ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple.h:105:65: error: expected primary-expression before ‘)’ token
  105 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                                                 ^
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:8,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple2.h: In member function ‘constexpr void Simple2HashMap<keyType, valueType, config, Hash>::insert(const keyType&, valueType)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple2.h:117:36: error: ‘is_bounded_array_v’ is not a member of ‘std’
  117 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                    ^~~~~~~~~~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple2.h:117:64: error: expected primary-expression before ‘>’ token
  117 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                                                ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple2.h:117:65: error: expected primary-expression before ‘)’ token
  117 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                                                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple2.h: In member function ‘constexpr Simple2HashMap<keyType, valueType, config, Hash>::inner_data_type Simple2HashMap<keyType, valueType, config, Hash>::ptr(Simple2HashMap<keyType, valueType, config, Hash>::index_type)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple2.h:145:36: error: ‘is_bounded_array_v’ is not a member of ‘std’
  145 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                    ^~~~~~~~~~~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple2.h:145:64: error: expected primary-expression before ‘>’ token
  145 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                                                ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/simple2.h:145:65: error: expected primary-expression before ‘)’ token
  145 |                 if constexpr (std::is_bounded_array_v<data_type>) {
      |                                                                 ^
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch_hash.h:21,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch.h:14,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:10,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/growth_policy.h: In constructor ‘constexpr cryptanalysislib::hh::prime_growth_policy::prime_growth_policy(std::size_t&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/growth_policy.h:239:57: error: call to non-‘constexpr’ function ‘_ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = const long unsigned int*; _Tp = long unsigned int]’
  239 |                         auto it_prime = std::lower_bound(
      |                                         ~~~~~~~~~~~~~~~~^
  240 |                                 detail::PRIMES.begin(), detail::PRIMES.end(), min_bucket_count_in_out);
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/memory:63,
                 from /root/autodl-tmp/benchmark-main/build/third_party/googletest/src/googletest/include/gtest/gtest.h:57,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:1490:5: note: ‘_ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = const long unsigned int*; _Tp = long unsigned int]’ declared here
 1490 |     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
      |     ^~~~~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch_hash.h:21,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch.h:14,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:10,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/growth_policy.h:252:17: error: member ‘cryptanalysislib::hh::prime_growth_policy::m_iprime’ must be initialized by mem-initializer in ‘constexpr’ constructor
  252 |                 }
      |                 ^
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/growth_policy.h:273:26: note: declared here
  273 |                 uint32_t m_iprime;
      |                          ^~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch.h:14,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:10,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch_hash.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch_hash.h:196:25: error: ‘constexpr’ destructors only available with ‘-std=c++20’ or ‘-std=gnu++20’
  196 |                         constexpr ~hopscotch_bucket() noexcept {
      |                         ^~~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch.h:17,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:10,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/ska_flat.h:135:9: error: ‘constexpr’ destructors only available with ‘-std=c++20’ or ‘-std=gnu++20’
  135 |         constexpr ~sherwood_v3_entry() {}
      |         ^~~~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/ska_flat.h:353:9: error: ‘constexpr’ destructors only available with ‘-std=c++20’ or ‘-std=gnu++20’
  353 |         constexpr ~sherwood_v3_table() noexcept {
      |         ^~~~~~~~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch.h:17,
                 from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:10,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/ska_flat.h: In constructor ‘constexpr sherwood_v10_table<T, FindKey, ArgumentHash, Hasher, ArgumentEqual, Equal, ArgumentAlloc, EntryAlloc, BucketAllocator>::sherwood_v10_table(const sherwood_v10_table<T, FindKey, ArgumentHash, Hasher, ArgumentEqual, Equal, ArgumentAlloc, EntryAlloc, BucketAllocator>&, const ArgumentAlloc&)’:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/ska_flat.h:937:17: warning: ‘try’ in ‘constexpr’ function only available with ‘-std=c++20’ or ‘-std=gnu++20’
  937 |                 try {
      |                 ^~~
In file included from /root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap.h:10,
                 from /root/autodl-tmp/decoding/src/mitm.h:7,
                 from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch.h: At global scope:
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch.h:25:1: error: ‘concept’ does not name a type
   25 | concept InternalHashMapAble =
      | ^~~~~~~
/root/autodl-tmp/decoding/deps/cryptanalysislib/src/container/hashmap/hopscotch.h:25:1: note: ‘concept’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/src/mitm.h:128:1: error: ‘requires’ does not name a type
  128 | requires HashMapAble<HashMap>
      | ^~~~~~~~
/root/autodl-tmp/decoding/src/mitm.h:128:1: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
/root/autodl-tmp/decoding/src/mitm.h:368:1: error: ‘requires’ does not name a type
  368 | requires HashMapAble<HashMap>
      | ^~~~~~~~
/root/autodl-tmp/decoding/src/mitm.h:368:1: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
In file included from /root/autodl-tmp/decoding/tests/isd.cpp:5:
/root/autodl-tmp/decoding/src/mitm.h:586:1: error: ‘requires’ does not name a type
  586 | requires HashMapAble<HashMap1> && HashMapAble<HashMap2>
      | ^~~~~~~~
/root/autodl-tmp/decoding/src/mitm.h:586:1: note: ‘requires’ only available with ‘-std=c++20’ or ‘-fconcepts’
make[2]: *** [CMakeFiles/isd.dir/build.make:76: CMakeFiles/isd.dir/isd.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:236: CMakeFiles/isd.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
FloydZ commented 2 months ago

Hi, I just updated the dependencies of cryptanalyislib in decoding. For me everything compiles. But please note the following:

identitymapping commented 2 months ago

I replaced updated cryptanalyislib package and upgraded to gcc-11 and clang-11 above, but when I compiling the samples in tests under decoding, the above problem still occurs. I don't know if it's a problem with the CMakeLists.txt file or my compilation method (I first create a new build file under the tests file, and then execute the cmake../ and make commands)