Repository navigation
A9: each engine asserts the DspTap it was tested with - #92
Merged
Merged
Conversation
The roadmap's A9 (row P12, Q4: DspTap tagged independently, the minimum asserted, no coupled cadence). DspTap gains tap/dsp/version.h (tap/DspTap#62): TAP_DSP_VERSION, packed (major << 16) | (minor << 8) | patch like this family's C ABI probes and pinned to DspTap's project() version by test. Its first tag, v0.1.0, marks the commit that carries it. - submodules/dsptap moves to that tree. This commit pins the PR branch's 9cc002c; once #62 merges, the pin moves to the identical tree on DspTap's main, tagged v0.1.0. - Each umbrella header (async.h, ratio.h, rational.h) defines TAP_SR_DSPTAP_MINIMUM, TAP_DSP_VERSION_ENCODE(0, 1, 0), token-identically, the way D13 defines the family version. It also static_asserts the pinned DspTap's TAP_DSP_VERSION against it. A DspTap 0.0.0 fails to compile with "tap::sr::bridge needs DspTap 0.1.0 or newer". - family.VersionMacrosAgree (tests/family/version_macros.cpp) checks the three definitions are equal, pins the floor at 0.1.0, and checks the pinned DspTap is not older. - The root README's dependency-rule section gains "Tested pairs": SampleRateTap 0.6.0, DspTap floor 0.1.0, pinned v0.1.0. The root CLAUDE.md states the rule beside D13, and the roadmap marks A9 landed and P12 green. No codegen change: the headers gain a macro and a static_assert. Locally with clang 18 -Werror, all 327 tests pass and clang-tidy is clean on the four files; GCC 13 -Werror compiles the version test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016GKzq1VSdcMYCRMhddiMaf
Moves submodules/dsptap from the PR branch's 9cc002c to dfd766b on DspTap's main, the commit tagged v0.1.0. The two carry the identical tree (523e75a), so nothing this tree builds changes; the pin now stays reachable after DspTap's branch is deleted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016GKzq1VSdcMYCRMhddiMaf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
This is the roadmap's A9 (row P12; Q4 decided: DspTap tagged independently, the minimum asserted, no coupled cadence).
submodules/dsptapmoves to DspTapv0.1.0(dfd766b), the merge of version.h: the version a consumer can assert, ahead of the v0.1.0 tag DspTap#62, which addstap/dsp/version.h.async.h,ratio.h,rational.h) definesTAP_SR_DSPTAP_MINIMUM(0.1.0) token-identically, as D13 does for the family version, andstatic_asserts the pinned DspTap'sTAP_DSP_VERSIONagainst it.family.VersionMacrosAgreechecks that the three definitions agree, that the floor is 0.1.0, and that the pinned DspTap is not older.Why
The family pinned DspTap by bare SHA with no version a header could check, so nothing stated which DspTap a release was tested with, or caught an older one at compile time.
Verification
tap::sr::bridge needs DspTap 0.1.0 or newer (submodules/dsptap).-Werror, all 327 tests pass and clang-tidy is clean on the four changed files.-Werrorcompiles the version test.v0.1.0resolves to dfd766b, the pinned commit. Its tree (523e75a) is identical to the branch commit 9cc002c the local runs used.static_assert, so the ratchet and the ceilings are untouched.Notes for the reviewer
v0.1.0(dfd766b on DspTap'smain), named in commit 7a10680. The maintainer pushed the tag, since this session cannot push tags.🤖 Generated with Claude Code
https://claude.ai/code/session_016GKzq1VSdcMYCRMhddiMaf