Repository navigation
Releases
v0.2.0
From v0.2.0, code in this repository is licensed FSL-1.1-MIT (Functional Source License 1.1, MIT future licence). Earlier releases remain under MIT. Written works stay CC BY 4.0; third-party parts keep their own licences, as noted in each directory.
Licence
From v0.2.0, code is licensed FSL-1.1-MIT. Earlier releases remain under MIT.
LICENSEis the Functional Source License, Version 1.1, MIT Future License, with licensor Zain Dana Harper. Each release becomes available under MIT two years after it ships.- The three implementation files carry the FSL-1.1-MIT notice, the MIT text it turns into, and the notices for mulberry32, xmur3 and the OKLab matrices, kept word for word.
- Prose stays CC BY 4.0 (
LICENSE-TEXT). docs/LICENSING.mdandVENDORING.mddescribe the change and what it means for each engine that vendors a file.
Fixed
superstack.hppcompiles under Emscripten. Value's constructors are now defined afterstruct Member, and its variant has no default member initializer, so libc++ never builds the variant whileMemberis incomplete. No rule changed: the vectors are the same and pass in all three languages.
CI
- A wasm job builds the C++ runner with em++ (emsdk 6.0.11, pinned), runs the vectors in Node and requires the same check counts as the Python runner.
Pins
The headers changed, so all three hashes changed. Engines re-pin from SHA256SUMS at the v0.2.0 tag.
superstack 0.1.0: contract v0
Contract superstack/0: scene and frame IR, canonical JSON v2, the seed rule, the flick clock, the receipt with identity and tolerance verdicts, OKLab and the risk tokens, sound, and export formats. See SPEC.md.
Pin one of these files by its SHA-256 (VENDORING.md):
ecba401b58adb909f93ee8b1270cdae6f841e8dc484186a828dc936744976845 superstack.py
466f0c5f8fb9cd5c0c0017847cab6ff098a207ad213b144f1b1262d3f28aae3a superstack.mjs
9452bcd58e9076fdc77b082fc15a2761ed48c5202735a695dbb94af9b16185e9 superstack.hpp
Checked in CI on Ubuntu 24.04 and Windows: 383/383 vector checks in each language, equal counts; 59/59 paired mutations caught; the example pixel and sound proof reproduces its recorded hashes; Python 3.11 and Node 20 pass too.
Does not prove: equality across GPU vendors, true-peak loudness (v0 reads sample peak), or that the loudness targets suit listeners.