memlnaut-nisps/nisps
monkey-w1n5t0n 3552ee46f6 fix(core): order RingBuffer::buf_ before the atomics to unblock the CI compiler
First real signal from the restored pipeline: with checkout fixed, the cpp-tests
job got far enough to fail at `-Werror=stringop-overflow` in ring_buffer.hpp on
GitHub's GCC 13, a failure that had been invisible behind the broken submodule
checkout for a month. Reproduced locally against gcc 13.4.0 (local default is
gcc 14, which does not fire).

The warning is a false positive: GCC anchors the destination object to the
member at offset 0 and reports `buf_[head & kMask]` as writing past
`head_._M_i` (size 8) at offset [16, 268] — offsets that are precisely
buf_[0..63] of a 64-entry, 4-byte ControlEvent array. Adding an explicit
`__builtin_unreachable()` bound hint does not help, because the index range was
never what GCC got wrong. Declaring buf_ first anchors the analysis correctly.

Not a suppression, and behaviour-preserving: RingBuffer has exactly one
production user (ModeBase::events_) and is never serialized, copied, or sent
over a wire, so member order is unobservable. Reasoning recorded at the
declaration so nobody "tidies" the order back.

Verified: full ctest suite green under gcc 13.4.0 (the CI compiler) as well as
gcc 14.2, and scripts/run-all-tests.sh ALL GREEN (parity 1273 floats within
1e-5, lint, 33 Playwright specs).
2026-07-21 12:08:52 +02:00
..
core fix(core): order RingBuffer::buf_ before the atomics to unblock the CI compiler 2026-07-21 12:08:52 +02:00
dsp feat(nisps/dsp): lean DSP primitives ported from maximilian (meml-1v6) 2026-04-29 16:08:49 +03:00
engines fix: NoOpEngine engine_id → 'thru' to match sound_analysis_midi schema 2026-04-29 16:12:12 +03:00
midi/generated feat(midi-devices): canonical external-synth CC templates + dual codegen 2026-06-28 20:03:17 +02:00
ml feat(ml)!: P3 core — geometric dislike in nisps/, jolt/OU + geo ABI 2026-07-14 04:16:21 +02:00
modes Merge remote-tracking branch 'origin/main' into workshop/synth-fw-audit 2026-06-28 22:29:41 +02:00
pipeline feat(pipeline)!: P4 core — input/output chains + curve catalog in nisps/ 2026-07-18 11:52:53 +02:00
wasm feat(pipeline)!: P4 core — input/output chains + curve catalog in nisps/ 2026-07-18 11:52:53 +02:00
.gitignore feat: nisps/core foundation — perf, types, concepts, buffers, rng, math 2026-04-29 15:21:52 +03:00
CMakeLists.txt feat(vcv): reunify module onto core MLP — thin iml.hpp adapter (P6) 2026-07-18 13:01:28 +02:00