Forum
    • Categories
    • Register
    • Login

    New Dispatcher Issues

    Scheduled Pinned Locked Moved Bug Reports
    54 Posts 4 Posters 5.3k 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
      last edited by

      Just saw the latest commits so tried building again. Still a few errors.

      In file included from ../../../../../HISE/hi_tools/hi_dispatch/hi_dispatch.cpp:42,
                       from ../../../../../HISE/hi_tools/hi_tools.cpp:65,
                       from ../../JuceLibraryCode/include_hi_tools.cpp:9:
      ../../../../../HISE/hi_tools/hi_dispatch/02_events/RootObject.cpp:150:8: error: conflicting declaration ‘juce::uint64 hise::dispatch::RootObject::flowCounter’
        150 | uint64 RootObject::flowCounter = 0;
      
      In file included from ../../../../../HISE/hi_tools/hi_tools.cpp:81,
                       from ../../JuceLibraryCode/include_hi_tools.cpp:9:
      ../../../../../HISE/hi_tools/hi_standalone_components/ChocWebView.cpp: In member function ‘void hise::WebViewWrapper::navigateToURL(const juce::URL&)’:
      ../../../../../HISE/hi_tools/hi_standalone_components/ChocWebView.cpp:487:5: error: ‘webView’ was not declared in this scope
        487 |     webView->navigate(url.toString(false).toStdString());
      
      In file included from ../../../../../HISE/hi_scripting/hi_scripting_01.cpp:115,
                       from ../../JuceLibraryCode/include_hi_scripting_01.cpp:9:
      ../../../../../HISE/hi_scripting/scripting/hardcoded_modules/Arpeggiator.cpp: In constructor ‘hise::Arpeggiator::Arpeggiator(hise::MainController*, const juce::String&, hise::ModulatorSynth*)’:
      ../../../../../HISE/hi_scripting/scripting/hardcoded_modules/Arpeggiator.cpp:39:9: error: request for member ‘BypassListener’ is ambiguous
         39 |         BypassListener(mc->getRootDispatcher())
      
      In file included from ../../../../../HISE/hi_scripting/hi_scripting_01.cpp:115,
                       from ../../JuceLibraryCode/include_hi_scripting_01.cpp:9:
      ../../../../../HISE/hi_scripting/scripting/hardcoded_modules/Arpeggiator.cpp:39:47: error: no matching function for call to ‘hise::Processor::BypassListener::BypassListener()’
         39 |         BypassListener(mc->getRootDispatcher())
      

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

      Christoph HartC 1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart @David Healey
        last edited by

        @d-healey damnit, I thought I've fixed those, but it seems that I need to setup a VM to actually compile it on Linux. Do you have a best practice on how to set that up? Is there a faster way than installing VirtualMachine (or whatever it was called) and install a Linux distro from an ISO?

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

          @Christoph-Hart You could probably use a container instead of a full VM. Well I just tried this and I have no idea how to get to a desktop environment with it, I'm sure it's possible, but maybe a VM is simpler.

          You'll need gcc/g++ 11 (later versions don't work so far).
          Mold linker if you want faster linking - doesn't matter for debug builds though.
          I think all the other dependencies are on the github page already.

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

          Christoph HartC 1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart @David Healey
            last edited by

            @d-healey lol did you just recommend to read my own Github page for build instructions? :)

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

              @Christoph-Hart Haha, whenever I'm setting up a new system I go there to get the list of dependencies because it has it all on one line so it makes it really fast to set up.

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

              Christoph HartC 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart @David Healey
                last edited by

                @d-healey Alright, I've setup a VM (boy that was annoying, like googling "terminal doesn't open after clean install", and then 20 more of these problems)...

                Anyways, I think I've managed to fix the Linux build, I could compile a Debug version and run it, but let me know if there are still issues.

                The browser window of the Perfetto Floating Tile doesn't open (same problem as with the WebView), but you can just drag that file to a web browser with the ui.perfetto.dev URL to get the same functionality.

                Christoph HartC 1 Reply Last reply Reply Quote 1
                • Christoph HartC
                  Christoph Hart @Christoph Hart
                  last edited by

                  Oh and you need to resave the makefile, I changed the PERFETTO=1 flag so that it compiles HISE with perfetto...

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

                    @Christoph-Hart Thank you, giving this a go now. What would I need Perfetto for?

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

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

                      @Christoph-Hart Build success! Thanks again.

                      I notice some changes in the script editor. Are things like const, Content, function etc. meant to be fuzzy and bold?

                      1e058649-3067-404f-a20b-19269241fdd5-image.png

                      Develop branch looks like this:

                      6d9aec94-8377-49e3-a858-af034ea4baab-image.png

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

                      Dan KorneffD Christoph HartC 2 Replies Last reply Reply Quote 0
                      • Dan KorneffD
                        Dan Korneff @David Healey
                        last edited by

                        @d-healey I think that might be the same font change that makes my commented text show up strange.

                        Dan Korneff - Producer / Mixer / Audio Nerd

                        1 Reply Last reply Reply Quote 0
                        • Christoph HartC
                          Christoph Hart @David Healey
                          last edited by

                          @d-healey Bold yes, fuzzy no :)

                          Perfetto is a profiling SDK that lets you find hotspots in the code / your DSP algorithm and I've been injecting the profiling code all over the HISE codebase.

                          https://ui.perfetto.dev

                          It's a quite complex tool but gives you a very nice visualization of what's going on on different threads in a neat timeline.

                          Here's a little (incomplete) explanation of what you can do with it:

                          https://docs.hise.audio/ui-components/floating-tiles/hise/perfettowebviewer.html

                          Dan KorneffD 1 Reply Last reply Reply Quote 1
                          • Dan KorneffD
                            Dan Korneff @Christoph Hart
                            last edited by

                            @Christoph-Hart This is "Awesome!" for sure

                            Dan Korneff - Producer / Mixer / Audio Nerd

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

                              I'm seeing a bunch of errors when trying to compile my project as a plugin.

                              In file included from /media/dave/Work/Tools/HISE/hi_dsp_library/../hi_tools/../JUCE/modules/juce_core/juce_core.h:66,
                                               from /media/dave/Work/Tools/HISE/hi_dsp_library/../hi_tools/hi_tools.h:124,
                                               from /media/dave/Work/Tools/HISE/hi_dsp_library/hi_dsp_library.h:55,
                                               from ../../../AdditionalSourceCode/nodes/factory.cpp:5:
                              /media/dave/Work/Tools/HISE/hi_dsp_library/../hi_tools/../JUCE/modules/juce_core/system/juce_TargetPlatform.h:56:3: error: #error "No global header file was included!"
                                 56 |  #error "No global header file was included!"
                              
                              /media/dave/Work/Tools/HISE/hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              In file included from /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/../hi_dsp_library/../hi_tools/hi_tools.h:264,
                                               from /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/../hi_dsp_library/hi_dsp_library.h:55,
                                               from /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/hi_core.h:74,
                                               from /media/dave/Work/Tools/HISE/hi_scripting/hi_scripting.h:88,
                                               from /media/dave/Work/Tools/HISE/hi_scripting/hi_scripting_03.cpp:35,
                                               from ../../JuceLibraryCode/include_hi_scripting_03.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              In file included from /media/dave/Work/Tools/HISE/hi_frontend/../hi_core/../hi_dsp_library/../hi_tools/hi_tools.h:264,
                                               from /media/dave/Work/Tools/HISE/hi_frontend/../hi_core/../hi_dsp_library/hi_dsp_library.h:55,
                                               from /media/dave/Work/Tools/HISE/hi_frontend/../hi_core/hi_core.h:74,
                                               from /media/dave/Work/Tools/HISE/hi_frontend/hi_frontend.h:54,
                                               from /media/dave/Work/Tools/HISE/hi_frontend/hi_frontend.cpp:38,
                                               from ../../JuceLibraryCode/include_hi_frontend.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_frontend/../hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_frontend/../hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              In file included from /media/dave/Work/Tools/HISE/hi_dsp_library/../hi_tools/hi_tools.h:264,
                                               from /media/dave/Work/Tools/HISE/hi_dsp_library/hi_dsp_library.h:55,
                                               from /media/dave/Work/Tools/HISE/hi_dsp_library/hi_dsp_library_01.cpp:40,
                                               from ../../JuceLibraryCode/include_hi_dsp_library_01.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              Compiling include_juce_audio_basics.cpp
                              In file included from /media/dave/Work/Tools/HISE/hi_snex/../hi_dsp_library/../hi_tools/hi_tools.h:264,
                                               from /media/dave/Work/Tools/HISE/hi_snex/../hi_dsp_library/hi_dsp_library.h:55,
                                               from /media/dave/Work/Tools/HISE/hi_snex/hi_snex.h:127,
                                               from /media/dave/Work/Tools/HISE/hi_snex/hi_snex_62.cpp:1,
                                               from ../../JuceLibraryCode/include_hi_snex_62.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_snex/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_snex/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              In file included from /media/dave/Work/Tools/HISE/hi_snex/../hi_dsp_library/../hi_tools/hi_tools.h:264,
                                               from /media/dave/Work/Tools/HISE/hi_snex/../hi_dsp_library/hi_dsp_library.h:55,
                                               from /media/dave/Work/Tools/HISE/hi_snex/hi_snex.h:127,
                                               from /media/dave/Work/Tools/HISE/hi_snex/hi_snex.cpp:5,
                                               from ../../JuceLibraryCode/include_hi_snex.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_snex/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_snex/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              In file included from /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/../hi_dsp_library/../hi_tools/hi_tools.h:264,
                                               from /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/../hi_dsp_library/hi_dsp_library.h:55,
                                               from /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/hi_core.h:74,
                                               from /media/dave/Work/Tools/HISE/hi_scripting/hi_scripting.h:88,
                                               from /media/dave/Work/Tools/HISE/hi_scripting/hi_scripting_01.cpp:35,
                                               from ../../JuceLibraryCode/include_hi_scripting_01.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_scripting/../hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              In file included from /media/dave/Work/Tools/HISE/hi_core/../hi_dsp_library/../hi_tools/hi_tools.h:264,
                                               from /media/dave/Work/Tools/HISE/hi_core/../hi_dsp_library/hi_dsp_library.h:55,
                                               from /media/dave/Work/Tools/HISE/hi_core/hi_core.h:74,
                                               from /media/dave/Work/Tools/HISE/hi_core/hi_core.cpp:15,
                                               from ../../JuceLibraryCode/include_hi_core.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_core/../hi_dsp_library/../hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              Compiling include_juce_audio_devices.cpp
                              Compiling include_juce_audio_formats.cpp
                              make: *** [Makefile:488: build/intermediate/Release/include_hi_snex_62_51a830ef.o] Error 1
                              make: *** Waiting for unfinished jobs....
                              make: *** [Makefile:473: build/intermediate/Release/include_hi_snex_3396deb6.o] Error 1
                              make: *** [Makefile:248: build/intermediate/Release/include_hi_dsp_library_01_6050d6b.o] Error 1
                              In file included from /media/dave/Work/Tools/HISE/hi_tools/hi_tools.h:264,
                                               from /media/dave/Work/Tools/HISE/hi_tools/hi_tools.cpp:51,
                                               from ../../JuceLibraryCode/include_hi_tools.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:19: error: ‘WebBrowserComponent’ was not declared in this scope
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                   ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_tools/hi_standalone_components/PerfettoWebViewer.h:60:38: error: template argument 1 is invalid
                                 60 |     ScopedPointer<WebBrowserComponent> browser;
                                    |                                      ^
                              make: *** [Makefile:218: build/intermediate/Release/Plugin_124bbd3c.o] Error 1
                              make: *** [Makefile:258: build/intermediate/Release/include_hi_frontend_381e68fa.o] Error 1
                              make: *** [Makefile:233: build/intermediate/Release/factory_3d20f030.o] Error 1
                              In file included from /media/dave/Work/Tools/HISE/hi_tools/hi_tools.cpp:121,
                                               from ../../JuceLibraryCode/include_hi_tools.cpp:9:
                              /media/dave/Work/Tools/HISE/hi_tools/hi_standalone_components/PerfettoWebViewer.cpp: In constructor ‘hise::PerfettoWebviewer::PerfettoWebviewer(hise::BackendRootWindow*)’:
                              /media/dave/Work/Tools/HISE/hi_tools/hi_standalone_components/PerfettoWebViewer.cpp:110:37: error: expected type-specifier before ‘WebBrowserComponent’
                                110 |     addAndMakeVisible(browser = new WebBrowserComponent(true));
                                    |                                     ^~~~~~~~~~~~~~~~~~~
                              /media/dave/Work/Tools/HISE/hi_tools/hi_standalone_components/PerfettoWebViewer.cpp:111:12: error: base operand of ‘->’ is not a pointer
                                111 |     browser->goToURL("https://ui.perfetto.dev");
                                    |            ^~
                              /media/dave/Work/Tools/HISE/hi_tools/hi_standalone_components/PerfettoWebViewer.cpp: In member function ‘virtual void hise::PerfettoWebviewer::resized()’:
                              /media/dave/Work/Tools/HISE/hi_tools/hi_standalone_components/PerfettoWebViewer.cpp:196:16: error: base operand of ‘->’ is not a pointer
                                196 |         browser->setBounds(area);
                                    |  
                              

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

                              Dan KorneffD 1 Reply Last reply Reply Quote 0
                              • Dan KorneffD
                                Dan Korneff @David Healey
                                last edited by

                                @d-healey said in New Dispatcher Issues:

                                #error "No global header file was included!

                                I'm seeing this too.

                                Dan Korneff - Producer / Mixer / Audio Nerd

                                David HealeyD Christoph HartC 2 Replies Last reply Reply Quote 0
                                • David HealeyD
                                  David Healey @Dan Korneff
                                  last edited by

                                  @Dan-Korneff Which OS?

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

                                  Dan KorneffD 1 Reply Last reply Reply Quote 0
                                  • Dan KorneffD
                                    Dan Korneff @David Healey
                                    last edited by

                                    @d-healey PC

                                    Dan Korneff - Producer / Mixer / Audio Nerd

                                    1 Reply Last reply Reply Quote 0
                                    • Christoph HartC
                                      Christoph Hart @Dan Korneff
                                      last edited by

                                      @Dan-Korneff said in New Dispatcher Issues:

                                      #error "No global header file was included!

                                      Try rebuilding the DSP network, I had to change the include order in the factory.cpp file.

                                      The other issues (PerfettoWebviewer stuff) is legit though, time to reboot that VM :)

                                      David HealeyD ulrikU 2 Replies Last reply Reply Quote 2
                                      • David HealeyD
                                        David Healey @Christoph Hart
                                        last edited by

                                        @Christoph-Hart Just tried compiling standalone on Windows and I'm seeing this.

                                        C:\Users\John\Desktop\Projects\HISE\hi_core\hi_core.cpp(13,10): fatal  error C1083: Cannot open include file: 'BinaryDa
                                        ta.h': No such file or directory (compiling source file ..\..\JuceLibraryCode\include_hi_core.cpp) [C:\Users\John\Deskt
                                        op\Projects\rhapsodyBuild\Rhapsody\Binaries\Builds\VisualStudio2022\Rhapsody_App.vcxproj]
                                        C:\Users\John\Desktop\Projects\HISE\hi_frontend\hi_frontend.cpp(36,10): fatal  error C1083: Cannot open include file: '
                                        BinaryData.h': No such file or directory (compiling source file ..\..\JuceLibraryCode\include_hi_frontend.cpp) [C:\User
                                        s\John\Desktop\Projects\rhapsodyBuild\Rhapsody\Binaries\Builds\VisualStudio2022\Rhapsody_App.vcxproj]
                                        

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

                                        1 Reply Last reply Reply Quote 0
                                        • ulrikU
                                          ulrik @Christoph Hart
                                          last edited by

                                          @Christoph-Hart I get the same error when trying to compile to au and vst3 instrument plugin, "No global header file was included"
                                          I have no "DSP Network" in this project

                                          using Xcode 14.3.1

                                          Skärmavbild 2023-12-11 kl. 13.05.30.png

                                          Hise Develop branch
                                          MacOs 15.6.1, Xcode 16.2
                                          http://musikboden.se

                                          ulrikU 1 Reply Last reply Reply Quote 0
                                          • ulrikU
                                            ulrik @ulrik
                                            last edited by

                                            @ulrik I tried again and used the "JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" in projucer, saved and compiled with Xcode 14.3.1
                                            The "Global header" error was gone but instead I got this errors

                                            Skärmavbild 2023-12-11 kl. 13.32.09.png

                                            Hise Develop branch
                                            MacOs 15.6.1, Xcode 16.2
                                            http://musikboden.se

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

                                            10

                                            Online

                                            2.1k

                                            Users

                                            13.0k

                                            Topics

                                            113.2k

                                            Posts