sagebrush-web 0.3.1 → 0.4.0

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/README.md CHANGED
@@ -13,7 +13,7 @@ py.parse("x = [1, 2 3]\n"); // throws CPython's SyntaxError
13
13
 
14
14
  | File | Raw | Gzipped (as served) | What |
15
15
  |---|---|---|---|
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 |
16
+ | `sagebrush-engine.mjs` | 2.0 MB | 1.5 MB | the Rust engines (`engine/web`, wasm32), gzipped and inlined as base64 (decompressed with `DecompressionStream`): the same `wasm/sagebrush-engine.wasm` as the notebook and CLI |
17
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
@@ -12,6 +12,25 @@ Sutherland's smalljac (with Kiran Kedlaya). On 2026-10-02 Andrew Sutherland
12
12
  gave explicit permission for this port to be licensed however Sagebrush
13
13
  chooses; see [engine/ap/PROVENANCE.md](engine/ap/PROVENANCE.md).
14
14
 
15
+ ### PSAGE (used with the author's permission)
16
+
17
+ Parts of PSAGE (https://github.com/williamstein/psage, distributed under the
18
+ GNU GPL, version 3 or later) may be ported to Sagebrush with the copyright
19
+ holder's permission. William Stein is the sole author and copyright holder
20
+ of the files below; on 2026-10-14 he gave permission for them to be ported to
21
+ Sagebrush and licensed under MIT OR Apache-2.0:
22
+
23
+ - every file in `psage/modform/hilbert/sqrt5` (Hilbert modular forms over
24
+ $\mathbb{Q}(\sqrt{5})$; see [engine/hmf/PROVENANCE.md](engine/hmf/PROVENANCE.md));
25
+ - in `psage/modform/rational` ($p$-adic $L$-series of elliptic curves and
26
+ modular symbols): `modular_symbol_map.pyx`/`.pxd`, `newforms.py`,
27
+ `padic_elliptic_lseries_fast.pyx`, `special.py`, `special_fast.pyx`,
28
+ `unfiled.py`.
29
+
30
+ `psage/modform/rational/padic_lseries.py` credits Jennifer Balakrishnan with
31
+ its first version, so it is not covered: it is not ported unless she also
32
+ gives permission. Nothing else in PSAGE is covered.
33
+
15
34
  ### CPython (PSF License Agreement)
16
35
 
17
36
  Copyright (c) 2001 Python Software Foundation. See
@@ -24,10 +43,14 @@ Copyright (c) 2001 Python Software Foundation. See
24
43
  (vendored in `pyparse/vendor/cpython`), with TypeScript ports of parts of
25
44
  CPython's `Parser/` directory, and a Unicode character-name table generated
26
45
  from Python's `unicodedata`.
46
+ - `src/runtime/ops.ts`, `intTrueDiv`: int / int follows the scheme of
47
+ CPython's `long_true_divide` (`Objects/longobject.c`): the shift, the two
48
+ extra bits and the sticky bit, a single round to even at the result's
49
+ precision (subnormals included), then exact scaling.
27
50
 
28
51
  == Rust crates compiled into the engines (28) ==
29
52
 
30
- Sagebrush's own crates: sagebrush-ap, sagebrush-arith, sagebrush-bigint, sagebrush-classgroup, sagebrush-galois, sagebrush-group, sagebrush-interrupt, sagebrush-modsym, sagebrush-mpoly, sagebrush-poly, sagebrush-sym, sagebrush-web. The list includes dependencies on every platform and those used only while compiling (procedural macros), so it covers more than any one build contains.
53
+ Sagebrush's own crates: sagebrush-ap, sagebrush-arith, sagebrush-ball, sagebrush-bigint, sagebrush-classgroup, sagebrush-galois, sagebrush-group, sagebrush-hmf, sagebrush-interrupt, sagebrush-modsym, sagebrush-mpoly, sagebrush-poly, sagebrush-sym, sagebrush-web. The list includes dependencies on every platform and those used only while compiling (procedural macros), so it covers more than any one build contains.
31
54
 
32
55
  cfg-if 1.0.5: MIT OR Apache-2.0
33
56
  crossbeam-deque 0.8.8: MIT OR Apache-2.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sagebrush-web",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Sagebrush engines (Rust -> WebAssembly, single-file ES modules) and CPython's parser in TypeScript, for browsers and chat artifacts",
5
5
  "type": "module",
6
6
  "exports": {