Makefile:91: GCC currently produces very slow binaries for Stormphrax
Downloading default network mire.nnue
curl -sOL https://github.com/Ciekce/stormphrax-nets/releases/download/mire/mire.nnue
g++ -Isrc/3rdparty/fmt/include -std=c++20 -O3 -flto -DNDEBUG -DSP_NETWORK_FILE=\"mire.nnue\" -DSP_VERSION=7.0.0 -D_SILENCE_CXX20_ATOMIC_INIT_DEPRECATION_WARNING -DSP_NATIVE -march=native -DSP_FAST_PEXT -pthread -o Stormphrax-100DB563 src/3rdparty/fmt/src/format.cc src/main.cpp src/core.cpp src/uci.cpp src/util/split.cpp src/move.cpp src/position/position.cpp src/movegen.cpp src/search.cpp src/util/timer.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/pyrrhic/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/stats.cpp src/attacks/black_magic/attacks.cpp src/attacks/bmi2/attacks.cpp
In file included from src/position/../attacks/../util/bits.h:26,
from src/position/../attacks/../bitboard.h:26,
from src/position/../attacks/attacks.h:26,
from src/position/position.h:31,
from src/correction.h:27,
from src/search.h:37,
from src/bench.h:23,
from src/main.cpp:19:
src/position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/position/../eval/arch.h:26,
from src/position/../eval/nnue.h:26,
from src/position/position.h:32:
src/position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/position/../eval/nnue.h:29:
src/position/../eval/nnue/input.h: At global scope:
src/position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
src/search.h:395:19: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
395 | template <>
| ^
src/search.h:396:15: error: template-id ‘search<false, true>’ in declaration of primary template
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
In file included from src/3rdparty/pyrrhic/../../util/bits.h:26,
from src/3rdparty/pyrrhic/tbconfig.h:28,
from src/3rdparty/pyrrhic/tbprobe.h:32,
from src/uci.cpp:28:
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: 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/pyrrhic/../../position/../eval/nnue/arch/multilayer.h:31,
from src/3rdparty/pyrrhic/../../position/../eval/arch.h:26,
from src/3rdparty/pyrrhic/../../position/../eval/nnue.h:26,
from src/3rdparty/pyrrhic/../../position/position.h:32,
from src/3rdparty/pyrrhic/../../correction.h:27,
from src/3rdparty/pyrrhic/../../search.h:37,
from src/3rdparty/pyrrhic/tbconfig.h:30:
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/3rdparty/pyrrhic/../../position/../eval/nnue.h:29:
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h: At global scope:
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
src/3rdparty/pyrrhic/../../search.h:395:19: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
395 | template <>
| ^
src/3rdparty/pyrrhic/../../search.h:396:15: error: template-id ‘search<false, true>’ in declaration of primary template
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
In file included from src/position/../attacks/../util/bits.h:26,
from src/position/../attacks/../bitboard.h:26,
from src/position/../attacks/attacks.h:26,
from src/position/position.h:31,
from src/move.cpp:22:
src/position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/position/../eval/arch.h:26,
from src/position/../eval/nnue.h:26,
from src/position/position.h:32:
src/position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/position/../eval/nnue.h:29:
src/position/../eval/nnue/input.h: At global scope:
src/position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
In file included from src/position/../attacks/../util/bits.h:26,
from src/position/../attacks/../bitboard.h:26,
from src/position/../attacks/attacks.h:26,
from src/position/position.h:31,
from src/position/position.cpp:19:
src/position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/position/../eval/arch.h:26,
from src/position/../eval/nnue.h:26,
from src/position/position.h:32:
src/position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/position/../eval/nnue.h:29:
src/position/../eval/nnue/input.h: At global scope:
src/position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
In file included from src/position/../attacks/../util/bits.h:26,
from src/position/../attacks/../bitboard.h:26,
from src/position/../attacks/attacks.h:26,
from src/position/position.h:31,
from src/movegen.h:24,
from src/movegen.cpp:19:
src/position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/position/../eval/arch.h:26,
from src/position/../eval/nnue.h:26,
from src/position/position.h:32:
src/position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/position/../eval/nnue.h:29:
src/position/../eval/nnue/input.h: At global scope:
src/position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
In file included from src/position/../attacks/../util/bits.h:26,
from src/position/../attacks/../bitboard.h:26,
from src/position/../attacks/attacks.h:26,
from src/position/position.h:31,
from src/correction.h:27,
from src/search.h:37,
from src/search.cpp:19:
src/position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/position/../eval/arch.h:26,
from src/position/../eval/nnue.h:26,
from src/position/position.h:32:
src/position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/position/../eval/nnue.h:29:
src/position/../eval/nnue/input.h: At global scope:
src/position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
src/search.h:395:19: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
395 | template <>
| ^
src/search.h:396:15: error: template-id ‘search<false, true>’ in declaration of primary template
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp: In instantiation of ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool) [with bool kPvNode = true; bool kRootNode = true; stormphrax::Score = int; stormphrax::i32 = int; stormphrax::u32 = unsigned int]’:
src/search.cpp:381:50: required from here
src/search.cpp:729:35: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
729 | return -search(
| ~~~~~~^
730 | thread,
| ~~~~~~~
731 | newPos,
| ~~~~~~~
732 | curr.pv,
| ~~~~~~~~
733 | depth - R,
| ~~~~~~~~~~
734 | ply + 1,
| ~~~~~~~~
735 | moveStackIdx,
| ~~~~~~~~~~~~~
736 | -beta,
| ~~~~~~
737 | -beta + 1,
| ~~~~~~~~~~
738 | !cutnode
| ~~~~~~~~
739 | );
| ~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:729:35: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
729 | return -search(
| ~~~~~~^
730 | thread,
| ~~~~~~~
731 | newPos,
| ~~~~~~~
732 | curr.pv,
| ~~~~~~~~
733 | depth - R,
| ~~~~~~~~~~
734 | ply + 1,
| ~~~~~~~~
735 | moveStackIdx,
| ~~~~~~~~~~~~~
736 | -beta,
| ~~~~~~
737 | -beta + 1,
| ~~~~~~~~~~
738 | !cutnode
| ~~~~~~~~
739 | );
| ~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:750:31: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
750 | search(thread, pos, curr.pv, depth - R, ply, moveStackIdx + 1, beta - 1, beta, true);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:750:31: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
750 | search(thread, pos, curr.pv, depth - R, ply, moveStackIdx + 1, beta - 1, beta, true);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:788:40: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
788 | score = -search(
| ~~~~~~^
789 | thread,
| ~~~~~~~
790 | newPos,
| ~~~~~~~
791 | curr.pv,
| ~~~~~~~~
792 | probcutDepth - 1,
| ~~~~~~~~~~~~~~~~~
793 | ply + 1,
| ~~~~~~~~
794 | moveStackIdx + 1,
| ~~~~~~~~~~~~~~~~~
795 | -probcutBeta,
| ~~~~~~~~~~~~~
796 | -probcutBeta + 1,
| ~~~~~~~~~~~~~~~~~
797 | !cutnode
| ~~~~~~~~
798 | );
| ~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:788:40: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
788 | score = -search(
| ~~~~~~^
789 | thread,
| ~~~~~~~
790 | newPos,
| ~~~~~~~
791 | curr.pv,
| ~~~~~~~~
792 | probcutDepth - 1,
| ~~~~~~~~~~~~~~~~~
793 | ply + 1,
| ~~~~~~~~
794 | moveStackIdx + 1,
| ~~~~~~~~~~~~~~~~~
795 | -probcutBeta,
| ~~~~~~~~~~~~~
796 | -probcutBeta + 1,
| ~~~~~~~~~~~~~~~~~
797 | !cutnode
| ~~~~~~~~
798 | );
| ~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:923:31: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
923 | search(thread, pos, curr.pv, sDepth, ply, moveStackIdx + 1, sBeta - 1, sBeta, cutnode);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:923:31: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
923 | search(thread, pos, curr.pv, sDepth, ply, moveStackIdx + 1, sBeta - 1, sBeta, cutnode);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:983:32: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
983 | -search(thread, newPos, curr.pv, reduced, ply + 1, moveStackIdx + 1, -alpha - 1, -alpha, true);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:983:32: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
983 | -search(thread, newPos, curr.pv, reduced, ply + 1, moveStackIdx + 1, -alpha - 1, -alpha, true);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:991:40: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
991 | score = -search(
| ~~~~~~^
992 | thread,
| ~~~~~~~
993 | newPos,
| ~~~~~~~
994 | curr.pv,
| ~~~~~~~~
995 | newDepth,
| ~~~~~~~~~
996 | ply + 1,
| ~~~~~~~~
997 | moveStackIdx + 1,
| ~~~~~~~~~~~~~~~~~
998 | -alpha - 1,
| ~~~~~~~~~~~
999 | -alpha,
| ~~~~~~~
1000 | !cutnode
| ~~~~~~~~
1001 | );
| ~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:991:40: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
991 | score = -search(
| ~~~~~~^
992 | thread,
| ~~~~~~~
993 | newPos,
| ~~~~~~~
994 | curr.pv,
| ~~~~~~~~
995 | newDepth,
| ~~~~~~~~~
996 | ply + 1,
| ~~~~~~~~
997 | moveStackIdx + 1,
| ~~~~~~~~~~~~~~~~~
998 | -alpha - 1,
| ~~~~~~~~~~~
999 | -alpha,
| ~~~~~~~
1000 | !cutnode
| ~~~~~~~~
1001 | );
| ~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:1014:36: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
1014 | score = -search(
| ~~~~~~^
1015 | thread,
| ~~~~~~~
1016 | newPos,
| ~~~~~~~
1017 | curr.pv,
| ~~~~~~~~
1018 | newDepth,
| ~~~~~~~~~
1019 | ply + 1,
| ~~~~~~~~
1020 | moveStackIdx + 1,
| ~~~~~~~~~~~~~~~~~
1021 | -alpha - 1,
| ~~~~~~~~~~~
1022 | -alpha,
| ~~~~~~~
1023 | !cutnode
| ~~~~~~~~
1024 | );
| ~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
src/search.cpp:1014:36: error: use of deleted function ‘stormphrax::Score stormphrax::search::Searcher::search(stormphrax::search::ThreadData&, const stormphrax::Position&, stormphrax::search::PvList&, stormphrax::i32, stormphrax::i32, stormphrax::u32, stormphrax::Score, stormphrax::Score, bool)’
1014 | score = -search(
| ~~~~~~^
1015 | thread,
| ~~~~~~~
1016 | newPos,
| ~~~~~~~
1017 | curr.pv,
| ~~~~~~~~
1018 | newDepth,
| ~~~~~~~~~
1019 | ply + 1,
| ~~~~~~~~
1020 | moveStackIdx + 1,
| ~~~~~~~~~~~~~~~~~
1021 | -alpha - 1,
| ~~~~~~~~~~~
1022 | -alpha,
| ~~~~~~~
1023 | !cutnode
| ~~~~~~~~
1024 | );
| ~
src/search.h:396:15: note: declared here
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
In file included from src/ttable.h:28,
from src/ttable.cpp:19:
src/arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/arch.h:81:42: 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:26,
from src/eval/nnue.cpp:19:
src/eval/nnue/../../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/eval/nnue/../../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/eval/nnue/../../util/../arch.h:81:42: 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:81:42: note: the default value for the current CPU tuning is 64 bytes
src/eval/nnue/../../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/eval/arch.h:26:
src/eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/eval/nnue.h:29:
src/eval/nnue/input.h: At global scope:
src/eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
In file included from src/position/../attacks/../util/bits.h:26,
from src/position/../attacks/../bitboard.h:26,
from src/position/../attacks/attacks.h:26,
from src/position/position.h:31,
from src/perft.h:24,
from src/perft.cpp:19:
src/position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/position/../eval/arch.h:26,
from src/position/../eval/nnue.h:26,
from src/position/position.h:32:
src/position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/position/../eval/nnue.h:29:
src/position/../eval/nnue/input.h: At global scope:
src/position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
In file included from src/position/../attacks/../util/bits.h:26,
from src/position/../attacks/../bitboard.h:26,
from src/position/../attacks/attacks.h:26,
from src/position/position.h:31,
from src/correction.h:27,
from src/search.h:37,
from src/bench.h:23,
from src/bench.cpp:19:
src/position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/position/../eval/arch.h:26,
from src/position/../eval/nnue.h:26,
from src/position/position.h:32:
src/position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/position/../eval/nnue.h:29:
src/position/../eval/nnue/input.h: At global scope:
src/position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
src/search.h:395:19: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
395 | template <>
| ^
src/search.h:396:15: error: template-id ‘search<false, true>’ in declaration of primary template
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
In file included from src/3rdparty/pyrrhic/../../util/bits.h:26,
from src/3rdparty/pyrrhic/tbconfig.h:28,
from src/3rdparty/pyrrhic/tbprobe.h:32,
from src/3rdparty/pyrrhic/tbprobe.cpp:39:
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/3rdparty/pyrrhic/../../util/../arch.h:81:42: 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/pyrrhic/../../position/../eval/nnue/arch/multilayer.h:31,
from src/3rdparty/pyrrhic/../../position/../eval/arch.h:26,
from src/3rdparty/pyrrhic/../../position/../eval/nnue.h:26,
from src/3rdparty/pyrrhic/../../position/position.h:32,
from src/3rdparty/pyrrhic/../../correction.h:27,
from src/3rdparty/pyrrhic/../../search.h:37,
from src/3rdparty/pyrrhic/tbconfig.h:30:
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/3rdparty/pyrrhic/../../position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/3rdparty/pyrrhic/../../position/../eval/nnue.h:29:
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h: At global scope:
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/3rdparty/pyrrhic/../../position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
src/3rdparty/pyrrhic/../../search.h:395:19: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
395 | template <>
| ^
src/3rdparty/pyrrhic/../../search.h:396:15: error: template-id ‘search<false, true>’ in declaration of primary template
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
In file included from src/datagen/../3rdparty/pyrrhic/../../util/bits.h:26,
from src/datagen/../3rdparty/pyrrhic/tbconfig.h:28,
from src/datagen/../3rdparty/pyrrhic/tbprobe.h:32,
from src/datagen/datagen.cpp:31:
src/datagen/../3rdparty/pyrrhic/../../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/datagen/../3rdparty/pyrrhic/../../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/datagen/../3rdparty/pyrrhic/../../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/datagen/../3rdparty/pyrrhic/../../util/../arch.h:81:42: 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/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/multilayer.h:31,
from src/datagen/../3rdparty/pyrrhic/../../position/../eval/arch.h:26,
from src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue.h:26,
from src/datagen/../3rdparty/pyrrhic/../../position/position.h:32,
from src/datagen/../3rdparty/pyrrhic/../../correction.h:27,
from src/datagen/../3rdparty/pyrrhic/../../search.h:37,
from src/datagen/../3rdparty/pyrrhic/tbconfig.h:30:
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue.h:29:
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/input.h: At global scope:
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
src/datagen/../3rdparty/pyrrhic/../../search.h:395:19: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
395 | template <>
| ^
src/datagen/../3rdparty/pyrrhic/../../search.h:396:15: error: template-id ‘search<false, true>’ in declaration of primary template
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
In file included from src/datagen/datagen.cpp:42:
src/datagen/marlinformat.h:34:31: warning: ignoring packed attribute because of unpacked non-POD field ‘stormphrax::util::U4Array<32> stormphrax::datagen::marlinformat::PackedBoard::pieces’
34 | util::U4Array<32> pieces;
| ^~~~~~
src/datagen/datagen.cpp: In function ‘std::optional<stormphrax::datagen::Outcome> stormphrax::datagen::{anonymous}::probeTb(const stormphrax::Position&)’:
src/datagen/datagen.cpp:111:9: warning: control reaches end of non-void function [-Wreturn-type]
111 | }
| ^
In file included from src/attacks/../util/bits.h:26,
from src/attacks/../bitboard.h:26,
from src/attacks/attacks.h:26,
from src/cuckoo.cpp:24:
src/attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/attacks/../util/../arch.h:81:42: 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:81:42: note: the default value for the current CPU tuning is 64 bytes
src/attacks/../util/../arch.h:81:42: 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/../attacks/../util/bits.h:26,
from src/datagen/../position/../attacks/../bitboard.h:26,
from src/datagen/../position/../attacks/attacks.h:26,
from src/datagen/../position/position.h:31,
from src/datagen/marlinformat.h:25,
from src/datagen/marlinformat.cpp:19:
src/datagen/../position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/datagen/../position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/datagen/../position/../eval/arch.h:26,
from src/datagen/../position/../eval/nnue.h:26,
from src/datagen/../position/position.h:32:
src/datagen/../position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/datagen/../position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/datagen/../position/../eval/nnue.h:29:
src/datagen/../position/../eval/nnue/input.h: At global scope:
src/datagen/../position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
src/datagen/marlinformat.h:34:31: warning: ignoring packed attribute because of unpacked non-POD field ‘stormphrax::util::U4Array<32> stormphrax::datagen::marlinformat::PackedBoard::pieces’
34 | util::U4Array<32> pieces;
| ^~~~~~
In file included from src/datagen/../position/../attacks/../util/bits.h:26,
from src/datagen/../position/../attacks/../bitboard.h:26,
from src/datagen/../position/../attacks/attacks.h:26,
from src/datagen/../position/position.h:31,
from src/datagen/format.h:29,
from src/datagen/viriformat.h:24,
from src/datagen/viriformat.cpp:19:
src/datagen/../position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/datagen/../position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/datagen/../position/../eval/arch.h:26,
from src/datagen/../position/../eval/nnue.h:26,
from src/datagen/../position/position.h:32:
src/datagen/../position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/datagen/../position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/datagen/../position/../eval/nnue.h:29:
src/datagen/../position/../eval/nnue/input.h: At global scope:
src/datagen/../position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
In file included from src/datagen/viriformat.h:25:
src/datagen/marlinformat.h:34:31: warning: ignoring packed attribute because of unpacked non-POD field ‘stormphrax::util::U4Array<32> stormphrax::datagen::marlinformat::PackedBoard::pieces’
34 | util::U4Array<32> pieces;
| ^~~~~~
In file included from src/datagen/../position/../attacks/../util/bits.h:26,
from src/datagen/../position/../attacks/../bitboard.h:26,
from src/datagen/../position/../attacks/attacks.h:26,
from src/datagen/../position/position.h:31,
from src/datagen/fen.h:25,
from src/datagen/fen.cpp:19:
src/datagen/../position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/datagen/../position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/datagen/../position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/datagen/../position/../eval/arch.h:26,
from src/datagen/../position/../eval/nnue.h:26,
from src/datagen/../position/position.h:32:
src/datagen/../position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/datagen/../position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/datagen/../position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/datagen/../position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/datagen/../position/../eval/nnue.h:29:
src/datagen/../position/../eval/nnue/input.h: At global scope:
src/datagen/../position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/datagen/../position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
In file included from src/position/../attacks/../util/bits.h:26,
from src/position/../attacks/../bitboard.h:26,
from src/position/../attacks/attacks.h:26,
from src/position/position.h:31,
from src/movegen.h:24,
from src/tb.h:23,
from src/tb.cpp:19:
src/position/../attacks/../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../attacks/../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/position/../attacks/../util/../arch.h:81:42: note: if this use is part of a public ABI, change it to instead use a constant variable you define
src/position/../attacks/../util/../arch.h:81:42: note: the default value for the current CPU tuning is 64 bytes
src/position/../attacks/../util/../arch.h:81:42: 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/arch/multilayer.h:31,
from src/position/../eval/arch.h:26,
from src/position/../eval/nnue.h:26,
from src/position/position.h:32:
src/position/../eval/nnue/arch/../io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/position/../eval/nnue/arch/../io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/position/../eval/nnue/arch/../io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/../io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/position/../eval/nnue/arch/../io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
src/position/../eval/nnue/arch/multilayer.h: In member function ‘void stormphrax::eval::nnue::arch::PairwiseMultilayerCReLUSCReLUCReLU<kL1Size, kL2Size, kL3Size, kFtScaleBits, kFtQBits, kL1QBits, kDualActivation, OutputBucketing, kScale>::propagateL1(stormphrax::u32, std::span<const unsigned char, kL1Size>, std::span<int, kL2SizeFull>, const stormphrax::eval::nnue::arch::sparse::SparseContext<kL1Size>&) const’:
src/position/../eval/nnue/arch/multilayer.h:156:87: warning: ignoring attributes on template argument ‘stormphrax::util::simd::Vector<int>’ {aka ‘__m256i’} [-Wignored-attributes]
156 | SP_SIMD_ALIGNAS util::MultiArray<Vector<i32>, kL2Size / kChunkSize<i32>, 4> intermediate{};
| ^
In file included from src/position/../eval/nnue.h:29:
src/position/../eval/nnue/input.h: At global scope:
src/position/../eval/nnue/input.h:338:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::Accumulator = class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’ changes meaning of ‘Accumulator’ [-Wchanges-meaning]
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:338:29: note: used here to mean ‘class stormphrax::eval::nnue::Accumulator<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet> >’
338 | using Accumulator = Accumulator<FeatureTransformer<Type, kOutputs, FeatureSet>>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:38:11: note: declared here
38 | class Accumulator {
| ^~~~~~~~~~~
src/position/../eval/nnue/input.h:339:15: warning: declaration of ‘using stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>::RefreshTable = struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’ changes meaning of ‘RefreshTable’ [-Wchanges-meaning]
339 | using RefreshTable =
| ^~~~~~~~~~~~
src/position/../eval/nnue/input.h:340:13: note: used here to mean ‘struct stormphrax::eval::nnue::RefreshTable<stormphrax::eval::nnue::FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>’
340 | RefreshTable<FeatureTransformer<Type, kOutputs, FeatureSet>, FeatureSet::kRefreshTableSize>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/position/../eval/nnue/input.h:320:12: note: declared here
320 | struct RefreshTable {
| ^~~~~~~~~~~~
In file included from src/3rdparty/pyrrhic/tbconfig.h:30,
from src/3rdparty/pyrrhic/tbprobe.h:32,
from src/tb.cpp:21:
src/3rdparty/pyrrhic/../../search.h:395:19: error: explicit specialization in non-namespace scope ‘class stormphrax::search::Searcher’
395 | template <>
| ^
src/3rdparty/pyrrhic/../../search.h:396:15: error: template-id ‘search<false, true>’ in declaration of primary template
396 | Score search<false, true>(
| ^~~~~~~~~~~~~~~~~~~
In file included from src/eval/nnue/io_impl.h:33,
from src/eval/nnue/io_impl.cpp:19:
src/eval/nnue/io.h:34:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
34 | template <>
| ^
src/eval/nnue/io.h:35:21: error: template-id ‘read<stormphrax::i8>’ in declaration of primary template
35 | inline bool read<i8>(std::span<i8> dst) {
| ^~~~~~~~
src/eval/nnue/io.h:39:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
39 | template <>
| ^
src/eval/nnue/io.h:40:21: error: template-id ‘read<stormphrax::i16>’ in declaration of primary template
40 | inline bool read<i16>(std::span<i16> dst) {
| ^~~~~~~~~
src/eval/nnue/io.h:44:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
44 | template <>
| ^
src/eval/nnue/io.h:45:21: error: template-id ‘read<stormphrax::i32>’ in declaration of primary template
45 | inline bool read<i32>(std::span<i32> dst) {
| ^~~~~~~~~
src/eval/nnue/io.h:57:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
57 | template <>
| ^
src/eval/nnue/io.h:58:21: error: template-id ‘write<stormphrax::i8>’ in declaration of primary template
58 | inline bool write<i8>(std::span<const i8> src) {
| ^~~~~~~~~
src/eval/nnue/io.h:62:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
62 | template <>
| ^
src/eval/nnue/io.h:63:21: error: template-id ‘write<stormphrax::i16>’ in declaration of primary template
63 | inline bool write<i16>(std::span<const i16> src) {
| ^~~~~~~~~~
src/eval/nnue/io.h:67:19: error: explicit specialization in non-namespace scope ‘class stormphrax::eval::nnue::IParamStream’
67 | template <>
| ^
src/eval/nnue/io.h:68:21: error: template-id ‘write<stormphrax::i32>’ in declaration of primary template
68 | inline bool write<i32>(std::span<const i32> src) {
| ^~~~~~~~~~
In file included from src/attacks/black_magic/../../util/bits.h:26,
from src/attacks/black_magic/../../bitboard.h:26,
from src/attacks/black_magic/../attacks.h:26,
from src/attacks/black_magic/attacks.cpp:19:
src/attacks/black_magic/../../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/attacks/black_magic/../../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/attacks/black_magic/../../util/../arch.h:81:42: 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:81:42: note: the default value for the current CPU tuning is 64 bytes
src/attacks/black_magic/../../util/../arch.h:81:42: 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:26,
from src/attacks/bmi2/../../bitboard.h:26,
from src/attacks/bmi2/../attacks.h:26,
from src/attacks/bmi2/attacks.cpp:19:
src/attacks/bmi2/../../util/../arch.h:81:42: warning: use of ‘std::hardware_destructive_interference_size’ [-Winterference-size]
81 | constexpr auto kCacheLineSize = std::hardware_destructive_interference_size;
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/attacks/bmi2/../../util/../arch.h:81:42: note: its value can vary between compiler versions or with different ‘-mtune’ or ‘-mcpu’ flags
src/attacks/bmi2/../../util/../arch.h:81:42: 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:81:42: note: the default value for the current CPU tuning is 64 bytes
src/attacks/bmi2/../../util/../arch.h:81:42: note: you can stabilize this value with ‘--param hardware_destructive_interference_size=64’, or disable this warning with ‘-Wno-interference-size’
make: *** [Makefile:153: Stormphrax-100DB563] Error 1