fix: follow-up fixes for commits merged to develop on 2026-09-28 - #15652
Draft
Planeshifter wants to merge 6 commits into
Draft
Planeshifter wants to merge 6 commits into
Planeshifter wants to merge 6 commits into
Conversation
…nary-strided1d/unblocked` `ndarray/base/consensus-order` accepts a single argument: a list of stride arrays. The kernels passed the stride arrays as separate positional arguments, so only `stridesX` was inspected and its elements (plain numbers) were fed to `strides2order`, which reports "disorganized" for each. The tally therefore always fell through to the default layout and `isRowMajor` was unconditionally `true`, leaving the consensus uncomputed and the previous column-major detection lost. Results were unaffected, but the loop interchange was pessimal for column-major input. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BNoKQHbVCqA5SsC9A1UBgd
…rnary-strided1d/unblocked` `ndarray/base/consensus-order` accepts a single argument: a list of stride arrays. The kernels passed the stride arrays as separate positional arguments, so only `stridesX` was inspected and its elements (plain numbers) were fed to `strides2order`, which reports "disorganized" for each. The tally therefore always fell through to the default layout and `isRowMajor` was unconditionally `true`, leaving the consensus uncomputed and the previous column-major detection lost. Results were unaffected, but the loop interchange was pessimal for column-major input. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BNoKQHbVCqA5SsC9A1UBgd
The rename to `fill-between` updated `lib/index.js` and deleted the old package, but left the namespace declarations importing `@stdlib/blas/ext/fill-range`, which no longer resolves, and declaring `fillRange`, which is no longer exported. The README table of contents kept the old symbol and a dead link. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BNoKQHbVCqA5SsC9A1UBgd
The rename left the declaration interface named `FillRange`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BNoKQHbVCqA5SsC9A1UBgd
…of-column` The consistency pass converted `index offset for` to `starting index for` in the sibling row and column search packages and in this package's README and declarations, but not in its JSDoc. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BNoKQHbVCqA5SsC9A1UBgd
…of-row` The consistency pass converted `index offset for` to `starting index for` in the sibling row and column search packages and in this package's README and declarations, but not in its JSDoc. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BNoKQHbVCqA5SsC9A1UBgd
Contributor
Coverage Report
The above coverage report was generated for the changes in this PR. |
7 tasks
This branch has not been deployed
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.
Follow-up fixes for commits merged to
developbetween 2026-09-28 20:23 UTC and 2026-09-29 07:03 UTC (e0ab571bc^..32c09fd47, 35 commits, 951 files).No associated issue.
Description
This pull request applies follow-up fixes for defects found while reviewing the 35 commits merged to
developin that window. Four issues survived validation; each is fixed in its own per-package commit.The window covered four themes: a 755-file mechanical consistency pass across 74
blas/ext/base*packages (67c1633c9); four new packages plus three new C implementations underblas/ext; theconsensusOrderrefactor of thestrided1dkernels (100ca4c8d,32c09fd47); and 11 migrations of test suites to ULP-based assertions. Three of the four fixes are leftovers from thefill-range→fill-betweenrename and the consistency pass; the fourth is a functional regression in the kernel refactor.ndarray/base/kernels/generic/{binary,ternary}-strided1d/unblockedconsensusOrdercall sites inlib/node_modules/@stdlib/ndarray/base/kernels/generic/{binary,ternary}-strided1d/unblocked/lib/{2..10}d.js(18 total):@stdlib/ndarray/base/consensus-ordertakes a single list of stride arrays, but100ca4c8dand32c09fd47passed them as separate arguments, so onlystridesXwas inspected and the function always returned'row-major', leaving the loop-interchange optimization inert and losing the column-major detection. Wrap the stride arrays in a list (consensusOrder( [ stridesX, stridesY, stridesZ ] )), matching the README, and add// eslint-disable-line max-lento the long lines in the ternary2d-8dkernels.blas/ext@stdlib/blas/extnamespace declarations and README for thefill-rangetofill-betweenrename missed in0c2ab03e5:docs/types/index.d.ts(lines 30, 257, 263) still imported the deleted@stdlib/blas/ext/fill-range, which breaks type resolution for the whole namespace, and declaredfillRangeinstead of the exportedfillBetween, andREADME.md(lines 55, 131) kept the old symbol and a dead link. This points the import, member, and JSDoc example atfill-between/fillBetweenand corrects the README entry and link definition; alphabetical order is unchanged.blas/ext/fill-betweenFillRangeinterface toFillBetweeninlib/node_modules/@stdlib/blas/ext/fill-between/docs/types/index.d.ts(lines 53 and 333), as0c2ab03e5renamed every other identifier but missed it, leavingdeclare const fillBetween: FillRange;and diverging from siblings such asIndexOfNotEqual; no behavioral change.blas/ext/base/gindex-of-column,blas/ext/base/gindex-of-rowoffsetA/offsetXJSDoc inlib/node_modules/@stdlib/blas/ext/base/gindex-of-column/lib/{accessors,base,ndarray}.jsandlib/node_modules/@stdlib/blas/ext/base/gindex-of-row/lib/{accessors,base,ndarray}.jsfromindex offset fortostarting index for, matching the wording applied in67c1633c9to the sibling packages and to these packages' ownREADME.mdanddocs/types/index.d.ts. The commit converted the adjacentstrideA1lines but missed these 12 lines; docs only.Related Issues
No.
Questions
The
consensusOrderfix restores the layout discrimination the tworefactor:commits intended, but it does change which traversal branch column-major inputs take. Numeric results are identical either way (verified), so this is a performance-path change rather than a correctness one — worth a second look if the positional-argument form was deliberate.Other
Validation
first-index-less-thanvs.index-of-not-equal;gfind-index-betweenvs.gfind-index;gcusomevs.gcuany; the new C scaffolds vs.dwxsa/done-to), checking license headers, JSDoc completeness,@module/@examplepaths,package.jsonfields, C include guards, and alphabetical ordering in namespacelib/index.js,index.d.ts, and README tables of contents.0d–10dkernels, dtype mix-ups across thec/d/s/z/gvariants, C memory safety and header/src/addon/binding.gypsignature parity, and the ULP migrations (operand order, retained expected values, orphanedEPS/delta/tolvariables and requires).consensusOrderfix.consensus-orderwas exercised directly to confirm the positional form returns'row-major'for every input, including column-major strides, while the list form discriminates correctly and honours the majority. Both kernels were then driven end-to-end across shapes[3,2],[2,3,2],[2,2,3,2], and[2,2,2,3,2]in both layouts (16 cases): all pass, and results are identical before and after the fix, confirming the defect is a disabled optimization rather than incorrect output.max-lensettings (code: 80,tabWidth: 4) were applied to all 18 changed kernel files: zero errors, and no redundanteslint-disabledirectives introduced.Deliberately excluded
...→:comment-punctuation migration in theblas/ext/base*READMEs.67c1633c9converted 81 such comments but left 79 in the ellipsis form and added two new ones, so the ellipsis form is not being treated as incorrect; finishing that pass is a separate mechanical change.index.d.tsand README table-of-contents entries forgcusome,gfindIndexBetween, andgindexOfGreaterThanSorted. These symbols were registered in the JS namespaces after the corresponding declaration commits, so the entries lag by one commit. Unlike thefill-rangeimport, these are absent entries rather than dangling references, and adding them falls outside the window's diff.max( 1, s )→schange to themax(1,%d)RangeErrormessages in four*index-of-column/*last-index-of-rowpackages. The template contains the literal textmax(1,%d), so the placeholder is the operand, not the result; passingmax( 1, s )double-applied it. The change is correct,maxremains used in the guard, and the pass is complete across all 89 files carrying that message.Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This PR was written by Claude Code as an automated review of the commits merged to
developin the stated window. Candidate issues were produced by four independent reviewer passes, then each surviving issue was re-verified against the working tree before any edit was made; theconsensusOrderdefect and its fix were additionally confirmed by executing the affected kernels. No human has audited these changes yet, so the PR is opened as a draft.@stdlib-js/reviewers
Generated by Claude Code