sagebrush-web 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/NOTICE.md CHANGED
@@ -6,8 +6,8 @@ This package bundles three components.
6
6
  github.com/sagemathinc/sagebrush compiled to WebAssembly).
7
7
  Copyright (c) 2026 SageMath, Inc. Licensed under the MIT license or the
8
8
  Apache License 2.0, at your option (`LICENSE-MIT`, `LICENSE-APACHE`).
9
- Parts derived from NumPy (BSD 3-Clause), Arm Optimized Routines (MIT)
10
- and fdlibm keep their notices; see `NOTICE.md` in the repository.
9
+ The Rust crates it links are listed, with their licenses and license
10
+ texts, in `THIRD-PARTY-NOTICES.txt`.
11
11
 
12
12
  The a_p engine is a port of the genus-1 strategy of Andrew V. Sutherland's
13
13
  smalljac, used with his permission (see `engine/ap/PROVENANCE.md` in the
package/README.md CHANGED
@@ -5,23 +5,24 @@ the only jsdelivr path Claude's artifact sandbox allows; `/gh/<repo>@<commit>/cd
5
5
  also works elsewhere):
6
6
 
7
7
  ```js
8
- const sb = await import("https://cdn.jsdelivr.net/npm/sagebrush-web@0.1.0/sagebrush-engine.mjs");
9
- const py = await import("https://cdn.jsdelivr.net/npm/sagebrush-web@0.1.0/pyparse.mjs");
8
+ const sb = await import("https://cdn.jsdelivr.net/npm/sagebrush-web@0.3/sagebrush-engine.mjs");
9
+ const py = await import("https://cdn.jsdelivr.net/npm/sagebrush-web@0.3/pyparse.mjs");
10
10
  sb.charpoly({ n: 1, k: 12, q: 2, sign: 1 }); // proven, over Z[zeta_m]
11
11
  py.parse("x = [1, 2 3]\n"); // throws CPython's SyntaxError
12
12
  ```
13
13
 
14
14
  | File | Raw | Gzipped (as served) | What |
15
15
  |---|---|---|---|
16
- | `sagebrush-engine.mjs` | 549 KB | 208 KB | the Rust engines (`engine/web`, wasm32) inlined as base64 |
17
- | `pyparse.mjs` | 227 KB | 33 KB | CPython 3.14's parser (`pyparse/`) |
16
+ | `sagebrush-engine.mjs` | 6.7 MB | 2.2 MB | the Rust engines (`engine/web`, wasm32) inlined as base64: the same `wasm/sagebrush-engine.wasm` as the notebook and CLI |
17
+ | `pyparse.mjs` | 217 KB | 33 KB | CPython 3.14's parser (`pyparse/`) |
18
18
 
19
19
  Why this shape: in the October 2026 smoke test, Claude's artifact sandbox
20
20
  blocked `fetch()` to every CDN and `import()` from esm.sh, but allowed
21
21
  `import()` from cdn.jsdelivr.net and `<script>` from cdnjs. ChatGPT allowed
22
22
  more. WebAssembly from inline bytes worked in both; cross-origin isolation
23
23
  (WASM threads) in neither. So the engines are single-threaded and ship
24
- inside the JS module. Rebuild with `node cdn/build.mjs`; publish with
25
- `bash cdn/publish.sh` (bump `version` in package.json first). Licensing:
26
- see `NOTICE.md` (no license for Sagebrush's own code yet; the pyparse parts
24
+ inside the JS module. Rebuild with `node cdn/build.mjs` (after `node scripts/build-engine.mjs`);
25
+ CI checks the engine with `node cdn/build.mjs --check`, and a `v*` release
26
+ rebuilds both modules before publishing. Licensing:
27
+ see `NOTICE.md` (Sagebrush's own code is MIT OR Apache-2.0; the pyparse parts
27
28
  derived from CPython are PSF-2.0).