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-covdiscovery on macOS viaxcrunfallback - Fix
LLVM_PROFILE_FILEenv not reaching test processes (absolute path + directctestinvocation) - Fix
llvm-covbinary 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 covcompletes successfully and produces coverage report
Edited by Michael Tesch