Repository navigation
Mark missing ops in source and show them in the coverage matrix - #1370
Merged
Merged
Conversation
Known gaps (TransposedConv2d, GroupNormalization, SDPA backward, missing StableHLO converters) only showed up when code threw at runtime; the ops status matrix had "—" in almost every backend cell and no layer, lowering or autograd view. - @NotImplemented gains reason/issue; the docs KSP processor gives it precedence over @inprogress and over a detected backend override, and reads method-level markers on @backend classes. - The processor now also runs in skainet-backend-cpu; generateDocs merges its statusByBackend, so the cpu column reflects real overrides. - Matrix gains StableHLO and Backward columns (from jvmTest dumps of the converter registry and the backward dispatch table) and an NN-layers table; ❌ cells link the tracking issue. - TensorOps.convTranspose2d added as a marked placeholder; TransposedConv2d and GroupNormalization marked @NotImplemented. - Removed stale @inprogress markers on implemented DefaultCpuOps methods and the fake Metal markers in VoidTensorOps. - checkUnmarkedStubs fails on NotImplementedError / TODO( in production code that is neither marked nor in config/stub-allowlist.txt (new CI leg stub-markers); docs.yml fails on a stale committed matrix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 19, 2026
Open
|
📖 Documentation Preview The documentation has been built successfully for this PR. Generated Files:
Artifacts:
This comment will be updated automatically when the PR is updated. |
Fill issue = "#…" on the @NotImplemented markers (convTranspose2d and TransposedConv2d #1371, GroupNormalization #1379), note the SDPA stub backward issue (#1384) and the stub-allowlist entries, and regenerate the coverage matrix so every ❌ links its issue. Scope checkUnmarkedStubs to per-project src/ trees so it no longer overlaps the generated docs output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
📖 Documentation Preview The documentation has been built successfully for this PR. Generated Files:
Artifacts:
This comment will be updated automatically when the PR is updated. |
generateDocs had no ordering against the HloCoverageDumpTest / BackwardCoverageDumpTest runs, so on a clean CI checkout it rendered the matrix before the JSON existed and dropped the StableHLO and Backward columns, failing the drift check. Order it after both jvmTest tasks and declare the dump directory as a test output so up-to-date and cached test runs still provide the files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
📖 Documentation Preview The documentation has been built successfully for this PR. Generated Files:
Artifacts:
This comment will be updated automatically when the PR is updated. |
aharakal
approved these changes
Oct 20, 2026
This was referenced Oct 21, 2026
michalharakal
added a commit
that referenced
this pull request
Oct 21, 2026
CHANGELOG [0.62.0] - 2026-10-21 with the parity headline over #1363, #1364, #1368, #1369, #1426, #1427, #1428 and #1430, plus entries for the operator coverage matrix (#1370), the BitNet decode allocation and threading fixes (#1359, #1360, #1361, #1362), the ClassificationSupport extraction (#1429) and the toolchain bumps (Kotlin 2.4.21, kotest 6.2.6, Gradle 9.8.1). VERSION_NAME, CITATION, Antora version, README bom coordinate, What's New and contributors, Android tutorial coordinates; regenerated operator and kernel-support matrices; SKEEP-007 rollout step 3 marked shipped.
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.
Why
Real gaps such as
TransposedConv2d.forward(NotImplementedError),GroupNormalization.forward(fourTODO()s, sogroupNorm {}crashes), the SDPA backward (null gradients) and missing StableHLO converters only showed up when code threw. The operator coverage matrix showed—in 65 of 66 backend rows. It had no view of layers, StableHLO lowering or autograd, and nothing in CI kept it current.What
One marker for a gap.
@NotImplementednow takesreasonandissuein addition to its backend list. In the docs KSP processor it wins over@InProgressand over a detected backend override. The processor now also reads method-level markers on@Backendclasses.Real backend data. The processor now also runs in
skainet-backend-cpu, andgenerateDocsmerges itsstatusByBackendinto the matrix. The cpu column is now 66/67 ✅ instead of all—.Wider matrix:
conv3d,convTranspose1d/2d,elu,leakyRelu,logSoftmax,powScalar,log2,log10,pad2d,unfold,lt,geandtril, plus three non-op helpers.stubbedBackwardOpNamesset. SDPA shows❌ stub.nnModule, withTransposedConv2dandGroupNormalization❌.issuefrom the marker. Notes now render; previously they were always empty because the generator readmessagewhile the processor writescontent.Gaps marked in source:
TensorOps.convTranspose2dadded as a placeholder with a throwing default (additive API, see the.apidumps).TransposedConv2d.forwardnow callsconvTranspose2d.TransposedConv2dandGroupNormalizationare marked@NotImplemented.@InProgress("cpu", issue = "task-ops.md#…")markers from implementedDefaultCpuOpsmethods, and the fake@InProgress("Metal", issue = "GH-1234")inVoidTensorOps.Guard rails:
./gradlew checkUnmarkedStubs, a newstub-markersleg inbuild.yml. It fails onNotImplementedError/TODO(in production code that is neither inside a marked declaration nor listed inconfig/stub-allowlist.txt. Each allowlist entry ispath|count|issue, so adding a stub to an allowlisted file also fails.docs.ymlregenerates the matrix and fails if the committed pages are stale (the date stamp is ignored). Its path filters now include backend-cpu, compile-hlo and compile-dag.documentation.ymluploaded from a stale path; that is fixed.Contributor docs:
issue-taxonomy.adoc§ From a marked gap to an issue;darc-workflow.adoc(C-phase criterion);operator-design.adoc.Tracking issues
DARC parents with lane sub-issues; 19 lanes are
good first issue:The second commit writes these numbers into the
@NotImplementedmarkers andconfig/stub-allowlist.txt, so every ❌ cell links its issue.Verification
:skainet-lang:skainet-lang-ksp-processor:jvmTest: 14 tests, including a new case for marker precedence,*expansion over backends and layer discovery.jvmTestfor skainet-lang-core (1046), skainet-backend-cpu (490), compile-dag (115, 3 skipped as before) and compile-hlo (258). All green.:skainet-backends:skainet-backend-cpu:compileKotlinLinuxX64andcompileKotlinJs(KSP added there).apiDump: additive only (convTranspose2d).checkUnmarkedStubspasses. Adding a bareTODO()to lang-core commonMain makes it fail.generateDocsrun twice with--rerun-tasks:git diff -I 'Generated from'is clean.🤖 Generated with Claude Code