Skip to content

A9: each engine asserts the DspTap it was tested with - #92

Merged
tap merged 2 commits into
mainfrom
claude/sample-rate-solutions-comparison-mqc190
Oct 15, 2026
Merged

tap merged 2 commits into
mainfrom
claude/sample-rate-solutions-comparison-mqc190

Conversation

@tap

@tap tap commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

What this changes

This is the roadmap's A9 (row P12; Q4 decided: DspTap tagged independently, the minimum asserted, no coupled cadence).

  • submodules/dsptap moves to DspTap v0.1.0 (dfd766b), the merge of version.h: the version a consumer can assert, ahead of the v0.1.0 tag DspTap#62, which adds tap/dsp/version.h.
  • Each umbrella header (async.h, ratio.h, rational.h) defines TAP_SR_DSPTAP_MINIMUM (0.1.0) token-identically, as D13 does for the family version, and static_asserts the pinned DspTap's TAP_DSP_VERSION against it.
  • family.VersionMacrosAgree checks that the three definitions agree, that the floor is 0.1.0, and that the pinned DspTap is not older.
  • The root README gains a "Tested pairs" table, and CLAUDE.md and the roadmap state the rule.

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

  • A DspTap faked at 0.0.0 fails to compile with tap::sr::bridge needs DspTap 0.1.0 or newer (submodules/dsptap).
  • Locally with clang 18 -Werror, all 327 tests pass and clang-tidy is clean on the four changed files.
  • GCC 13 -Werror compiles the version test.
  • CI is green on the current head (7a10680).
  • v0.1.0 resolves to dfd766b, the pinned commit. Its tree (523e75a) is identical to the branch commit 9cc002c the local runs used.
  • No codegen change: the headers gain a macro and a static_assert, so the ratchet and the ceilings are untouched.

Notes for the reviewer

  • Submodule pin moved: to DspTap v0.1.0 (dfd766b on DspTap's main), 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

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
@tap
tap marked this pull request as ready for review October 15, 2026 00:59
@tap
tap merged commit fdf7b28 into main Oct 15, 2026
32 checks passed
@tap
tap deleted the claude/sample-rate-solutions-comparison-mqc190 branch October 15, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants