StoneyDSP / StoneyVCV

StoneyDSP modules for VCV Rack.
Other
1 stars 0 forks source link

WIP: More unit tests of StoneyDSP typedefs/aliases to intrinsics and SIMD types #10

Open nathanjhood opened 2 hours ago

nathanjhood commented 2 hours ago

Chore

More unit tests of StoneyDSP typedefs/aliases to intrinsics

Describe the chore

The StoneyDSP::<data_t> aliases to platform-independent intrinsic data types need some more and better unit tests, using Catch2 to determine the veracity of the sizes of each data type being reliable across platforms and architectures.

The same should be tested of the StoneyDSP::SIMD::<data_size> types.

Let's make use of GitHub's remote runners to confirm that types such as StoneyDSP::uint16 are indeed the size(s) that they claim to be, for every supported target (x64, arm, win/lin/osx, etc...)

Additional context

Example:

TEST_CASE( "Vector<int8_t, 16>", "[int_8]" ) {

    SECTION( "size tests" ) {

        // sizeof class
        REQUIRE(sizeof(StoneyDSP::SIMD::int8_16) == 8);

        StoneyDSP::SIMD::int8_16 vector_of_sixteen_8bit_integers;

        // sizeof class members
        REQUIRE(vector_of_sixteen_8bit_integers.size == 16);
        REQUIRE(sizeof(vector_of_sixteen_8bit_integers.v) == 16);
    }
}
nathanjhood commented 2 hours ago

Bingo, we got a fail.

Run cd build && ctest -j4 --rerun-failed --output-on-failure --verbose  && cd ..
UpdateCTestConfiguration  from :D:/a/StoneyVCV/StoneyVCV/build/DartConfiguration.tcl
Parse Config file:D:/a/StoneyVCV/StoneyVCV/build/DartConfiguration.tcl
UpdateCTestConfiguration  from :D:/a/StoneyVCV/StoneyVCV/build/DartConfiguration.tcl
Parse Config file:D:/a/StoneyVCV/StoneyVCV/build/DartConfiguration.tcl
Test project D:/a/StoneyVCV/StoneyVCV/build
Constructing a list of tests
Done constructing a list of tests
Problem reading file: D:/a/StoneyVCV/StoneyVCV/build/Testing/Temporary/ while generating list of previously failed tests.
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 1
      Start  1: double_t

1: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "double_t"
1: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
1: Test timeout computed to be: 1500
test 2
      Start  2: float_t

2: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "float_t"
2: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
2: Test timeout computed to be: 1500
test 3
      Start  3: int8_t

3: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "int8_t"
3: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
3: Test timeout computed to be: 1500
test 4
      Start  4: int16_t

4: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "int16_t"
4: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
4: Test timeout computed to be: 1500
1: Filters: "double_t"
1: Randomness seeded to: 2361804477
1: ===============================================================================
1: All tests passed (1 assertion in 1 test case)
1: 
2: Filters: "float_t"
2: Randomness seeded to: 3498582966
2: ===============================================================================
2: All tests passed (1 assertion in 1 test case)
2: 
3: Filters: "int8_t"
3: Randomness seeded to: 4246937553
3: ===============================================================================
3: All tests passed (1 assertion in 1 test case)
3: 
4: Filters: "int16_t"
4: Randomness seeded to: 2475886072
4: ===============================================================================
4: All tests passed (1 assertion in 1 test case)
4: 
 1/10 Test  #1: double_t .........................   Passed    0.02 sec
 2/10 Test  #2: float_t ..........................   Passed    0.02 sec
 3/10 Test  #3: int8_t ...........................   Passed    0.01 sec
test 5
      Start  5: int32_t

5: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "int32_t"
5: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
5: Test timeout computed to be: 1500
test 6
      Start  6: Vector<double, 2>

6: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "Vector<double\, 2>"
6: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
6: Test timeout computed to be: 1500
test 7
      Start  7: Vector<float, 4>

7: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "Vector<float\, 4>"
7: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
7: Test timeout computed to be: 1500
 4/10 Test  #4: int16_t ..........................   Passed    0.02 sec
5: Filters: "int32_t"
5: Randomness seeded to: [28](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872812205/job/33086953197#step:9:29)51359943
5: ===============================================================================
5: All tests passed (1 assertion in 1 test case)
5: 
6: Filters: "Vector<double\, 2>"
6: Randomness seeded to: 31[30](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872812205/job/33086953197#step:9:31)854192
6: ===============================================================================
6: All tests passed (3 assertions in 1 test case)
6: 
7: Filters: "Vector<float\, 4>"
7: Randomness seeded to: 180934389
7: 
7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7: tests.exe is a Catch2 v3.7.1 host application.
7: Run with -? for options
7: 
7: -------------------------------------------------------------------------------
7: Vector<float, 4>
7:   size tests
7: -------------------------------------------------------------------------------
7: D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:73
7: ...............................................................................
7: 
7: D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:76: FAILED:
7:   REQUIRE( sizeof(StoneyDSP::SIMD::float_4) == 8 )
7: with expansion:
7:   16 == 8
7: 
7: ===============================================================================
7: test cases: 1 | 1 failed
7: assertions: 1 | 1 failed
7: 
test 8
      Start  8: Vector<int8_t, 16>

8: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "Vector<int8_t\, 16>"
8: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
8: Test timeout computed to be: 1500
 5/10 Test  #5: int[32](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872812205/job/33086953197#step:9:33)_t ..........................   Passed    0.02 sec
 6/10 Test  #6: Vector<double, 2> ................   Passed    0.02 sec
 7/10 Test  #7: Vector<float, 4> .................***Failed    0.01 sec
Filters: "Vector<float\, 4>"
Randomness seeded to: 180934389

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tests.exe is a Catch2 v3.7.1 host application.
Run with -? for options

-------------------------------------------------------------------------------
Vector<float, 4>
  size tests
-------------------------------------------------------------------------------
D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:73
...............................................................................

D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:76: FAILED:
  REQUIRE( sizeof(StoneyDSP::SIMD::float_4) == 8 )
with expansion:
  16 == 8

===============================================================================
test cases: 1 | 1 failed
assertions: 1 | 1 failed

8: Filters: "Vector<int8_t\, 16>"
8: Randomness seeded to: 875619814
8: 
8: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8: tests.exe is a Catch2 v3.7.1 host application.
8: Run with -? for options
8: 
8: -------------------------------------------------------------------------------
8: Vector<int8_t, 16>
8:   size tests
8: -------------------------------------------------------------------------------
8: D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:88
8: ...............................................................................
8: 
8: D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:91: FAILED:
8:   REQUIRE( sizeof(StoneyDSP::SIMD::int8_16) == 8 )
8: with expansion:
8:   16 == 8
8: 
8: ===============================================================================
8: test cases: 1 | 1 failed
8: assertions: 1 | 1 failed
8: 
test 9
      Start  9: Vector<int16_t, 8>

9: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "Vector<int16_t\, 8>"
9: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
9: Test timeout computed to be: 1500
test 10
      Start 10: Vector<int32_t, 4>

10: Test command: D:\a\StoneyVCV\StoneyVCV\build\tests.exe "Vector<int32_t\, 4>"
10: Working Directory: D:/a/StoneyVCV/StoneyVCV/build
10: Test timeout computed to be: 1500
 8/10 Test  #8: Vector<int8_t, 16> ...............***Failed    0.02 sec
Filters: "Vector<int8_t\, 16>"
Randomness seeded to: 875619814

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tests.exe is a Catch2 v3.7.1 host application.
Run with -? for options

-------------------------------------------------------------------------------
Vector<int8_t, 16>
  size tests
-------------------------------------------------------------------------------
D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:88
...............................................................................

D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:91: FAILED:
  REQUIRE( sizeof(StoneyDSP::SIMD::int8_16) == 8 )
with expansion:
  16 == 8

===============================================================================
test cases: 1 | 1 failed
assertions: 1 | 1 failed

9: Filters: "Vector<int16_t\, 8>"
9: Randomness seeded to: 36467[33](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872812205/job/33086953197#step:9:34)02
9: 
9: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9: tests.exe is a Catch2 v3.7.1 host application.
9: Run with -? for options
9: 
9: -------------------------------------------------------------------------------
9: Vector<int16_t, 8>
9:   size tests
9: -------------------------------------------------------------------------------
9: D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:103
9: ...............................................................................
9: 
9: D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:106: FAILED:
9:   REQUIRE( sizeof(StoneyDSP::SIMD::float_4) == 8 )
9: with expansion:
9:   16 == 8
9: 
9: ===============================================================================
9: test cases: 1 | 1 failed
9: assertions: 1 | 1 failed
9: 
10: Filters: "Vector<int32_t\, 4>"
10: Randomness seeded to: 1932018650
10: 
10: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10: tests.exe is a Catch2 v3.7.1 host application.
10: Run with -? for options
10: 
10: -------------------------------------------------------------------------------
10: Vector<int32_t, 4>
10:   size tests
10: -------------------------------------------------------------------------------
10: D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:118
10: ...............................................................................
10: 
10: D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:121: FAILED:
10:   REQUIRE( sizeof(StoneyDSP::SIMD::float_4) == 8 )
10: with expansion:
10:   16 == 8
10: 
10: ===============================================================================
10: test cases: 1 | 1 failed
10: assertions: 1 | 1 failed
10: 
 9/10 Test  #9: Vector<int16_t, 8> ...............***Failed    0.01 sec
Filters: "Vector<int16_t\, 8>"
Randomness seeded to: [36](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872812205/job/33086953197#step:9:37)4673302

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tests.exe is a Catch2 v3.7.1 host application.
Run with -? for options

-------------------------------------------------------------------------------
Vector<int16_t, 8>
  size tests
-------------------------------------------------------------------------------
D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:103
...............................................................................

D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:106: FAILED:
  REQUIRE( sizeof(StoneyDSP::SIMD::float_4) == 8 )
with expansion:
  16 == 8

===============================================================================
test cases: 1 | 1 failed
assertions: 1 | 1 failed

10/10 Test #10: Vector<int32_t, 4> ...............***Failed    0.01 sec
Filters: "Vector<int32_t\, 4>"
Randomness seeded to: 19320186[50](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872812205/job/33086953197#step:9:51)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tests.exe is a Catch2 v3.7.1 host application.
Run with -? for options

-------------------------------------------------------------------------------
Vector<int32_t, 4>
  size tests
-------------------------------------------------------------------------------
D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:118
...............................................................................

D:/a/StoneyVCV/StoneyVCV/test/StoneyDSP/simd.cpp:121: FAILED:
  REQUIRE( sizeof(StoneyDSP::SIMD::float_4) == 8 )
with expansion:
  16 == 8

===============================================================================
test cases: 1 | 1 failed
assertions: 1 | 1 failed

Errors while running CTest

[60](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872812205/job/33086953197#step:9:61)% tests passed, 4 tests failed out of 10

Total Test time (real) =   0.06 sec

The following tests FAILED:
      7 - Vector<float, 4> (Failed)
      8 - Vector<int8_t, 16> (Failed)
      9 - Vector<int16_t, 8> (Failed)
     10 - Vector<int32_t, 4> (Failed)

The other two platforms did not run; I need to update the workflow files to build/run the tests the same way Windows does.

Investigating...

nathanjhood commented 2 hours ago

Fixed the above - the failing data sets are actually all 16 bits of pointers (in groups of 2, 4, 8, 16...) using SIMD.

Added the building of tests step to macos - new fail (tl:dr; `-march=nehalem is not supported):

Run cmake -S . -B build -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_CXX_FLAGS:STRING="-march=nehalem" -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_INSTALL_PREFIX=${PWD}/install -DVCPKG_HOST_TRIPLET:STRING=x64-osx -DVCPKG_TARGET_TRIPLET:STRING=x64-osx -DVCPKG_MANIFEST_MODE:STRING=ON -DCMAKE_TOOLCHAIN_FILE:FILEPATH="vcpkg/scripts/buildsystems/vcpkg.cmake" --compile-no-warning-as-error --no-warn-unused-cli
Ignoring COMPILE_WARNING_AS_ERROR target property and CMAKE_COMPILE_WARNING_AS_ERROR variable.
Not searching for unused variables given on the command line.
-- Running vcpkg install
Fetching registry information from https://github.com/microsoft/vcpkg (HEAD)...
Detecting compiler hash for triplet x64-osx...
Compiler found: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
The following packages will be built and installed:
    catch2:x64-osx@3.5.2 -- /Users/runner/.cache/vcpkg/registries/git-trees/9f5159aa8db5056e1f5531bc4292c27499e23f9a
    simde:x64-osx@0.7.6 -- /Users/runner/.cache/vcpkg/registries/git-trees/3776be38dc5cf963db0a97cbb5b043488c43b79c
    vcpkg-cmake:x64-osx@2023-05-04 -- /Users/runner/.cache/vcpkg/registries/git-trees/88a7058fc7fa73a9c4c99cfcae9d79e2abf87a5a
    vcpkg-cmake-config:x64-osx@2022-02-06#1 -- /Users/runner/.cache/vcpkg/registries/git-trees/8d54cc4f487d51b655abec5f9c9c3f86ca83311f
Restored 3 package(s) from GitHub Actions Cache in 1.4 s. Use --debug to see more details.
Installing 1/4 vcpkg-cmake-config:x64-osx@2022-02-06#1...
Elapsed time to handle vcpkg-cmake-config:x64-osx: 1.43 ms
vcpkg-cmake-config:x64-osx package ABI: 48f6134dc3a9fa9e95dd9a859eb23e886422c7d05b88ff882288fe1f21e1dd95
Installing 2/4 vcpkg-cmake:x64-osx@2023-05-04...
Elapsed time to handle vcpkg-cmake:x64-osx: 1.52 ms
vcpkg-cmake:x64-osx package ABI: 3b8431dc0d44533df17f4c903d719b5179b6eb9d769a2f4c6e6ed72a31ecd5bc
Installing 3/4 catch2:x64-osx@3.5.2...
Building catch2:x64-osx@3.5.2...
/Users/runner/.cache/vcpkg/registries/git-trees/9f5159aa8db5056e1f5531bc4292c27499e23f9a: info: installing overlay port from here
-- Downloading https://github.com/catchorg/Catch2/archive/v3.5.2.tar.gz -> catchorg-Catch2-v3.5.2.tar.gz...
-- Extracting source /Users/runner/work/StoneyVCV/StoneyVCV/vcpkg/downloads/catchorg-Catch2-v3.5.2.tar.gz
-- Applying patch fix-install-path.patch
-- Using source at /Users/runner/work/StoneyVCV/StoneyVCV/vcpkg/buildtrees/catch2/src/v3.5.2-370b5d11d0.clean
-- Configuring x64-osx
-- Building x64-osx-dbg
-- Building x64-osx-rel
-- Fixing pkgconfig file: /Users/runner/work/StoneyVCV/StoneyVCV/vcpkg/packages/catch2_x64-osx/lib/pkgconfig/catch2-with-main.pc
-- Fixing pkgconfig file: /Users/runner/work/StoneyVCV/StoneyVCV/vcpkg/packages/catch2_x64-osx/lib/pkgconfig/catch2.pc
-- Fixing pkgconfig file: /Users/runner/work/StoneyVCV/StoneyVCV/vcpkg/packages/catch2_x64-osx/debug/lib/pkgconfig/catch2-with-main.pc
-- Fixing pkgconfig file: /Users/runner/work/StoneyVCV/StoneyVCV/vcpkg/packages/catch2_x64-osx/debug/lib/pkgconfig/catch2.pc
-- Installing: /Users/runner/work/StoneyVCV/StoneyVCV/vcpkg/packages/catch2_x64-osx/share/catch2/copyright
-- Performing post-build validation
Successfully stored catch2_x64-osx.zip to https://acghubeus2.actions.githubusercontent.com/80dr1b4VIdDsd3HHgRmhBu60GwENYUEE76CUNTUKJ5vafJnxK9/_apis/artifactcache/caches/105.
Stored binaries in 1 destinations in 2.7 s.
Elapsed time to handle catch2:x64-osx: 35 s
catch2:x64-osx package ABI: c2e9bac38e5cb2a9cabb3e5d7fc3894d3bb57bca18852e9189569dd17e51954b
Installing 4/4 simde:x64-osx@0.7.6...
Elapsed time to handle simde:x64-osx: 65 ms
simde:x64-osx package ABI: 5a98a5a81b6cc212f5b0ad[25](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872974435/job/33087312369#step:6:26)1571ee4259d32684f9714223d757c49204083bac
Total install time: 35 s
catch2 provides CMake targets:
  # this is heuristically generated, and may not be correct
  find_package(Catch2 CONFIG REQUIRED)
  target_link_libraries(main PRIVATE Catch2::Catch2 Catch2::Catch2WithMain)
catch2 provides pkg-config modules:
  # A modern, C++-native test framework for C++14 and above (links in default main)
  catch2-with-main
  # A modern, C++-native, test framework for C++14 and above
  catch2
simde is header-only and can be used from CMake via:
  find_path(SIMDE_INCLUDE_DIRS "simde/arm/neon.h")
  target_include_directories(main PRIVATE ${SIMDE_INCLUDE_DIRS})
-- Running vcpkg install - done
-- The C compiler identification is AppleClang 15.0.0.15000[30](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872974435/job/33087312369#step:6:31)9
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
CMake Error at /opt/homebrew/Cellar/cmake/3.30.5/share/cmake/Modules/CMakeTestCXXCompiler.cmake:73 (message):
-- Check for working CXX compiler: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - broken
  The C++ compiler
-- Configuring incomplete, errors occurred!
    "/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++"
  is not able to compile a simple test program.
  It fails with the following output:
    Change Dir: '/Users/runner/work/StoneyVCV/StoneyVCV/build/CMakeFiles/CMakeScratch/TryCompile-1aomDT'

    Run Build Command(s): /opt/homebrew/Cellar/cmake/3.30.5/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_c9755/fast
    /Applications/Xcode_15.4.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_c9755.dir/build.make CMakeFiles/cmTC_c9755.dir/build
    Building CXX object CMakeFiles/cmTC_c9755.dir/testCXXCompiler.cxx.o
    /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++   -march=nehalem  -arch arm64 -arch x86_64 -isysroot /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -MD -MT CMakeFiles/cmTC_c9755.dir/testCXXCompiler.cxx.o -MF CMakeFiles/cmTC_c9755.dir/testCXXCompiler.cxx.o.d -o CMakeFiles/cmTC_c9755.dir/testCXXCompiler.cxx.o -c /Users/runner/work/StoneyVCV/StoneyVCV/build/CMakeFiles/CMakeScratch/TryCompile-1aomDT/testCXXCompiler.cxx
    clang: error: unsupported argument 'nehalem' to option '-march='
    make[1]: *** [CMakeFiles/cmTC_c9755.dir/testCXXCompiler.cxx.o] Error 1
    make: *** [cmTC_c9755/fast] Error 2

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:[34](https://github.com/StoneyDSP/StoneyVCV/actions/runs/11872974435/job/33087312369#step:6:35) (project)

Not sure, but it might be that an older version of XCode should be used:

    - name: Use latest Xcode on system (macOS)
      uses: maxim-lobanov/setup-xcode@v1
      with:
        xcode-version: latest-stable

Testing the above...