✅ Approved Exemptions¶
📋 Active Exemptions¶
EX-001: Legacy FFT Algorithm¶
Rule exempted: readability-magic-numbers
Location: src/dsp/fft_legacy.cpp:45-120
Justification: Third-party Cooley-Tukey FFT with magic constants from original paper
Approved by: Tech Lead
Date: 2025-01-15
Expires: Never (legacy code, well-tested)
Owner: @audio-team
Notes: Algorithm uses constants (0.7071067811865476, etc.) from mathematical derivation. Adding named constants would obscure the mathematical relationship. Original comments reference paper equations.
EX-002: Real-time Allocation¶
Rule exempted: cppcoreguidelines-no-malloc
Location: src/audio/realtime_buffer.cpp:78
Justification: Pre-allocated pool manager, not actual malloc in RT thread
Approved by: Tech Lead
Date: 2025-01-20
Expires: 2025-06-30 (rewrite planned)
Owner: @performance-team
Notes: malloc() call is in initialization only, never in audio callback. RT thread uses lock-free pool allocation. Rewrite to use custom allocator planned for Q2.
EX-003: SIMD Pointer Arithmetic¶
Rule exempted: cppcoreguidelines-pro-bounds-pointer-arithmetic
Location: src/dsp/simd_ops.hpp:128-156
Justification: SIMD intrinsics require raw pointer access
Approved by: Tech Lead
Date: 2025-02-01
Expires: Never (performance-critical)
Owner: @dsp-team
Notes: 40% performance improvement over safe alternatives. AddressSanitizer runs in CI to catch out-of-bounds access. Input sizes validated with static_assert.
EX-004: VST2 SDK Compatibility¶
Rule exempted: modernize-use-nullptr, readability-identifier-naming
Location: src/plugins/vst2_wrapper.cpp
Justification: Must match VST2 SDK conventions for binary compatibility
Approved by: Tech Lead
Date: 2025-02-05
Expires: Never (external API)
Owner: @plugin-team
Notes: VST2 SDK uses NULL and specific naming (audioMasterCallback, etc.). Changing would break VST2 host compatibility. Isolated to wrapper file only.
EX-005: JSON Parser Error Codes¶
Rule exempted: cppcoreguidelines-pro-type-union-access
Location: src/serialization/json_parser.cpp:89-112
Justification: Union-based variant for zero-overhead error handling
Approved by: Tech Lead
Date: 2025-02-10
Expires: 2025-08-31 (migrate to std::variant when C++17 available)
Owner: @core-team
Notes: std::variant not available in current C++14 codebase. Union provides zero-overhead error OR value return. Tagged union with explicit type field ensures safety.
🗄️ Expired Exemptions¶
EX-EXPIRED-001: Raw Pointer in AudioBuffer¶
Rule exempted: cppcoreguidelines-owning-memory
Location: (deleted)
Justification: Temporary until refactor complete
Approved by: Tech Lead
Date: 2024-11-15
Expired: 2025-01-31
Resolution: Migrated to std::unique_ptr, file deletedsrc/audio/buffer_old.cpp
EX-EXPIRED-002: C-style Cast in Sample Conversion¶
Rule exempted: cppcoreguidelines-pro-type-cstyle-cast
Location: (fixed)
Justification: Needed for bit-punning until rewrite
Approved by: Tech Lead
Date: 2024-12-01
Expired: 2025-02-01
Resolution: Replaced with std::bit_castsrc/audio/sample_convert.cpp:45
📊 Exemption Statistics¶
Total active exemptions: 5 Temporary exemptions: 2 Permanent exemptions: 3 Expired last quarter: 2
Trend: Decreasing ✓ (was 8 in Q4 2024)
🔍 Review Schedule¶
All temporary exemptions reviewed monthly. Permanent exemptions reviewed quarterly.
Next review: 2025-03-15