Fix build defaults and coverage infrastructure

Summary

  • Default to C++17 (Eigen 3.3.7 doesn't support C++20)
  • Pin Eigen to 3.3.7, remove 3.3.8 toggle
  • Separate Clang and GCC coverage flags: Clang uses -fprofile-instr-generate -fcoverage-mapping (LLVM profdata), GCC uses --coverage (gcov)
  • Fix llvm-profdata/llvm-cov discovery on macOS via xcrun fallback
  • Fix LLVM_PROFILE_FILE env not reaching test processes (absolute path + direct ctest invocation)
  • Fix llvm-cov binary paths using $<TARGET_FILE:> generator expressions
  • Add operator<< tests for negative dual parts (covers sign branch)
  • Bump version to 0.7.4

make cov now works end-to-end on macOS. Coverage: 98.01% line coverage on duals/dual.

Test plan

  • 383/383 tests pass
  • make cov completes successfully and produces coverage report
Edited by Michael Tesch

Merge request reports

Loading