Skip to content

feat: Track full lib/ and dist/ build output in repository#139

Open
danielsimonjr wants to merge 12 commits intomasterfrom
claude/expand-benchmarks-NGoUJ
Open

feat: Track full lib/ and dist/ build output in repository#139
danielsimonjr wants to merge 12 commits intomasterfrom
claude/expand-benchmarks-NGoUJ

Conversation

@danielsimonjr
Copy link
Copy Markdown
Owner

No description provided.

Add comprehensive performance comparison benchmarks covering:
- Matrix operations (multiply, add, transpose, inverse)
- Linear algebra decompositions (LU, QR, Cholesky)
- Signal processing (FFT, convolution)
- Statistics (mean, std, variance, correlation, min/max)
- Complex number operations
- Eigenvalue computation (power iteration, symmetric)
- Special functions (erf, gamma)
- Vector norms (L1, L2, Infinity)
- Geometry operations (3D distance, cross product)
- Trigonometry (array operations)

The benchmark compares JavaScript baseline, WASM, and WASM+SIMD
implementations to identify performance characteristics and
crossover points where WASM acceleration provides benefits.

Run with: npx tsx test/benchmark/expanded_js_vs_wasm_benchmark.ts
The benchmark now properly loads three implementations:
- Original JavaScript (lib/esm/) - Babel-compiled from JS source
- TypeScript (dist/) - tsup-compiled from TS source
- WASM (lib/wasm/) - AssemblyScript compiled

This enables proper three-way comparison between the implementations.
Update .gitignore to track the original JavaScript build output
in lib/esm/ while continuing to ignore other lib subdirectories.
This enables proper comparison between original JS and WASM builds.
Include the Babel-compiled original JavaScript build output
for performance comparison against TypeScript and WASM builds.
Add all compiled build outputs to enable benchmarking:
- lib/esm/ - Original JavaScript (Babel-compiled ES modules)
- lib/cjs/ - CommonJS build
- lib/browser/ - Browser bundle (UMD)
- lib/wasm/ - WebAssembly modules (AssemblyScript)
- dist/ - TypeScript build (tsup-compiled)

This enables direct comparison between JS, TS, and WASM implementations.
Copilot AI review requested due to automatic review settings January 24, 2026 00:02
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR checks in the generated build artifacts under lib/ (and related browser artifacts), making the full compiled CommonJS output and embedded docs available directly from the repository.

Changes:

  • Adds compiled CommonJS modules for expression nodes/functions, errors, config, and entrypoints.
  • Adds embedded documentation modules for a large set of functions/constants.
  • Adds browser build metadata/artifacts (e.g., lib/browser/package.json, license file).

Reviewed changes

Copilot reviewed 296 out of 1361 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
lib/cjs/expression/node/ParenthesisNode.js Adds compiled ParenthesisNode implementation to the tracked build output.
lib/cjs/expression/function/{parser,evaluate,compile,help}.js Adds compiled expression APIs to the tracked build output.
lib/cjs/expression/embeddedDocs/** Adds generated embedded documentation modules for functions/constants.
lib/cjs/expression/Help.js Adds compiled Help class used by embedded docs/help system.
lib/cjs/error/{IndexError,DimensionError,ArgumentsError}.js Adds compiled error types to the tracked build output.
lib/cjs/core/{config.js,core/function/config.js} Adds compiled configuration defaults and config function.
lib/cjs/entry/{mainAny,mainNumber,configReadonly,allFactoriesAny,allFactoriesNumber}.js Adds compiled entrypoints and tree-shaking helpers.
lib/cjs/constants.js Adds compiled constants factories.
lib/browser/package.json Adds browser build package metadata.
lib/browser/math.js.LICENSE.txt Adds license bundle metadata for the browser build.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/cjs/error/IndexError.js Outdated
Comment thread lib/cjs/error/IndexError.js Outdated
Comment thread lib/cjs/error/DimensionError.js Outdated
Comment thread lib/cjs/error/ArgumentsError.js Outdated
Comment thread lib/cjs/expression/node/ParenthesisNode.js Outdated
Comment thread lib/cjs/expression/embeddedDocs/function/set/setPowerset.js Outdated
Comment thread lib/cjs/expression/embeddedDocs/function/utils/hasNumericValue.js
Comment thread lib/cjs/expression/embeddedDocs/function/expression/compile.js Outdated
Comment thread lib/cjs/expression/embeddedDocs/function/statistics/variance.js
danielsimonjr and others added 7 commits January 24, 2026 08:05
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants