You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Have questions about stdlib? Need help fixing a bug, figuring out what to do next, or just looking for feedback? Join our weekly office hours to connect with project maintainers, stay updated on the latest project news, and chat with other community members. This is a great opportunity to ask questions, share ideas, and engage directly with the stdlib team.
Ok, considering `blas/ext/base/gxmy` as the closest reference
implementation, we need to refactor everything in
`blas/ext/base/gxdy`.
The difference is mostly implementation, and some other things
you will figure out when comparing.
But as far as structure goes, `blas/ext/base/gxmy` is the way
to go.
Aim:
Help build a sort of "knowledge graph" of what patterns and references across the packages in the stdlib codebase are used and where they do and do not apply.
Help for identifying folks who may be able to help each other/do peer reviews not because they're working on the same thing, but because the work they're doing is the same "shape" (also reuse feedback done on one PR to steer changes in another).
Bonus: Could be a useful sort of shorthand for maintainers/reviewers to see if the implementation's going to miss the mark because it's based on a reference that doesn't work (and a way to give feedback in the form of: For x pattern, {see packagename}).
I'm not wording this well, but hopefully I can explain the idea better tomorrow. Basically, identifying patterns and their exceptions are useful for becoming better programmers with or without AI.
Example
e.g., Athan just tagged me in a PR comment (https://github.com/stdlib-js/stdlib/pull/16285#discussion_r4365641414) about where broadcasting _isn't_ required between ndarrays—a counterexample to last week's discussion about broadcasting patterns for sort order and normalization for @gunjjoshi's Qs re. top-level ndarray implementations and FFTs).
I really like this idea, @batpigandme! Thanks for taking inspiration from the blog and turning it into something useful!
I especially like the focus on capturing not just which patterns were followed, but also where they don't apply. I think this could be really helpful for both contributors and reviewers, especially as more people rely on AI agents to implement and improve PRs.
My only concern is that AI agents might fill out this section with convincing explanations without actually understanding or validating the references. I think the value comes from explaining why a reference makes sense and where it differs, rather than just listing similar packages. Keeping it optional and lightweight also makes sense so it doesn't become another checkbox.
One other thing I've been thinking about is discoverability. When implementing a new package, AI agents generally look at existing code but don't necessarily read previously merged PRs or their descriptions. So while this helps reviewers immediately, the knowledge might remain buried in old PRs. It could be interesting to eventually make these references searchable or accessible to future contributors and agents.
Overall, we can see how contributors use it before deciding whether anything more is needed!
These notes are likely imperfect, especially when it comes to spelling/function/package names
Meeting Purpose
Discussing code quality, AI contributions, and project scaling.
Key Takeaways
New PR Template Section: A new PR template section will require contributors to document reference packages and note any implementation differences. This will build a knowledge graph to guide contributors and improve AI agent reliability.
AI Strategy: AI is a tool for scaling the project by distributing ownership. It's used for deep research and automating well-understood processes, but manual work is prioritized for learning and avoiding over-engineered solutions.
logspace Bug: A bug in logspace causes incorrect type promotion, forcing workarounds in dependent packages like slogspace. The fix must distinguish two user intents: full float32 computation vs. float64 computation with a float32 output.
Website Analytics: The website's analytics data is not GDPR compliant and cannot be shared publicly. A compliant, anonymized view is a long-term goal to provide user navigation insights.
Topics
Code Quality & Reference Packages
Problem: Inconsistent code patterns and outdated conventions (e.g., ULP vs. absolute difference assertions) create review overhead and risk being perpetuated by AI agents.
Solution: A new PR template section will require documenting reference packages and their implementation differences.
Rationale: This creates a visible "knowledge graph" of best practices, guiding contributors and improving AI agent reliability.
Risk: Could lead to over-indexing on a few key packages, potentially limiting exploration.
AI-Assisted Contributions
Goal: Use AI to scale the project by distributing ownership and reducing Athan as a bottleneck.
Strategy: Treat AI as a tool, not a driver, with distinct use cases:
Deep Research: Cross-calibrating across ecosystems (Julia, MATLAB, R, Go) for API design insights.
Automation: Building quality assurance tooling and accelerating migrations.
Manual Work: Prioritizing hands-on coding to create "disfluency," which forces learning and reveals the true contours of a problem.
Scaling: Automating well-understood processes after manual work has defined the optimal approach.
logspace Type Promotion Bug
Problem:slogspace PR YB175 requires a type-casting workaround to pass CI, which is a symptom of a deeper bug in the logspace package.
Root Cause:logspace incorrectly promotes scalar inputs (e.g., base=E) to float64 even when an explicit float32 output is requested.
Required Fix: The logspace API must distinguish two user intents:
Full float32 computation: All operations performed in single precision.
float64 computation with float32 output: Operations performed in double precision for accuracy, then downcast.
Impact: This distinction is critical because it directly affects floating-point precision and the potential for accumulated rounding error.
Website Analytics & Data Privacy
Request: Manit asked to access website analytics data for insights.
Decision: Data is not shareable.
Reason: The current tracking is not GDPR compliant (e.g., no cookie opt-out, near-individualized IPs).
Goal: Create a public, anonymized view of popular pages to help users navigate the docs.
CI Failure: deasync
Problem: CI is failing on check licenses and eLint PR title jobs.
Diagnosis: The failure is related to the deasync package, which requires a native add-on build.
Investigation: The issue is not a missing binding.gyp file in deasync v1.1, as initially suspected. The failure is recent, despite the package being two years old, suggesting a conflict with a newer toolchain (e.g., NPM 10.8).
Activity
batpigandme commentedon Oct 26, 2026
❓ What does the group think of stdlib-js/stdlib#16286, and how could we make it more useful?
What is it? An added "reference package(s)" section to the PR template (see the diff here).
Inspo: @anandkaranubc's The Codebase is the Prompt. His example prompt is a 🤩 reference:
Aim:
For x pattern, {see packagename}).I'm not wording this well, but hopefully I can explain the idea better tomorrow. Basically, identifying patterns and their exceptions are useful for becoming better programmers with or without AI.
Example
e.g., Athan just tagged me in a PR comment (https://github.com/stdlib-js/stdlib/pull/16285#discussion_r4365641414) about where broadcasting _isn't_ required between ndarrays—a counterexample to last week's discussion about broadcasting patterns for sort order and normalization for @gunjjoshi's Qs re. top-level ndarray implementations and FFTs).anandkaranubc commentedon Oct 26, 2026
I really like this idea, @batpigandme! Thanks for taking inspiration from the blog and turning it into something useful!
I especially like the focus on capturing not just which patterns were followed, but also where they don't apply. I think this could be really helpful for both contributors and reviewers, especially as more people rely on AI agents to implement and improve PRs.
My only concern is that AI agents might fill out this section with convincing explanations without actually understanding or validating the references. I think the value comes from explaining why a reference makes sense and where it differs, rather than just listing similar packages. Keeping it optional and lightweight also makes sense so it doesn't become another checkbox.
One other thing I've been thinking about is discoverability. When implementing a new package, AI agents generally look at existing code but don't necessarily read previously merged PRs or their descriptions. So while this helps reviewers immediately, the knowledge might remain buried in old PRs. It could be interesting to eventually make these references searchable or accessible to future contributors and agents.
Overall, we can see how contributors use it before deciding whether anything more is needed!
manit2004 commentedon Oct 27, 2026
Awaiting review on stdlib-js/stdlib#15859 , stdlib-js/stdlib#15861 , stdlib-js/stdlib#14415
ujjwalv01 commentedon Oct 27, 2026
LAPACK (
dlassqrefactor to use seperate output array as discussed previously) : #15668 - Request reviewyb175 commentedon Oct 27, 2026
needs discussion : stdlib-js/stdlib#16224
batpigandme commentedon Oct 27, 2026
AI-Generated Summary
Caution
These notes are likely imperfect, especially when it comes to spelling/function/package names
Meeting Purpose
Discussing code quality, AI contributions, and project scaling.
Key Takeaways
logspaceBug: A bug inlogspacecauses incorrect type promotion, forcing workarounds in dependent packages likeslogspace. The fix must distinguish two user intents: fullfloat32computation vs.float64computation with afloat32output.Topics
Code Quality & Reference Packages
ULPvs. absolute difference assertions) create review overhead and risk being perpetuated by AI agents.AI-Assisted Contributions
logspaceType Promotion BugslogspacePR YB175 requires a type-casting workaround to pass CI, which is a symptom of a deeper bug in thelogspacepackage.logspaceincorrectly promotes scalar inputs (e.g.,base=E) tofloat64even when an explicitfloat32output is requested.logspaceAPI must distinguish two user intents:float32computation: All operations performed in single precision.float64computation withfloat32output: Operations performed in double precision for accuracy, then downcast.Website Analytics & Data Privacy
CI Failure:
deasynccheck licensesandeLint PR titlejobs.deasyncpackage, which requires a native add-on build.binding.gypfile indeasyncv1.1, as initially suspected. The failure is recent, despite the package being two years old, suggesting a conflict with a newer toolchain (e.g., NPM 10.8).Full transcript
Full office hours transcript