HISE Logo Forum
    • Categories
    • Register
    • Login

    Faust 2.58.11 to test

    Scheduled Pinned Locked Moved Faust Development
    17 Posts 4 Posters 1.4k 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.
    • S
      sletz
      last edited by sletz

      We are working with David Braun to compile Faust using GitHub actions. This actually solves the "LLVM not self-contained" issue we had with last published version.

      Can you Faust users test the compiled X86 and ARM64 version here :
      https://github.com/DBraun/faust/actions/runs/4458934421 ?

      Christoph HartC ulrikU 2 Replies Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart @sletz
        last edited by

        @sletz Just checked the x64 build on an M1 MacBook under Rosetta and it yields this error:

        540e9e98-5ced-461e-823c-60455fb65747-image.png

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

          @sletz I got the same result as Christoph using the X64 version

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

          1 Reply Last reply Reply Quote 0
          • S
            sletz
            last edited by sletz

            OK, I was able to reproduce the problem on a test program.

            @Christoph-Hart you'll have to explicitly set the target parameter to "x86_64-apple-darwin" when using the c reateDSPFactoryFromFile/createDSPFactoryFromString
            functions.
            (see https://github.com/grame-cncm/faust/blob/master-dev/architecture/faust/dsp/llvm-dsp.h#L179

            Can you test on your side and report?

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

              @sletz Now it compiles but crashes at createDspInstance() / llvm_dsp_factory::getWarningMessages()

              Log:

              Faust: Resizing buffers: nChannels=0, blockSize=0
              Faust: Resizing buffers: nChannels=0, blockSize=0
              Faust: Resizing buffers: nChannels=0, blockSize=0
              Faust: Resizing buffers: nChannels=0, blockSize=0
              Global Faust Path: /Users/christophhart/Development/faust
              Global Faust Path: /Users/christophhart/Development/faust
              Faust jit compilation successfu::
              

              Assembly stack trace (not expecting to be helpful, but anyways):

                  0x1113b99f0 <+0>:  pushq  %rbp
                  0x1113b99f1 <+1>:  movq   %rsp, %rbp
                  0x1113b99f4 <+4>:  pushq  %rbx
                  0x1113b99f5 <+5>:  pushq  %rax
                  0x1113b99f6 <+6>:  movq   %rdi, %rbx
              ->  0x1113b99f9 <+9>:  movq   0x18(%rsi), %rsi
                  0x1113b99fd <+13>: movq   (%rsi), %rax
                  0x1113b9a00 <+16>: callq  *0x58(%rax)
                  0x1113b9a03 <+19>: movq   %rbx, %rax
                  0x1113b9a06 <+22>: addq   $0x8, %rsp
                  0x1113b9a0a <+26>: popq   %rbx
                  0x1113b9a0b <+27>: popq   %rbp
                  0x1113b9a0c <+28>: retq   
                  0x1113b9a0d <+29>: nopl   (%rax)
              
              1 Reply Last reply Reply Quote 0
              • S
                sletz
                last edited by sletz

                Same issue using the Interp backend, although this getWarningMessages method is not called at all.... No more idea for now. I see libfaust is still called in a separated thread ?

                And what happens on a real Intel machine ? (the compiled version is for macOS 10.15 minimum, and I still have a 10.13 here where I could not test).

                1 Reply Last reply Reply Quote 0
                • S
                  sletz
                  last edited by sletz

                  I've found the problem: changes in the Faust dsp/dsp_factory API, and since HISE is maintaining it's own version, this make the thing quite fragile.. @Christoph-Hart I'll send you a patch.

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

                    @sletz Yes I can confirm that the patch you send me works now (I had to add the darwin flag but apart from that everything loaded fine).

                    However now it won't compile against the old Faust (2.50.6 or whatever it was) because the old API doesn't have the getWarningMessage() function. Is there a preprocessor macro in the faust headers that I can query for the version and conditionally include the getWarningMessage() function definition? I would love to not force everybody to update their Faust installation to keep using it.

                    1 Reply Last reply Reply Quote 1
                    • S
                      sletz
                      last edited by sletz

                      Would FAUSTVERSION work for that?

                      See: https://github.com/grame-cncm/faust/blob/master-dev/architecture/faust/export.h#L28

                      Function added in 2.54.0, see: https://github.com/grame-cncm/faust/commit/a962231a9ca985cfa2ba513c01028872af62b115

                      BTW: now I understand why the latest published 2.54.9 version was also crashing !?

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

                        @sletz The problem is that this is a preprocessor string and it's impossible to use it in a conditional expression. I've added a manual projucer flag in the hi_faust_types module that the user has to switch on if he wants to keep using the old faust version (OLD_FAUST_API_SUPPORT), but this is only a very low level solution that only removes the getWarningMessage() function from the Faust wrappers and will probably cause issues again with the next breaking API change.

                        If you could add integer versions of the version, this would allow people to check the library version conditionally (and I could remove that flag and let the system figure it out automatically). Usually it's done like this:

                        #define FAUSTMAJORVERSION 2
                        #define FAUSTMINORVERSION 50
                        #define FAUSTPATCHVERSION 6
                        

                        then I could use

                        #if  FAUSTMAJORVERSION <= 2 && FAUSTMINORVERSION <= 54
                        #define OLD_FAUST_API_SUPPORT 1
                        #else
                        #define OLD_FAUST_API_SUPPORT 0
                        #endif
                        
                        1 Reply Last reply Reply Quote 1
                        • S
                          sletz
                          last edited by

                          OK, fixed in https://github.com/grame-cncm/faust/commit/fd8b6fa2496f55f3de0c531455f4cf9a8339586a.

                          1 Reply Last reply Reply Quote 0
                          • S
                            sletz
                            last edited by

                            Add classInit method in dsp_factory class, https://github.com/grame-cncm/faust/commit/90d40d425dac7557667387e3a8a5f4b44ce1ae43.

                            Version raised to 2.59.0, possible breaking for HISE integration.

                            1 Reply Last reply Reply Quote 0
                            • S
                              sletz
                              last edited by

                              Working with 2.59.1 without changes.

                              LindonL 1 Reply Last reply Reply Quote 0
                              • LindonL
                                Lindon @sletz
                                last edited by

                                @sletz said in Faust 2.58.11 to test:

                                Working with 2.59.1 without changes.

                                so are we saying 2.59.1 works with HISE?

                                HISE Development for hire.
                                www.channelrobot.com

                                LindonL 1 Reply Last reply Reply Quote 0
                                • S
                                  sletz
                                  last edited by

                                  Yes indeed.

                                  1 Reply Last reply Reply Quote 2
                                  • LindonL
                                    Lindon @Lindon
                                    last edited by

                                    @Lindon said in Faust 2.58.11 to test:

                                    @sletz said in Faust 2.58.11 to test:

                                    Working with 2.59.1 without changes.

                                    so are we saying 2.59.1 works with HISE?

                                    Could someone please point me at Faust release 2.59.1 - the latest I can find is 2.54.9....

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    LindonL 1 Reply Last reply Reply Quote 0
                                    • LindonL
                                      Lindon @Lindon
                                      last edited by

                                      for those looking....

                                      https://github.com/DBraun/faust/actions/runs/4788344768

                                      down the bottom of the page 2.59.2

                                      HISE Development for hire.
                                      www.channelrobot.com

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

                                      48

                                      Online

                                      1.7k

                                      Users

                                      11.7k

                                      Topics

                                      101.9k

                                      Posts