Makefile:83: GCC currently produces very slow binaries for Stormphrax
Downloading default network nightwoods.nnue
curl -sOL https://github.com/Ciekce/stormphrax-nets/releases/download/nightwoods/nightwoods.nnue
g++ -std=c++20 -O3 -flto -DNDEBUG -DSP_NETWORK_FILE=\"nightwoods.nnue\" -DSP_VERSION=6.0.0 -D_SILENCE_CXX20_ATOMIC_INIT_DEPRECATION_WARNING -DSP_NATIVE -march=native -DSP_FAST_PEXT -pthread -o sp_profile -DSP_PGO_PROFILE -fprofile-generate src/main.cpp src/uci.cpp src/util/split.cpp src/position/position.cpp src/movegen.cpp src/search.cpp src/util/timer.cpp src/pretty.cpp src/ttable.cpp src/limit/time.cpp src/eval/nnue.cpp src/perft.cpp src/bench.cpp src/tunable.cpp src/opts.cpp src/3rdparty/fathom/tbprobe.cpp src/datagen/datagen.cpp src/wdl.cpp src/cuckoo.cpp src/datagen/marlinformat.cpp src/datagen/viriformat.cpp src/datagen/fen.cpp src/tb.cpp src/3rdparty/zstd/zstddeclib.c src/eval/nnue/io_impl.cpp src/util/ctrlc.cpp src/attacks/black_magic/attacks.cpp src/attacks/bmi2/attacks.cpp
In file included from src/position/../util/bits.h:29,
from src/position/../bitboard.h:26,
from src/position/boards.h:26,
from src/position/position.h:29,
from src/search.h:37,
from src/bench.h:23,
from src/main.cpp:20:
src/position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
src/search.h:313:27: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
313 | template <>
| ^
src/search.h:314:22: error: template-id ‘search<false, true>’ in declaration of primary template
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
In file included from src/position/../util/bits.h:29,
from src/position/../bitboard.h:26,
from src/position/boards.h:26,
from src/position/position.h:29,
from src/uci.cpp:34:
src/position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/uci.cpp:35:
src/search.h:313:27: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
313 | template <>
| ^
src/search.h:314:22: error: template-id ‘search<false, true>’ in declaration of primary template
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
In file included from src/position/../util/bits.h:29,
from src/position/../bitboard.h:26,
from src/position/boards.h:26,
from src/position/position.h:29,
from src/position/position.cpp:19:
src/position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/position/../util/bits.h:29,
from src/position/../bitboard.h:26,
from src/position/boards.h:26,
from src/position/position.h:29,
from src/movegen.h:24,
from src/movegen.cpp:19:
src/position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/position/../util/bits.h:29,
from src/position/../bitboard.h:26,
from src/position/boards.h:26,
from src/position/position.h:29,
from src/search.h:37,
from src/search.cpp:19:
src/position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
src/search.h:313:27: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
313 | template <>
| ^
src/search.h:314:22: error: template-id ‘search<false, true>’ in declaration of primary template
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp: In instantiation of ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool) [with bool PvNode = true; bool RootNode = true; stormphrax::Score = int; stormphrax::i32 = int; stormphrax::u32 = unsigned int]’:
src/search.cpp:370:34: required from here
370 | newScore = search<true, true>(thread, thread.rootPv, aspDepth, 0, 0, alpha, beta, false);
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.cpp:693:59: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
693 | const auto score = -search(thread, curr.pv, depth - R,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
694 | ply + 1, moveStackIdx, -beta, -beta + 1, !cutnode);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:693:59: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
693 | const auto score = -search(thread, curr.pv, depth - R,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
694 | ply + 1, moveStackIdx, -beta, -beta + 1, !cutnode);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:732:64: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
732 | score = -search(thread, curr.pv, probcutDepth - 1, ply + 1,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
733 | moveStackIdx + 1, -probcutBeta, -probcutBeta + 1, !cutnode);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:732:64: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
732 | score = -search(thread, curr.pv, probcutDepth - 1, ply + 1,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
733 | moveStackIdx + 1, -probcutBeta, -probcutBeta + 1, !cutnode);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:861:58: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
861 | const auto score = search(thread, curr.pv, sDepth, ply, moveStackIdx + 1, sBeta - 1, sBeta, cutnode);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:861:58: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
861 | const auto score = search(thread, curr.pv, sDepth, ply, moveStackIdx + 1, sBeta - 1, sBeta, cutnode);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:911:56: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
911 | score = -search(thread, curr.pv, reduced, ply + 1, moveStackIdx + 1, -alpha - 1, -alpha, true);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:911:56: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
911 | score = -search(thread, curr.pv, reduced, ply + 1, moveStackIdx + 1, -alpha - 1, -alpha, true);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:920:64: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
920 | score = -search(thread, curr.pv, newDepth, ply + 1,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
921 | moveStackIdx + 1, -alpha - 1, -alpha, !cutnode);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:920:64: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
920 | score = -search(thread, curr.pv, newDepth, ply + 1,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
921 | moveStackIdx + 1, -alpha - 1, -alpha, !cutnode);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:934:56: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
934 | score = -search(thread, curr.pv, newDepth, ply + 1,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
935 | moveStackIdx + 1, -alpha - 1, -alpha, !cutnode);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:934:56: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
934 | score = -search(thread, curr.pv, newDepth, ply + 1,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
935 | moveStackIdx + 1, -alpha - 1, -alpha, !cutnode);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:314:22: note: declared here
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
In file included from src/util/bits.h:29,
from src/bitboard.h:26,
from src/pretty.h:25,
from src/pretty.cpp:19:
src/util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33,
from src/pretty.h:26:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/ttable.h:31,
from src/ttable.cpp:19:
src/arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/eval/nnue/../../util/simd.h:25,
from src/eval/nnue/activation.h:29,
from src/eval/arch.h:25,
from src/eval/nnue.h:25,
from src/eval/nnue.cpp:19:
src/eval/nnue/../../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/eval/nnue/../../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/eval/nnue/../../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/eval/nnue/../../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/eval/nnue/../../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/eval/nnue/input.h:33,
from src/eval/nnue.h:26:
src/eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/position/../util/bits.h:29,
from src/position/../bitboard.h:26,
from src/position/boards.h:26,
from src/position/position.h:29,
from src/perft.h:24,
from src/perft.cpp:19:
src/position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/position/../util/bits.h:29,
from src/position/../bitboard.h:26,
from src/position/boards.h:26,
from src/position/position.h:29,
from src/search.h:37,
from src/bench.h:23,
from src/bench.cpp:19:
src/position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
src/search.h:313:27: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
313 | template <>
| ^
src/search.h:314:22: error: template-id ‘search<false, true>’ in declaration of primary template
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
In file included from src/3rdparty/fathom/../../util/bits.h:29,
from src/3rdparty/fathom/tbconfig.h:29,
from src/3rdparty/fathom/tbprobe.h:27,
from src/3rdparty/fathom/tbprobe.cpp:40:
src/3rdparty/fathom/../../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/fathom/../../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/3rdparty/fathom/../../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/3rdparty/fathom/../../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/3rdparty/fathom/../../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/3rdparty/fathom/../../position/../eval/nnue/input.h:33,
from src/3rdparty/fathom/../../position/../eval/nnue.h:26,
from src/3rdparty/fathom/../../position/position.h:33,
from src/3rdparty/fathom/../../search.h:37,
from src/3rdparty/fathom/tbconfig.h:31:
src/3rdparty/fathom/../../position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/3rdparty/fathom/../../position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/3rdparty/fathom/../../position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/3rdparty/fathom/../../position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/3rdparty/fathom/../../position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/3rdparty/fathom/../../position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/fathom/../../position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/3rdparty/fathom/../../position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/3rdparty/fathom/../../position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/fathom/../../position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
src/3rdparty/fathom/../../search.h:313:27: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
313 | template <>
| ^
src/3rdparty/fathom/../../search.h:314:22: error: template-id ‘search<false, true>’ in declaration of primary template
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
In file included from src/datagen/../position/../util/bits.h:29,
from src/datagen/../position/../bitboard.h:26,
from src/datagen/../position/boards.h:26,
from src/datagen/../position/position.h:29,
from src/datagen/../search.h:37,
from src/datagen/datagen.cpp:30:
src/datagen/../position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/datagen/../position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/datagen/../position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/datagen/../position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/datagen/../position/../eval/nnue/input.h:33,
from src/datagen/../position/../eval/nnue.h:26,
from src/datagen/../position/position.h:33:
src/datagen/../position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/datagen/../position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/datagen/../position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
src/datagen/../search.h:313:27: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
313 | template <>
| ^
src/datagen/../search.h:314:22: error: template-id ‘search<false, true>’ in declaration of primary template
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
In file included from src/datagen/viriformat.h:25,
from src/datagen/datagen.cpp:36:
src/datagen/marlinformat.h:37:43: warning: ignoring packed attribute because of unpacked non-POD field ‘stormphrax::util::U4Array<32> stormphrax::datagen::marlinformat::PackedBoard::pieces’
37 | util::U4Array<32> pieces;
| ^~~~~~
In file included from src/attacks/../util/bits.h:29,
from src/attacks/../bitboard.h:26,
from src/attacks/attacks.h:27,
from src/cuckoo.cpp:25:
src/attacks/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/attacks/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/attacks/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/attacks/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/attacks/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/datagen/../position/../util/bits.h:29,
from src/datagen/../position/../bitboard.h:26,
from src/datagen/../position/boards.h:26,
from src/datagen/../position/position.h:29,
from src/datagen/format.h:29,
from src/datagen/marlinformat.h:25,
from src/datagen/marlinformat.cpp:19:
src/datagen/../position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/datagen/../position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/datagen/../position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/datagen/../position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/datagen/../position/../eval/nnue/input.h:33,
from src/datagen/../position/../eval/nnue.h:26,
from src/datagen/../position/position.h:33:
src/datagen/../position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/datagen/../position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/datagen/../position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
src/datagen/marlinformat.h:37:43: warning: ignoring packed attribute because of unpacked non-POD field ‘stormphrax::util::U4Array<32> stormphrax::datagen::marlinformat::PackedBoard::pieces’
37 | util::U4Array<32> pieces;
| ^~~~~~
In file included from src/datagen/../position/../util/bits.h:29,
from src/datagen/../position/../bitboard.h:26,
from src/datagen/../position/boards.h:26,
from src/datagen/../position/position.h:29,
from src/datagen/format.h:29,
from src/datagen/viriformat.h:24,
from src/datagen/viriformat.cpp:19:
src/datagen/../position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/datagen/../position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/datagen/../position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/datagen/../position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/datagen/../position/../eval/nnue/input.h:33,
from src/datagen/../position/../eval/nnue.h:26,
from src/datagen/../position/position.h:33:
src/datagen/../position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/datagen/../position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/datagen/../position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/datagen/viriformat.h:25:
src/datagen/marlinformat.h:37:43: warning: ignoring packed attribute because of unpacked non-POD field ‘stormphrax::util::U4Array<32> stormphrax::datagen::marlinformat::PackedBoard::pieces’
37 | util::U4Array<32> pieces;
| ^~~~~~
In file included from src/datagen/../position/../util/bits.h:29,
from src/datagen/../position/../bitboard.h:26,
from src/datagen/../position/boards.h:26,
from src/datagen/../position/position.h:29,
from src/datagen/format.h:29,
from src/datagen/fen.h:25,
from src/datagen/fen.cpp:19:
src/datagen/../position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/datagen/../position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/datagen/../position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/datagen/../position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/datagen/../position/../eval/nnue/input.h:33,
from src/datagen/../position/../eval/nnue.h:26,
from src/datagen/../position/position.h:33:
src/datagen/../position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/datagen/../position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/datagen/../position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/position/../util/bits.h:29,
from src/position/../bitboard.h:26,
from src/position/boards.h:26,
from src/position/position.h:29,
from src/tb.h:23,
from src/tb.cpp:19:
src/position/../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/position/../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/position/../eval/nnue/input.h:33,
from src/position/../eval/nnue.h:26,
from src/position/position.h:33:
src/position/../eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/position/../eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/position/../eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/position/../eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
src/position/../eval/nnue/input.h:247:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:247:37: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet> >’
247 | using Accumulator = Accumulator<FeatureTransformer<Type, Outputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:39:15: note: declared here
39 | class Accumulator
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:248:23: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:248:38: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, Outputs, FeatureSet>, FeatureSet::RefreshTableSize>’
248 | using RefreshTable = RefreshTable<FeatureTransformer<Type, Outputs, FeatureSet>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
249 | FeatureSet::RefreshTableSize>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:225:16: note: declared here
225 | struct RefreshTable
| ^~~~~~~~~~~~
In file included from src/3rdparty/fathom/tbconfig.h:31,
from src/3rdparty/fathom/tbprobe.h:27,
from src/tb.cpp:22:
src/3rdparty/fathom/../../search.h:313:27: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
313 | template <>
| ^
src/3rdparty/fathom/../../search.h:314:22: error: template-id ‘search<false, true>’ in declaration of primary template
314 | auto search<false, true>(ThreadData &thread, PvList &pv, i32 depth, i32 ply,
| ^~~~~~~~~~~~~~~~~~~
In file included from src/eval/nnue/io_impl.h:31,
from src/eval/nnue/io_impl.cpp:19:
src/eval/nnue/io.h:36:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
36 | template <>
| ^
src/eval/nnue/io.h:37:29: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
37 | inline auto read<i16>(std::span<i16> dst) -> bool
| ^~~~~~~~~
src/eval/nnue/io.h:51:27: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
51 | template <>
| ^
src/eval/nnue/io.h:52:29: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
52 | inline auto write<i16>(std::span<i16> src) -> bool
| ^~~~~~~~~~
In file included from src/attacks/black_magic/../../util/bits.h:29,
from src/attacks/black_magic/../../bitboard.h:26,
from src/attacks/black_magic/../attacks.h:27,
from src/attacks/black_magic/attacks.cpp:19:
src/attacks/black_magic/../../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/attacks/black_magic/../../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/attacks/black_magic/../../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/attacks/black_magic/../../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/attacks/black_magic/../../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
In file included from src/attacks/bmi2/../../util/bits.h:29,
from src/attacks/bmi2/../../bitboard.h:26,
from src/attacks/bmi2/../attacks.h:27,
from src/attacks/bmi2/attacks.cpp:19:
src/attacks/bmi2/../../util/../arch.h:93:45: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
93 | constexpr auto CacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/attacks/bmi2/../../util/../arch.h:93:45: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/attacks/bmi2/../../util/../arch.h:93:45: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/attacks/bmi2/../../util/../arch.h:93:45: note: the default value for the current CPU tuning is 64 bytes
src/attacks/bmi2/../../util/../arch.h:93:45: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
make: *** [Makefile:139: Stormphrax-95B4EBEB] Error 1