Repository navigation
ci: let the coverage gate see every backend, and document the one it caught - #556
Merged
Merged
Conversation
Backend discovery matched *_generator.py, *_codegen.py and *_compiler.py. A BPF target sitting unreviewed on codex/bpfel-target is named bpf_target.py, so a whole new compilation target would have merged without the coverage gate asking for a page. Added _target and _backend. The nine current backends are unaffected; the point is the next one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Merging #555 gave the coverage checker a tenth backend, and with _target in the suffix list it did what it was built to do: backend:bpf_target has no documented home So here is the page. It covers the CLI, the fixed ABI (bpfel triple, 64-bit pointers, the verifier's 512-byte stack limit), the section and license metadata the kernel reads, and the symbols the target refuses because a BPF program has no userspace runtime. It also records the entry-point naming rule and why it exists: the target lowers with --llvm, so the definition carries the plain Flow name, while flow_export_<name> is a C-backend alias. Looking only for the alias is what made every build on that branch fail. The toolchain caveat is the same as wasm32: Apple's clang has no BPF backend, so this is a Linux-only build. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Found by opening #555, and then immediately proved by merging it.
The gap
check_doc_coverage.pydiscovered backends by matching*_generator.py,*_codegen.pyand*_compiler.py. The BPF target isbpf_target.py, so a whole new compilation target would have merged without the coverage gate asking for a documentation page.Added
_targetand_backendto the suffix list, with a test enumerating all five conventions against a temporary tree.The gate then caught it for real
When #555 merged and I rebased this branch onto main, the checker did exactly what it was built to do:
So this PR also carries
docs/language/bpf.md, written from the implementation rather than from the commit messages:bpfeltriple, 64-bit pointers, and the verifier's 512-byte stack limitmalloc,free,_Znwm,__cxa_throw, …)--llvmso the definition carries the plain Flow name, whileflow_export_<name>is a C-backend alias. Searching only for the alias is what made every build on that branch fail for eight runs.Filed under Targets & interop in the sidebar, next to WebAssembly.
Validation
check_doc_coverage.py: 10/10 backends, every feature coveredwiki_nav.pyconsistent,check_doc_links.pyclean including fragmentscheck_doc_examples.py --check-ledgercleanruff check srcclean