Invalid use of incomplete type vSIMDType
-
Seeing this error when building the develop branch on Linux - doesn't happen with my fork though...
../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h:85:11: error: invalid use of incomplete type ‘using juce::dsp::SIMDRegister<long long int>::NativeOps = struct juce::dsp::SIMDNativeOps<long long int>’ {aka ‘struct juce::dsp::SIMDNativeOps<long long int>’} 85 | using vSIMDType = typename NativeOps::vSIMDType; -
@d-healey is this new? I didn‘t touch that stuff for a few months.
-
@Christoph-Hart I don't usually build the develop branch, I normally use my fork, but someone else reported it on Discord so I tested to confirm.
I'll find the commit
-
@Christoph-Hart It's this commit
https://github.com/christophhart/HISE/commit/324a82ca4e7c3edcb4f5db6b60eb2164ccc3d6e4
In file included from ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/juce_dsp.h:236, from ../../../../../hise/hi_streaming/hi_streaming.h:62, from ../../../../../hise/hi_streaming/hi_streaming.cpp:2, from ../../JuceLibraryCode/include_hi_streaming.cpp:9: ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h: In instantiation of ‘struct juce::dsp::SIMDRegister<long long int>’: ../../../../../hise/hi_streaming/hi_streaming/MonolithAudioFormat.cpp:371:35: required from here 371 | const int64 length = jmin<int64>(realSampleLength, info.length); | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h:85:11: error: invalid use of incomplete type ‘using juce::dsp::SIMDRegister<long long int>::NativeOps = struct juce::dsp::SIMDNativeOps<long long int>’ {aka ‘struct juce::dsp::SIMDNativeOps<long long int>’} 85 | using vSIMDType = typename NativeOps::vSIMDType; | ^~~~~~~~~ In file included from ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/juce_dsp.h:228: ../../../../../hise/hi_streaming/../JUCE/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h:52:8: note: declaration of ‘using juce::dsp::SIMDRegister<long long int>::NativeOps = struct juce::dsp::SIMDNativeOps<long long int>’ {aka ‘struct juce::dsp::SIMDNativeOps<long long int>’} 52 | struct SIMDNativeOps; | ^~~~~~~~~~~~~Just found some additional errors with the latest commits
ode::math::NeuralNode<256>]’ 717 | newItem.cb = PolyT::createNode; | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1300:71: required from here 1300 | registerPolyNodeRaw<NeuralNode<1>, NeuralNode<NUM_POLYPHONIC_VOICES>>(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1197:47: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<256>::NeuralType = struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’} 1197 | auto freq = NeuralType::HpfFrequency::Off; | ^~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1200:46: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<256>::NeuralType = struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’} 1200 | freq = NeuralType::HpfFrequency::Hz1; | ^~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1202:46: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<256>::NeuralType = struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic>’} 1202 | freq = NeuralType::HpfFrequency::Hz5; | ^~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp: In instantiation of ‘void scriptnode::math::NeuralNode<NV>::updateHpf(juce::Identifier, juce::var) [with int NV = 1]’: ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1108:44: required from ‘scriptnode::math::NeuralNode<NV>::NeuralNode(scriptnode::DspNetwork*, const juce::ValueTree&) [with int NV = 1]’ 535 | #define BIND_MEMBER_FUNCTION_2(x) std::bind(&x, this, std::placeholders::_1, std::placeholders::_2) ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1140:16: required from ‘static scriptnode::NodeBase* scriptnode::math::NeuralNode<NV>::createNode(scriptnode::DspNetwork*, juce::ValueTree) [with int NV = 1]’ 1140 | return new NeuralNode(n, v); | ^~~~~~~~~~~~~~~~~~~~ ../../../../../hise/hi_scripting/scripting/scriptnode/api/StaticNodeWrappers.h:725:15: required from ‘void scriptnode::NodeFactory::registerPolyNodeRaw() [with MonoT = scriptnode::math::NeuralNode<1>; PolyT = scriptnode::math::NeuralNode<256>]’ 725 | newItem.cb = MonoT::createNode; | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1300:71: required from here 1300 | registerPolyNodeRaw<NeuralNode<1>, NeuralNode<NUM_POLYPHONIC_VOICES>>(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1197:47: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<1>::NeuralType = struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’} 1197 | auto freq = NeuralType::HpfFrequency::Off; | ^~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1200:46: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<1>::NeuralType = struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’} 1200 | freq = NeuralType::HpfFrequency::Hz1; | ^~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1202:46: error: no type named ‘HpfFrequency’ in ‘using scriptnode::math::NeuralNode<1>::NeuralType = struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’ {aka ‘struct scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic>’} 1202 | freq = NeuralType::HpfFrequency::Hz5; | ^~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp: In instantiation of ‘void scriptnode::math::NeuralNode<NV>::prepare(scriptnode::PrepareSpecs) [with int NV = 1; scriptnode::PrepareSpecs = snex::Types::PrepareSpecs]’: ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1143:10: required from here 1143 | void prepare(PrepareSpecs ps) override | ^~~~~~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1150:21: error: ‘using scriptnode::math::NeuralNode<1>::BypassWrapper = class scriptnode::bypass::simple<scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic> >’ {aka ‘class scriptnode::bypass::simple<scriptnode::math::neural<1, hise::runtime_target::indexers::dynamic> >’} has no member named ‘warmup’ 1150 | obj.warmup = getRootNetwork()->getMainController()->getExtraDefinitionsValue("HISE_NEURAL_NETWORK_WARMUP_TIME", 0); | ~~~~^~~~~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp: In instantiation of ‘void scriptnode::math::NeuralNode<NV>::prepare(scriptnode::PrepareSpecs) [with int NV = 256; scriptnode::PrepareSpecs = snex::Types::PrepareSpecs]’: ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1143:10: required from here 1143 | void prepare(PrepareSpecs ps) override | ^~~~~~~ ../../../../../hise/hi_scripting/scripting/scriptnode/node_library/HiseNodeFactory.cpp:1150:21: error: ‘using scriptnode::math::NeuralNode<256>::BypassWrapper = class scriptnode::bypass::simple<scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic> >’ {aka ‘class scriptnode::bypass::simple<scriptnode::math::neural<256, hise::runtime_target::indexers::dynamic> >’} has no member named ‘warmup’ 1150 | obj.warmup = getRootNetwork()->getMainController()->getExtraDefinitionsValue("HISE_NEURAL_NETWORK_WARMUP_TIME", 0); | ~~~~^~~~~~ -
@Christoph-Hart The NeuralNode errors are resolved now.
-
It's strange because I've merged all your changes into my fork and I don't get the vSIMD errors there, I've poked around in the juicer project too but I'm not sure what the difference is.
-
@d-healey the avx flag?
-
@Christoph-Hart That wasn't changed in the commit. Also looks like that's just a Windows flag.