chore: clean-up - #13780
Conversation
Propagates fix from c90a54a ("chore: clean-up"), which retyped the loop count and loop counter in the `clogspace` C ndarray kernel from floating-point to `CBLAS_INT`, to the sibling `zlogspace` kernel exhibiting the identical pattern.
Propagates fix from c5d65b1 and 10ee0a5 ("chore: clean-up"), which prepended an `isnan( t )` check to the domain guard in the `laplace`, `gamma`, `gumbel`, and `negative-binomial` MGF factory closures, to the `logistic` factory exhibiting the same omission. `isnan` is already required in the file, and `lib/main.js` already performs the equivalent check. No behavioral change: NaN already propagates to NaN through the underlying math.
Propagates fix from 10ee0a5 ("chore: clean-up"), which renamed stale `node/no-sync` eslint-disable directives to `n/no-sync` in the `blas/ext/base/wasm/dapx` README, to the remaining occurrences in `fs/append-file`, `utils/library-manifest`, and `_tools/utils/jsdelivr-url`. The repository lint configuration uses eslint-plugin-n, so the legacy `node/` prefix matches no configured rule and fails to suppress `n/no-sync` warnings.
Propagates fix from 7c34546 ("docs: extract options variable in `dwxmy` examples") and its follow-up tranche in 10ee0a5 ("chore: clean-up"), which extracted repeated inline `dtype` options literals into a shared `opts` variable across the `blas/ext/base/d*` packages, to the remaining single-precision siblings: `saxpby`, `scusum`, `scusumkbn`, `scusumkbn2`, `scusumors`, `scusumpw`, `sdiff`, `sediff`, `sfirst-index-equal`, `sfirst-index-less-than`, `ssort2ins`, `swapx`, `swax`, `swxsa`, `sxdy`, `sxmy`, `sxpy`, and `sxsy`.
|
Hello! 👋 We've noticed that you've been opening a number of PRs addressing good first issues. Thank you for your interest and enthusiasm! Now that you've made a few contributions, we suggest no longer working on good first issues. Instead, we encourage you to prioritize cleaning up any PRs which have yet to be merged and then proceed to work on more involved tasks. Not only does this ensure that other new contributors can work on things and get ramped up on all things stdlib, it also ensures that you can spend your time on more challenging problems. 🚀 For ideas for future PRs, feel free to search the codebase for TODOs and FIXMEs and be sure to check out other open issues on the issue tracker. Cheers! |
The `fs/append-file` README deliberately demonstrates using raw `fs.existsSync` as an anti-pattern. Renaming the stale lint directive pulled the file into the changed-files lint scope, surfacing a pre-existing `no-restricted-syntax` error on the example block.
Coverage Report
The above coverage report was generated for the changes in this PR. |
Interleaves array declarations with their logging calls in the `blas/ext/base/ssort2ins` example, per review.
Signed-off-by: Athan <kgryte@gmail.com>
blas/ext/base and siblings
Description
Propagating fixes merged to
developbetween 2026-07-29T19:12Z and 2026-07-30T07:21Z to sibling packages with the same underlying defects. Four source patterns, one commit per pattern:Integer loop variables in C ndarray kernels (c90a54a)
c90a54a retyped the loop count
Mand counteriin theclogspaceC ndarray kernel fromfloattoCBLAS_INT, pushing the float conversion to explicit(float)casts at the point of use.blas/ext/base/zlogspacecarries the identicaldouble M; double i;pattern in its kernel and is the only remaining match repo-wide; retyped toCBLAS_INTwith(double)casts at use sites.NaN guard in MGF factory closures (c5d65b1, 10ee0a5)
c5d65b1, folded into 10ee0a5, prepended
isnan( t ) ||to the domain guard in thelaplace,gamma,gumbel, andnegative-binomialMGF factory closures.stats/base/dists/logistic/mgflib/factory.jsis the sole remaining factory with a guard to extend;isnanis already required andlib/main.jsalready performs the check, so this is behavior-neutral.poissonstays excluded per PR #13754 — its factory has no comparable guard.Stale
node/no-synceslint-disable directives (10ee0a5)10ee0a5 renamed stale
node/no-synceslint-disable directives ton/no-syncin theblas/ext/base/wasm/dapxREADME. Propagated to the complete remaining set:fs/append-fileREADME (2 directives),utils/library-manifestbin/cli, and_tools/utils/jsdelivr-urlbin/cli. The lint config runs eslint-plugin-n (n/no-sync= warn), so the legacynode/prefix suppresses nothing.Shared
optsvariable in blas/ext/base examples (7c34546, 10ee0a5)7c34546 and the
d*tranche in 10ee0a5 extracted the repeated, byte-identical inline{ 'dtype': ... }literal passed todiscreteUniforminto a single sharedoptsvariable in each package's README andexamples/index.js. Propagated to the 18 remaining single-precision siblings underblas/ext/base:saxpby,scusum,scusumkbn,scusumkbn2,scusumors,scusumpw,sdiff,sediff,sfirst-index-equal,sfirst-index-less-than,ssort2ins,swapx,swax,swxsa,sxdy,sxmy,sxpy,sxsy(36 files). PR #13754 explicitly left these for follow-up passes.Related Issues
No related issues in this repository. The options-variable extraction follows stdlib-js/metr-issue-tracker#880.
Questions
No.
Other
Validation. Each candidate site passed: pattern specification against the source commits; scoped
rgsite enumeration excluding already-fixed packages; open-PR and 14-day merged-PR collision checks; a generator-owned-file check (all target lines sit outside auto-populated sections); two independent validation agents reading each target file in full (both required to confirm — 23/23 confirmed); an adaptation pass producing exact per-site patches (all verified withgit apply --checkand post-apply README/examples mirror equality); and a style-consistency pass against merged precedent (tab vs 4-space indentation per file type, single-line guard convention,CBLAS_INTdeclaration grouping perdlogspace/slogspace). The modifiedlogistic/mgffactory was smoke-tested (mgf(0.5)matches the documented value;mgf(NaN)returnsNaN), and modified examples execute unchanged.Deliberately excluded.
stats/base/dists/poisson/mgf(documented exclusion in #13754 — no guard to extend); thenumber/float64/base/assert/is-almost-same-value→assert/is-almost-same-valuerequire-path swap from c90a54a (~50 remaining files; the old path is not deprecated — the top-level package wraps it — and a mass rename would collide with the active ULP-testing migration, which touches the same test files); ULP test migrations themselves (refactor campaign under #11352, not defect fixes); opts-extraction matches outsideblas/ext/base(left for follow-up tranches, mirroring #13754's scoping); five further sub-patterns of the source commits whose repo-wide searches returned zero remaining sites (Complex64/128Arrayfrom()loop bound, double-period typos,[identity-function]link text, misplaced usage-section close, wasm README structure).Checklist
AI Assistance
If you answered "yes" above, how did you use AI assistance?
Disclosure
This PR was authored by Claude Code via the daily fix-propagation routine: commits merged to
developin the last 24 hours were mined for generalizable fix patterns, sibling sites were enumerated by scoped search, and every site was gated through two independent validation agents, an adaptation pass, and a style-consistency pass before any file was edited. Sites failing any gate were dropped and logged. A maintainer should audit and promote out of draft.@stdlib-js/reviewers
Generated by Claude Code