Skip to content

fix: propagate API_SUFFIX wrappers and complex-number docs wording#11952

Open
Planeshifter wants to merge 2 commits intodevelopfrom
philipp/fix-propagation-2026-05-05
Open

fix: propagate API_SUFFIX wrappers and complex-number docs wording#11952
Planeshifter wants to merge 2 commits intodevelopfrom
philipp/fix-propagation-2026-05-05

Conversation

@Planeshifter
Copy link
Copy Markdown
Member

Description

Propagating fixes merged to develop between 2026-05-04 17:00 EDT and 2026-05-05 03:03 PDT to sibling packages.

fix: — Missing API_SUFFIX(...) wrappers around internal _ndarray calls (a65e1fd, 8516750)

Internal calls to API_SUFFIX-decorated strided ndarray routines were made using bare symbol names (e.g., stdlib_strided_drss_ndarray(...) instead of API_SUFFIX(stdlib_strided_drss_ndarray)(...)). When the project is built with a non-empty CBLAS integer suffix, the bare name is an undefined symbol, causing link failure; the bug is silent only when the suffix is empty. Affected packages span pairwise summation helpers with self-recursive _ndarray calls and z-test and variance routines delegating to sibling _ndarray entry points.

  • blas/ext/base/snansumpw
  • blas/ext/base/ssumpw
  • stats/strided/dsempn
  • stats/strided/dsmeanpn
  • stats/strided/dsvariancepn
  • stats/strided/dztest
  • stats/strided/dztest2
  • stats/strided/sztest
  • stats/strided/sztest2

docs: — Word order: "{single,double}-precision complex floating-point" (b0713ea, a3a5677)

tape(...) descriptions in four assert packages used the reversed form "complex {single,double}-precision floating-point" rather than the canonical "{single,double}-precision complex floating-point" established across the rest of the project. The fix propagates the word-order correction from b0713ea and a3a5677, bringing the test descriptions into agreement with each package's own lib/main.js JSDoc.

  • complex/float32/base/assert/is-almost-equal
  • complex/float32/base/assert/is-almost-same-value
  • complex/float64/base/assert/is-almost-equal
  • complex/float64/base/assert/is-almost-same-value

Related Issues

None.

Questions

None.

Other

Validation. Each candidate site was searched via ripgrep across lib/node_modules/@stdlib/, scoped to the namespaces in which the source commits originated (stats/strided/*, blas/ext/base/*, complex/float{32,64}/base/assert/*). Two independent validation passes confirmed (a) the calling function is itself API_SUFFIX-wrapped at its definition, (b) the called function's definition uses API_SUFFIX(...), and (c) the bare-name call lies inside the wrapped function body. A separate adaptation pass produced the per-site mechanical patch and a style-consistency pass confirmed each replacement matches the surrounding file's spacing and call conventions.

Deliberately excluded. Calls to stdlib_strided_stride2offset were not wrapped — the function's definition is unsuffixed, so wrapping its call sites would produce undefined symbols (~390 ripgrep hits dropped on this basis). Sites flagged needs-human by any agent were dropped. Adaptive fixes requiring cross-package edits were dropped. The docs: restore section template comments (86e9aee) and refactor: merge two-condition argument-validation blocks (79dedda) commits were not propagated — neither produces a generalizable search signature without risking subtle regressions.

Checklist

AI Assistance

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

This PR was authored by Claude Code as part of an automated fix-propagation routine. Source commits were identified within the last 24 hours on develop, fix patterns specified, candidate sites validated independently by two reviewers and a style-consistency pass, and patches applied mechanically. A maintainer should review before merging.


@stdlib-js/reviewers


Generated by Claude Code

claude added 2 commits May 5, 2026 13:19
Propagates fixes from a65e1fd ("fix: add suffix wrappers and replace
inline NaN literal") and 8516750 ("fix: add missing suffix wrappers")
to sibling packages whose `API_SUFFIX`-wrapped routines call other
`API_SUFFIX`-wrapped strided routines without the macro.

Affected packages:

- `blas/ext/base/snansumpw`
- `blas/ext/base/ssumpw`
- `stats/strided/dsempn`
- `stats/strided/dsmeanpn`
- `stats/strided/dsvariancepn`
- `stats/strided/dztest`
- `stats/strided/dztest2`
- `stats/strided/sztest`
- `stats/strided/sztest2`
Propagates fixes from b0713ea ("docs: update descriptions to be
consistent with elsewhere in project") and a3a5677 ("docs: follow-up
fixes") to test descriptions that still use the reverse word order
"complex {single,double}-precision floating-point". Project canonical
wording is "{single,double}-precision complex floating-point", which
matches the JSDoc in each package's `lib/main.js`.

Affected packages:

- `complex/float32/base/assert/is-almost-equal`
- `complex/float32/base/assert/is-almost-same-value`
- `complex/float64/base/assert/is-almost-equal`
- `complex/float64/base/assert/is-almost-same-value`
@stdlib-bot
Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
blas/ext/base/snansumpw $\color{green}457/457$
$\color{green}+100.00%$
$\color{green}59/59$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}457/457$
$\color{green}+100.00%$
blas/ext/base/ssumpw $\color{green}436/436$
$\color{green}+100.00%$
$\color{green}24/24$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}436/436$
$\color{green}+100.00%$
complex/float32/base/assert/is-almost-equal $\color{green}115/115$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}1/1$
$\color{green}+100.00%$
$\color{green}115/115$
$\color{green}+100.00%$
complex/float32/base/assert/is-almost-same-value $\color{green}117/117$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}1/1$
$\color{green}+100.00%$
$\color{green}117/117$
$\color{green}+100.00%$
complex/float64/base/assert/is-almost-equal $\color{green}115/115$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}1/1$
$\color{green}+100.00%$
$\color{green}115/115$
$\color{green}+100.00%$
complex/float64/base/assert/is-almost-same-value $\color{green}117/117$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}1/1$
$\color{green}+100.00%$
$\color{green}117/117$
$\color{green}+100.00%$
stats/strided/dsempn $\color{green}350/350$
$\color{green}+100.00%$
$\color{green}13/13$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}350/350$
$\color{green}+100.00%$
stats/strided/dsmeanpn $\color{green}379/379$
$\color{green}+100.00%$
$\color{green}18/18$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}379/379$
$\color{green}+100.00%$
stats/strided/dsvariancepn $\color{green}395/395$
$\color{green}+100.00%$
$\color{green}21/21$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}395/395$
$\color{green}+100.00%$
stats/strided/dztest $\color{green}481/481$
$\color{green}+100.00%$
$\color{green}26/26$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}481/481$
$\color{green}+100.00%$
stats/strided/dztest2 $\color{green}516/516$
$\color{green}+100.00%$
$\color{green}29/29$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}516/516$
$\color{green}+100.00%$
stats/strided/sztest $\color{green}487/487$
$\color{green}+100.00%$
$\color{green}26/26$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}487/487$
$\color{green}+100.00%$
stats/strided/sztest2 $\color{green}524/524$
$\color{green}+100.00%$
$\color{green}29/29$
$\color{green}+100.00%$
$\color{green}4/4$
$\color{green}+100.00%$
$\color{green}524/524$
$\color{green}+100.00%$

The above coverage report was generated for the changes in this PR.

@Planeshifter Planeshifter marked this pull request as ready for review May 5, 2026 14:53
@Planeshifter Planeshifter requested review from a team and kgryte May 5, 2026 14:53
@stdlib-bot stdlib-bot added the Needs Review A pull request which needs code review. label May 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs Review A pull request which needs code review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants