SliP is a programmable symbolic calculator: a small expression language that starts as a math-friendly web calculator and grows into a Lisp-influenced playground for variables, functions, lists, matrices, JSON, and browser graphics.
Use it when you want a calculator that grows into a tiny language
where 2πr, cosπ, and quoted programs can share bindings within one run.
Visit the calculator and tutorial:
- https://slip.828.tokyo
- https://slip.828.tokyo/Tutorial.html
- https://slip.828.tokyo/SPEC.html — language reference
| Doc | Audience |
|---|---|
| Web/Tutorial.html | First-time users |
| Web/SPEC.html / docs/SPEC.md | Language specification |
| CHANGELOG.md | What changed, and what it breaks |
| docs/KNOWN_ISSUES.md | Current limits and reserved surface |
| docs/MACOS_APP.md | The Mac app: what it does, and how to sign it |
| conformance/ | Language-level test suite, in SliP |
| docs/phase0-audit.md | Maintenance audit log |
slip program.slip # run it
slip -e '( 2 π )' # evaluate one expression
slip -p program.slip # print the value of every toplevel form
slip -i # transcript: echo each form and its valueErrors are reported as file:line: message, with exit status 1.
| Path | Status |
|---|---|
| C++/ | Canonical interpreter used by tests and WASM |
| WASM/ | Web build that powers Web/ |
| Web/ | Calculator, tutorial, samples, and graphics demos |
| SwiftUI-CPP/ | The macOS app, shipped as SliP.app — see docs/MACOS_APP.md |
| Android/ | The Android app — see Android/README.md |
| Windows/ | The Windows app, cross-compiled with mingw — see Windows/README.md |
| ESP32/ | Serial REPL firmware for an ESP32 dev board — see ESP32/README.md |
| RP2350/ | Serial REPL firmware for an RP2350 board — see RP2350/README.md |
| Bridge/ | Objective-C++ and Swift sides of the embedding bridge |
| Swift/ | The original Swift interpreter. Nothing builds it; kept for history |
| JS/ | Original JavaScript engine; source of the npm package's 1.x releases. Does not track this spec |
| JP/ | Shared utility submodule (Satachito/JP) used by the C++ core and other projects |
C++/ defines the language, and everything shipped runs it: the CLI, the web
build, the npm package, the Mac, Android and Windows apps, and the ESP32 and
RP2350 firmware. Swift/ and JS/ are earlier interpreters of an older
dialect, kept as history.
sh C++Test/ci.sh # C++ tests
sh conformance/run.sh # language conformance suite
sh WASM/build.sh # Web/SliP.js (requires emscripten)
node WASM/smoke.mjs # after WASM build
sh npm/build.sh # stage the npm package, after the WASM buildGitHub Actions runs the C++ tests and the WASM smoke test in .github/workflows/test.yml.
SliP is released under the MIT License.