Compile the C ABI in CI so the verification layer cannot rot - #14
Merged
Conversation
This repo ships a C ABI under tools/capi that the executed notebook drives via ctypes, but TAP_RATIO_BUILD_CAPI defaults to OFF and CI never turned it on -- so nothing in the pipeline compiled it. A change to a kernel signature could break the ABI and the notebook with it, and CI would stay green. AmbiTap and DspTap already build theirs in CI; this brings RatioTap in line. Enabled on the Linux and macOS legs only. tools/capi carries no __declspec(dllexport) (unlike DspTap's), so an MSVC build would link a DLL that exports nothing -- it would pass without gating anything. That is recorded in the matrix comment and in taphouse's known-divergences list, to be flipped on in the same change that gives the C ABI an export decoration. Verified locally: configure and build succeed with TAP_RATIO_WERROR=ON, the shared library links, it exports its 11 ratio_* entry points, and the full suite passes 58/58. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JhhQ93r2E1QTnCx46YfX8j
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
Turns
TAP_RATIO_BUILD_CAPIon in the primary CI matrix (Linux and macOS legs).Why
This repo ships a C ABI under
tools/capithat the executed notebook drives via ctypes, but the option defaults to OFF and CI never turned it on — so nothing in the pipeline compiled it. A change to a kernel signature could break the ABI, and the notebook with it, while CI stayed green. AmbiTap and DspTap already build theirs in CI; this brings RatioTap in line.Verification
TAP_RATIO_WERROR=ONand the new flag.libratio_capi.solinks and exports its 11ratio_*entry points (nm -D).Notes for the reviewer
tools/capicarries no__declspec(dllexport)(unlike DspTap's), so an MSVC build would link a DLL that exports nothing — it would pass CI without gating anything, which is worse than not running it, because it reads as coverage. Recorded in the matrix comment and in taphouse's known-divergences list, to be flipped on in the same change that gives the C ABI an export decoration.tap::rationamespace,tap::ratioalias,include/tap/ratio/headers) — it was simply missing from the table. Record the namespace convention's real state, and the family's open divergences TapHouse#6 adds it.bench/baselines.jsonare unaffected — this change adds a target, it does not touch codegen.Generated by Claude Code