Replace make_tables by C++11 constexpr arrays#1620
Conversation
|
Hi/2. I've encountered the following error on OS/2: |
|
Looks like you forgot to run |
|
Thanks, it fixed. This step is automated later ? Anyway, unfortunately, this pr does not produce any sounds at all on my machine. |
No. I have never seen this automated via e.g. hooks or CMake. It's the developers responsibility to deal with the repository and its content. Triggering Since the content of the gcem submodule is unlikely to change, using git subtree might be a reasonable alternative. git submodule would still be used for versioning the testdata of fluidsynth's manual testsuite. So for me personally it wouldn't make a difference. If I ever figure out a reliable way to automatically validate the rendering results of the manual testsuite, I would still have to enable submodule checkout in all CI pipelines.
I will investigate next weekend. Yet I'm glad it compiles for OS/2 as well :) |
a17238c to
70fb035
Compare
70fb035 to
f46650d
Compare
70fb035 to
b263b24
Compare
This reverts commit b263b24.
|
|
Is there a way to do this without the compile-time |
…ixed Upstream FluidSynth broke GCC/POWER builds due to long double ABI issues. For now we can use an older commit until this is sorted out upstream. The broken PR is FluidSynth/fluidsynth#1620 Thanks to white-axe for analysis.
|
Thanks for the hint. Using |



Bye bye
make_tables. This PR proposes to replace the auto-generated lookup tables (using the hacky ExternalProject CMake approach) with C++11 lookup tables.References gcem as submodule for C++11 constexpr math, making it necessary to update all CI pipeline to check out submodules.
When this PR is merged, a C++11 compliant compiler will be required to compile fluidsynth!
Currently, this PR is in a PoC state as it's incomplete:
Yet, it compiles fine on all platforms and passes the unit tests. For the latter point, I wrote a unit test to compare with the old lookup tables. It passed with a maximum difference of
1e-4. Since I don't want to add 8000 lines of code, I'll revert it again, as the C++ lookuptable implementation is unlikely to change. For future reference, the commit was b263b24.