Skip to content

Office Hours (2026-07-21)聽#142

Closed
Closed

Description

@github-actions

馃専 Join Us for Weekly Office Hours! 馃専

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.

Everyone is welcome鈥攄rop in and say hello!

Time

UTC Tue 21-Jul-2026 16:30 (04:30 PM):

Timezone Date/Time
US / Pacific Tue 21-Jul-2026 09:30 (09:30 AM)
US / Mountain Tue 21-Jul-2026 10:30 (10:30 AM)
US / Central Tue 21-Jul-2026 11:30 (11:30 AM)
US / Eastern Tue 21-Jul-2026 12:30 (12:30 PM)
EU / Western Tue 21-Jul-2026 17:30 (05:30 PM)
EU / Central Tue 21-Jul-2026 18:30 (06:30 PM)
EU / Eastern Tue 21-Jul-2026 19:30 (07:30 PM)
Moscow Tue 21-Jul-2026 19:30 (07:30 PM)
Chennai Tue 21-Jul-2026 22:00 (10:00 PM)
Hangzhou Wed 22-Jul-2026 00:30 (12:30 AM)
Tokyo Wed 22-Jul-2026 01:30 (01:30 AM)
Sydney Wed 22-Jul-2026 02:30 (02:30 AM)

or in your local time:

Links

Joining the meeting

Agenda

  • Have specific things to discuss? Please comment in the issue thread below to add specific items to the agenda.

Activity

  1. added
    Office HoursIssue announcing office hours and soliciting associated agenda items.
    on Jul 14, 2026
  2. manit2004 commented on Jul 21, 2026

    @manit2004
  3. DivitJain26 commented on Jul 21, 2026

    @DivitJain26
    Member
    • I鈥檝e implemented your feedback on feat: add array/uint64聽stdlib#12562. However, I can鈥檛 remove the empty line in the README because doing so triggers a lint error: feat: add array/uint64聽stdlib#12562 (comment).

    • I had a more general question. Since many stdlib packages depend on Node.js APIs or native addons, I was wondering why that is, given that one of the project's goals is to bring numerical computing to the web?

  4. batpigandme commented on Jul 21, 2026

    @batpigandme
    Member

    AI-Generated Summary

    Caution

    These notes are likely imperfect, especially when it comes to spelling/function/package names

    Meeting Purpose

    Discuss project philosophy, documentation, testing, and new initiatives.

    Key Takeaways

    • Project Scope: StandardLib's "web" scope includes all JS runtimes (browser, Node.js) to enable server-side performance via native add-ons (e.g., FFTW) and integration with existing hardware-optimized libraries.
    • Interactive Docs: Runnable examples are a high-ROI goal, but the technical challenge is significant. A potential path is to build a custom runtime (inspired by javascript.express) that dynamically loads individual ESM packages, avoiding the 100MB main bundle.
    • Testing Philosophy: StandardLib prioritizes test isolation and debuggability over parameterization. This philosophy is necessary because the project often is the reference implementation, making direct comparison against a known-good version impossible.
    • New Initiatives: A potential WGPU namespace for WebGPU utilities was discussed. The path forward is to first build more POCs (e.g., strings on GPU) to identify common patterns before generalizing them into a public API, mirroring the successful Regal project for WebGL.

    Topics

    Project Philosophy: "Web" Scope & Native Add-ons

    • StandardLib's definition of "web" is broad, encompassing any JavaScript runtime (browser, Node.js, Deno, Bun).
    • Rationale for Native Add-ons:
      1. Performance: Access hardware-optimized libraries (e.g., FFTW, BLAST, LAPACK) for superior speed, especially on the server where performance ceilings are higher.
      2. Integration: Interface with existing tools (e.g., OpenCV) without porting their entire codebases to JavaScript.
      3. Positioning: Differentiate from other numerical ecosystems (Python, R) by being "web native."
    • Example: For FFTs, StandardLib has a pure JS/C implementation. On Node.js, users can swap to a native FFTW binding to unlock SIMD and OpenMP support.

    Documentation: Interactive Examples

    • Goal: Add runnable code examples to the documentation.
    • Technical Challenges:
      • Bundle Size: The full StandardLib bundle is ~100MB, too large for client-side loading.
      • Dynamic Loading: Dynamically loading individual ESM packages is complex and requires significant engineering.
    • ROI Concerns: The value of simple "run" buttons is unproven; more compelling, editable demos are likely needed.
    • Proposed Solution: Build a custom runtime inspired by javascript.express. This would transform existing returns annotations into interactive elements that update in real-time.
    • Path Forward: Build a POC for a compelling, multi-function demo to test the approach.

    Testing Strategy

    • Manit proposed a reusable, parameterized test suite structure (validation, fixtures, edge cases).
    • StandardLib's Philosophy:
      • Isolation over Parameterization: Each test case is explicit and isolated to a single variable change.
      • Rationale: Prioritizes long-term debuggability and readability, as isolating failures in parameterized tests can be difficult.
      • Reference Implementation: StandardLib often is the reference, making direct comparison against a known-good version impossible. Tests must use mathematical checks (e.g., orthogonality) instead of simple value comparisons.

    New Initiatives: WebGPU Utilities

    • Manit is building a "strings on WebGPU" project, inspired by a Joseph Zaza book chapter.
    • Idea: Create a public WGPU namespace in StandardLib for common WebGPU utilities.
    • Path Forward:
      1. Build More POCs: Continue exploring WebGPU use cases (e.g., strings, BLAST) to identify common patterns.
      2. Generalize: Use these patterns to inform the design of a public API.
    • Inspiration: The Regal project for WebGL, which provided a framework to simplify common visualization tasks.

    Error Handling: uint64/parse

    • Context: Deciding between RangeError and SyntaxError for invalid inputs in the uint64/parse function.
    • Decision:
      • SyntaxError: For invalid characters (e.g., leading minus sign).
      • RangeError: For values exceeding the 64-bit integer limit.
    • Implementation: Wrap the call to string-to-words in a try-catch block to re-throw a more informative RangeError for out-of-bounds values.
    Full transcript

    Full office hours transcript

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Office HoursIssue announcing office hours and soliciting associated agenda items.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions