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.
    • 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

                              13

                              Online

                              1.7k

                              Users

                              11.8k

                              Topics

                              102.6k

                              Posts