Forum
    • Categories
    • Register
    • Login

    Invalid use of incomplete type vSIMDType

    Scheduled Pinned Locked Moved Bug Reports
    33 Posts 4 Posters 1.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • David HealeyD
      David Healey @Christoph Hart
      last edited by David Healey

      @Christoph-Hart That wasn't changed in the commit. Also looks like that's just a Windows flag.

      Free HISE Bootcamp Full Course for beginners.
      YouTube Channel - Public HISE tutorials
      My Patreon - HISE tutorials

      1 Reply Last reply Reply Quote 0
      • David HealeyD David Healey referenced this topic on
      • David HealeyD
        David Healey @Christoph Hart
        last edited by

        @Christoph-Hart Bump bump

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

        1 Reply Last reply Reply Quote 0
        • iamlampreyI
          iamlamprey
          last edited by

          just began my linux HISE journey and also getting this error on a clean install 🙂

          David HealeyD 1 Reply Last reply Reply Quote 0
          • David HealeyD
            David Healey @iamlamprey
            last edited by

            @iamlamprey Yeah I'm not sure what's causing it because it works on my fork and I've merged all of Christoph's changes. I need to do a diff and see if I can find the source of the issue but I don't have time at the moment.

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - Public HISE tutorials
            My Patreon - HISE tutorials

            iamlampreyI 1 Reply Last reply Reply Quote 0
            • iamlampreyI
              iamlamprey @David Healey
              last edited by

              @d-healey Clanker found it for me:

              HISE/hi_streaming/hi_streaming/MonolithAudioFormat.cpp

              juce::AudioFormatReader* HlacMonolithInfo::createUserInterfaceReader(int sampleIndex, int channelIndex, int64 realSampleLength)
              {
              	if (isPositiveAndBelow(sampleIndex, sampleInfo.size()))
              	{
              		const auto& info = sampleInfo[sampleIndex];
              
              		const int64 start = info.start;
              
              		// replace this (line 370):
              		const int64 length = jmin<int64>(realSampleLength, info.length);
              
              		// with this:
              		const int64 length = std::min<int64>(realSampleLength, info.length);
              
              		// or this:
              		const int64 length = jmin((int64) realSampleLength, (int64) info.length);
              
              		// rest of function
              	}
              }
              

              @Christoph-Hart Simple fix above, not sure which version is better but the std::min one works for the latest Ubuntu LTS

              David HealeyD 2 Replies Last reply Reply Quote 0
              • David HealeyD
                David Healey @iamlamprey
                last edited by

                @iamlamprey said in Invalid use of incomplete type vSIMDType:

                Clanker

                What this?

                Free HISE Bootcamp Full Course for beginners.
                YouTube Channel - Public HISE tutorials
                My Patreon - HISE tutorials

                iamlampreyI 1 Reply Last reply Reply Quote 0
                • iamlampreyI
                  iamlamprey @David Healey
                  last edited by

                  @d-healey chatGPT lol

                  1 Reply Last reply Reply Quote 1
                  • David HealeyD
                    David Healey @iamlamprey
                    last edited by

                    @iamlamprey said in Invalid use of incomplete type vSIMDType:

                    Clanker found it for me:

                    I think it's lying to you again. This is the line in my fork and it compiles without issue

                    https://github.com/davidhealey/HISE/blob/development/hi_streaming/hi_streaming/MonolithAudioFormat.cpp#L371

                    Free HISE Bootcamp Full Course for beginners.
                    YouTube Channel - Public HISE tutorials
                    My Patreon - HISE tutorials

                    iamlampreyI OrvillainO David HealeyD 3 Replies Last reply Reply Quote 0
                    • iamlampreyI
                      iamlamprey @David Healey
                      last edited by

                      @d-healey I'm not sure if it's lying necessarily, more likely there's multiple ways to skin a cat

                      Either way it worked on my end, tested on Ubuntu LTS and the latest Mint

                      1 Reply Last reply Reply Quote 0
                      • OrvillainO
                        Orvillain @David Healey
                        last edited by

                        @d-healey I think this is a Linux compiler thing. On Linux int64_t is defined as long int - whereas Windows and Mac it is defined as long long int.

                        The compiler is throwing a wobbly because of that.

                        I think.

                        Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                        Crafting sound at every level. From strings to signal paths, samples to systems.

                        David HealeyD 1 Reply Last reply Reply Quote 0
                        • David HealeyD
                          David Healey @Orvillain
                          last edited by

                          @Orvillain said in Invalid use of incomplete type vSIMDType:

                          I think this is a Linux compiler thing.

                          Linux user here

                          Free HISE Bootcamp Full Course for beginners.
                          YouTube Channel - Public HISE tutorials
                          My Patreon - HISE tutorials

                          OrvillainO 1 Reply Last reply Reply Quote 0
                          • OrvillainO
                            Orvillain @David Healey
                            last edited by Orvillain

                            @David-Healey said in Invalid use of incomplete type vSIMDType:

                            @Orvillain said in Invalid use of incomplete type vSIMDType:

                            I think this is a Linux compiler thing.

                            Linux user here

                            Yeah I know. You're getting the issue with the dev branch but not your fork right? Your error:

                            ../../../../../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>’}
                            

                            That is telling you that SIMDRegister/SIMDNativeOps is being used incorrectly. The only thing I can think of is that it is being called with long long int, which is correct for Windows and Mac... but on Linux I think it should be called with long int - not long long int.

                            I'd check that line in your fork and dev branch and make sure it is the same, if you haven't already.

                            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                            Crafting sound at every level. From strings to signal paths, samples to systems.

                            David HealeyD 1 Reply Last reply Reply Quote 0
                            • David HealeyD
                              David Healey @Orvillain
                              last edited by

                              @Orvillain That line is in a JUCE module, we no touch those.

                              Free HISE Bootcamp Full Course for beginners.
                              YouTube Channel - Public HISE tutorials
                              My Patreon - HISE tutorials

                              OrvillainO 1 Reply Last reply Reply Quote 0
                              • OrvillainO
                                Orvillain @David Healey
                                last edited by Orvillain

                                @David-Healey Well I don't know what else to tell you: https://forum.juce.com/t/int64-t-vs-juce-int64/45358

                                As reported here - it is a typedef issue, specifically affecting Linux compiles.

                                Actually, I might have that wrong. That thread is about juce:int_64.

                                Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                Crafting sound at every level. From strings to signal paths, samples to systems.

                                David HealeyD 1 Reply Last reply Reply Quote 0
                                • David HealeyD
                                  David Healey @Orvillain
                                  last edited by

                                  @Orvillain That line is the same in my fork and in Christoph's so I don't think that's the cause

                                  Free HISE Bootcamp Full Course for beginners.
                                  YouTube Channel - Public HISE tutorials
                                  My Patreon - HISE tutorials

                                  1 Reply Last reply Reply Quote 0
                                  • iamlampreyI
                                    iamlamprey
                                    last edited by

                                    This SIMD stuff is quite the pest, getting similar errors on MacOS even after my "fix":

                                    In file included from /Users/user/Documents/altar/DspNetworks/Binaries/Source/Main.cpp:6:
                                    In file included from /Users/user/Documents/HISE/hi_dsp_library/hi_dsp_library.h:55:
                                    In file included from /Users/user/Documents/HISE/hi_tools/hi_tools.h:148:
                                    In file included from /Users/user/Documents/HISE/hi_dsp_library/../hi_tools/../hi_streaming/hi_streaming.h:62:
                                    In file included from /Users/user/Documents/HISE/JUCE/modules/juce_dsp/juce_dsp.h:236:
                                    /Users/user/Documents/HISE/hi_dsp_library/../hi_tools/../hi_streaming/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h:85:32: error: implicit instantiation of undefined template 'juce::dsp::SIMDNativeOps<unsigned long>'
                                        using vSIMDType = typename NativeOps::vSIMDType;
                                    

                                    And here's an old post from the man himself:

                                    https://forum.juce.com/t/dsp-module-breaks-compilation-on-linux/27346/4

                                    Seems like it's either a JUCE issue, or just the different behaviors of different compilers

                                    David HealeyD 1 Reply Last reply Reply Quote 0
                                    • David HealeyD
                                      David Healey @iamlamprey
                                      last edited by

                                      @iamlamprey said in Invalid use of incomplete type vSIMDType:

                                      Seems like it's either a JUCE issue, or just the different behaviors of different compilers

                                      Which compiler are you using on MacOS? Does my fork work?

                                      Free HISE Bootcamp Full Course for beginners.
                                      YouTube Channel - Public HISE tutorials
                                      My Patreon - HISE tutorials

                                      iamlampreyI 1 Reply Last reply Reply Quote 0
                                      • iamlampreyI
                                        iamlamprey @David Healey
                                        last edited by

                                        @David-Healey Whatever the default is, I think clang

                                        I should clarify: this error is happening when I try and compile third-party nodes, HISE itself built just fine. i doubt I could use your fork since mine has Altar-specific changes to include the Rubberband library

                                        1 Reply Last reply Reply Quote 0
                                        • iamlampreyI
                                          iamlamprey
                                          last edited by

                                          Still working at this, found another juce thread:

                                          https://forum.juce.com/t/dsp-module-no-longer-compiles-on-linux-after-april-17th-commit/27684/6

                                          d3de2b48-0322-48d0-bbae-2317a8f5ab2d-{7D973138-55F5-4E38-85B3-2BA3EC9FBD57}.png

                                          possibly related to the explicit template with jmin? there's a few of those in that monolith file

                                          this clank also fixes that particular error:

                                          // Include this AFTER juce_dsp.h
                                          // It aliases unsigned long to the existing uint64_t SIMDNativeOps specialization,
                                          // fixing builds on platforms where MaskType resolves to unsigned long.
                                          
                                          #pragma once
                                          
                                          #include "juce_dsp/juce_dsp.h"
                                          
                                          namespace juce { namespace dsp {
                                              template<> struct SIMDNativeOps<unsigned long> : SIMDNativeOps<std::uint64_t> {};
                                          }}
                                          

                                          which forces it to use uint64_t, but I'm also getting a bunch of Reference to Point is ambiguous errors so this all might just be xcode doing xcode things...

                                          David HealeyD 1 Reply Last reply Reply Quote 0
                                          • David HealeyD
                                            David Healey @iamlamprey
                                            last edited by

                                            @iamlamprey have you tried a diff between my fork and the develop branch?

                                            Free HISE Bootcamp Full Course for beginners.
                                            YouTube Channel - Public HISE tutorials
                                            My Patreon - HISE tutorials

                                            iamlampreyI 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            23

                                            Online

                                            2.1k

                                            Users

                                            13.1k

                                            Topics

                                            113.5k

                                            Posts