chore: propagate recent develop fixes to siblings (2026-07-31) - #13805
chore: propagate recent develop fixes to siblings (2026-07-31)#13805Planeshifter wants to merge 4 commits into
develop fixes to siblings (2026-07-31)#13805Conversation
Propagates fix from 4da1e58 ("bench: fix benchmark names") to sibling packages with the same malformed TAP benchmark names in `benchmark/c/benchmark.length.c` files.
Propagates fix from 4c8e34d ("docs: update examples") to sibling packages whose `*.native.js` files lack the `## Notes` JSDoc block present in their non-native counterparts. Notes are copied verbatim from each package's own JS implementation files.
Propagates fix from a669750 ("bench: refactor C benchmarks to use pre-computed values") to the remaining `number/float32/base` and `number/float64/base` packages which still generate random values inside timed benchmark loops.
Propagates fix from d5a00c3 ("chore: fix C lint errors") to sibling packages whose C examples and README code snippets declare read-only variables without the `const` qualifier.
603f444 to
abef52e
Compare
Coverage Report
The above coverage report was generated for the changes in this PR. |
|
The
Not fixing it here, since the fix belongs in the CI scripts rather than a propagation PR. Two options: cap the batch size in the runner script (e.g. The earlier Generated by Claude Code |
Description
This pull request:
developbetween 2026-07-30 14:56 PDT (22f4f4679) and 2026-07-31 04:19 PDT (a6697506a) to sibling packages containing the same defects.Propagated benchmark TAP-name fix
The
native::segment in C benchmark TAP output, corrected upstream in4da1e5810forblas/ext/base, was carried into 10 sibling packages via copy-paste and is fixed here identically: eachbenchmark/c/benchmark.length.cprintf format string is changed from# c::native::%s:len=%dto# c::%s:len=%d(and the ndarray variant to# c::%s:ndarray:len=%d), matching the repo-wide TAP naming convention. 20 lines across 10 files are affected, two per package.blas/ext/base/scartesian-square,blas/ext/base/dcartesian-square,blas/ext/base/zcartesian-square,blas/ext/base/scartesian-power,blas/ext/base/dcartesian-power,blas/ext/base/scartesian-product,blas/ext/base/dcartesian-product,blas/ext/base/zcartesian-product,blas/ext/base/svander,blas/ext/base/dvanderNative binding docstring parity
The Notes section added to
blas/ext/base/dindex-of-not-equal's*.native.jsin4c8e34dcacloses a documentation gap that recurs across 33*.native.jsfiles in 19 sibling packages: each is missing a## Notesblock present in its JS counterpart. The fix propagates identically to each target: the Notes block is copied verbatim from the package's own JS implementation file into its*.native.jsfile(s). The 8 sort-family packages (d/s×sort2hp/sort2sh/sorthp/sortsh) are excluded — their JS siblings pair Notes with a## Referencessection, and no*.native.jsin the repo currently carries References, so extending scope there requires a maintainer decision.blas/ext/base/cindex-of-column,blas/ext/base/cindex-of-row,blas/ext/base/clast-index-of-row,blas/ext/base/dindex-of-column,blas/ext/base/dindex-of-row,blas/ext/base/dlast-index-of-row,blas/ext/base/sindex-of-column,blas/ext/base/sindex-of-row,blas/ext/base/slast-index-of-row,blas/ext/base/zindex-of-column,blas/ext/base/zindex-of-row,blas/ext/base/zlast-index-of-row,blas/ext/base/dcartesian-square,blas/ext/base/scartesian-square,blas/ext/base/zcartesian-square,blas/ext/base/dcircshift,blas/ext/base/scircshift,blas/ext/base/dminheap-sift-down,blas/ext/base/sminheap-sift-downPre-compute RNG inputs outside timed benchmark loops
Nine benchmarks in
number/float32/baseandnumber/float64/basetimed random value generation alongside the operation under test, inflating measurements with RNG overhead. Fixed per the template established ina6697506a: values are generated into a 100-element array beforetic(), and the loop indexes withi % 100, isolating the timed region to the function under test. All 9 compile clean under-Wall -Wextra.number/float32/base/to-word,number/float32/base/assert/is-same-value,number/float32/base/assert/is-same-value-zero,number/float64/base/get-low-word,number/float64/base/get-high-word,number/float64/base/to-words,number/float64/base/signbit,number/float64/base/assert/is-same-value,number/float64/base/assert/is-same-value-zeroConst-qualify read-only variables in
strided/baseexample codeCommit
d5a00c330addedconstto read-only, literal-initialized variables instrided/base/smap's C example and README, correcting a lint error; the same omission was present in eight sibling packages. Each addition was verified against the package's own header signature — every input pointer isconst-qualified in the C API — and every patched example compiles clean under-Wall -Wextra; output arrays are left non-const. Packages routing arrays through non-const pointer arrays (unary,binary,mskunary,nullary) were excluded, sinceconstthere breaks compilation.strided/base/cmap,strided/base/zmap,strided/base/dmskmap,strided/base/dmap2,strided/base/smskmap2,strided/base/stride2offset,strided/base/min-view-buffer-index,strided/base/max-view-buffer-indexWithdrawn: invalid ESLint directive in twin fixture
The invalid
/* eslint-ignore no-multiple-empty-lines */directive fixed upstream in990d891c1recurs byte-for-byte in_tools/lint/license-header-glob/test/fixtures/start-location/file.js. The propagated correction was initially included and then withdrawn: the fixture is intentionally invalid (its license header deliberately starts at line 6 so the package's tests can assert an error), and theLint Changed Filesworkflow runslint-license-headers-filesover every changed file with no fixture exemption, so any edit to this file fails CI. Landing the one-line fix requires a maintainer either merging over the red check (as with the source commit) or exempting lint-tool fixtures from the license-header lint.Related Issues
No.
Questions
No.
Other
Validation performed before inclusion:
*.native.jsfiles (Notes/References scope ambiguity), two bareeslint-ignorefixtures (would trip--report-unused-disable-directives),strided/base/smskmap(incomplete analog flagged during validation), and README-only staleness instrided/base/dmapandstrided/base/smap2(single-pass confirmation only).gcc -std=c99 -Wall -Wextra.One commit per source fix pattern; each commit body cites the propagated source commit SHA.
Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This PR was authored by Claude Code as part of an automated fix-propagation routine: source fixes were extracted from commits merged to
developin the last 24 hours, candidate sibling sites were located by pattern search, and every applied patch was verified by multiple independent validation passes (defect presence, per-site adaptation, style consistency) plus compilation checks before inclusion.@stdlib-js/reviewers