Skip to content

Releases: thyn-ai/mojo-kernels

v0.2.3

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 28 Sep 13:27
1f3b925

0.2.3 (2026-09-28)

Fixed

  • kernels: build croniter, jsonpath, jsonschema and sacrebleu for the x86-64-v3 baseline (#80) (58f1019)

v0.2.2

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 28 Sep 13:12
190a314

0.2.2 (2026-09-28)

Fixed

  • ci: release the croniter, jsonpath, jsonschema and sacrebleu wheels again (#77) (4f7597c)
  • release: pin every TypeScript core's platform packages at pack time, not in the source tree (#79) (b735e59)

v0.2.1

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 28 Sep 05:47
0ea0564

0.2.1 (2026-09-28)

Fixed

v0.2.0

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 28 Sep 01:48
cea77e5

0.2.0 (2026-09-28)

Added

  • ci: regenerate TS package-locks on the release PR after the version bump (#73) (bc617b8)

Fixed

  • ci: prefix the npm publish tarball path with ./ (#72) (eec4b08)

v0.1.7

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 28 Sep 00:54
5b24cf0

0.1.7 (2026-09-28)

Fixed

  • ci: repair the npm version gate and give publish-pypi a token fallback (#70) (86c4a3e)

v0.1.6

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 28 Sep 00:33
ae2955f

0.1.6 (2026-09-28)

Fixed

  • packaging: publish TS kernel packages under the existing @thyn-ai npm scope (#66) (a032912)

v0.1.5

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 26 Sep 10:56
b4e0473

0.1.5 (2026-09-26)

Fixed

  • bm25: score BM25Plus queries in reference order when the floor decomposition can overflow (#63) (225640a)

v0.1.4

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 22 Sep 14:54
cfdaae9

0.1.4 (2026-09-21)

Fixed

  • fuzz: classify ill-conditioned raw-parameter cases as a documented known issue in the bm25 harness (#59) (b3cd900)

Performance

  • bm25: ABI v3 native vocab map + string-token batch path — the eviction-bound Xeon M cell (#62) (dd86c8e)
  • bm25: flat batch packing + cheapest FFI marshal — Xeon arena warm margin 1.0-1.4x → 1.5-2.1x (#61) (238f666)

v0.1.3

Choose a tag to compare

@algenta-sdk-sync algenta-sdk-sync released this 21 Sep 15:59
80a243f

0.1.3 (2026-09-21)

Fixed

  • build: compile the shipped kernels for a fixed CPU baseline (x86-64-v3, apple-m1) (#55) (ea13998)

Arena wheels v0.1.1-dev — bm25-mojo 0.1.4.dev0 (Xeon arena fix)

Choose a tag to compare

@0xamlab 0xamlab released this 21 Sep 18:52

Dev drop carrying one wheel: bm25_mojo-0.1.4.dev0-py3-none-manylinux_2_35_x86_64.whl for the Algenta Speed Arena. Everything else stays pinned to arena-wheels-v0.1.0.

What it fixes. On the Space's Xeon cell (and on some CI x86_64 machines) the 0.1.2 arena wheel's BM25 warm margin vs bm25s sat at ~1.0-1.37x and dipped below 1.0 (held cell: 5,000 docs x 10 queries x 10 terms). Layer autopsy showed the kernel walk was ~2-4us of a ~38us batch call; the rest was wrapper-side numpy/ctypes dispatch. 0.1.4.dev0 packs the query batch in one flat pass (2 numpy calls instead of ~15) and marshals FFI pointers as c_void_p ints.

Measured (linux x86_64, arena-exact protocol, median of 5 warm, pinned query set; CI run 35640240182): arena S 1.98x, M 1.57x (was 1.24x), L 1.63x; full 12-cell sweep 1.27x-2.01x; second sample (EPYC docker --cpus=2): S 2.27x, M 1.90x, L 1.65x. Parity gate: max|diff| vs rank_bm25 1.8e-15 (gate 1e-8). Cold: ~0.36ms vs bm25s' ~167ms numba re-JIT per index.

Provenance. Built by .github/workflows/bench-bm25s-arena.yml (run 35640240182) from branch chore/bm25-xeon-arena @ 1607ea1 (pixi-locked Mojo 1.1.0, --target-cpu x86-64-v3, auditwheel-repaired). sha256: d1d6aa4113b703480d837e7e3d875e2a6584d2ae164f35ca8a41b3c4528da65a


v0.1.4.dev1 (2026-09-21, round 2 — live-Space M-cell fix). Live verification of dev0 on the Space's Xeon 8375C showed S/L winning but the M cell (5,000 docs × 10q × 10t) at the flip point (3/5 direct wins, median 1.136×). Root cause: in the arena's interleave, the per-call walk over the ~2 MB Python vocab dict pays the eviction tax (staged in context: flat map+pack 7.4 µs tight → 36–48 µs). dev1 adds ABI v3: a native FNV-1a vocabulary map attached once at index build + a string-token batch entry point, so the query path never touches the Python dict (pack stage in arena context: 48.5 → 23.9 µs). Exactness: only exact str tokens take the native path (guards refuse non-str/non-ASCII/embedded-NUL/over-wide and fall back to the id path with identical results); rows bit-identical to the id path; differential suite 84/84; gate vs rank_bm25 1.8e-15 ≤ 1e-8. sha256 67376d13144864dbff6159714982d36101c425248755c20f1af52465a0d0a4e2 (CI artifact, run 35652896763, branch chore/bm25-xeon-arena-r2).