Squint Runtime Skill
Status: β Production Ready Author: Michiel Borkent (borkdude) Trit: 0 (ERGODIC - neutral transport) Stars: 1.2k+
Overview
Squint is a light-weight ClojureScript dialect that compiles to JavaScript with minimal runtime overhead. It's the "minimal" alternative in borkdude's browser runtime spectrum.
When to Use Squint vs Cherry
| Aspect | Squint | Cherry π | |--------|--------|-----------| | Runtime size | Minimal (~10KB) | Full cljs.core (~100KB) | | Semantics | JS-like | Full CLJS | | Data structures | JS objects/arrays | Persistent immutable | | Keywords | Strings | CLJS keywords | | Interop | Seamless | Requires macros | | JSX | β | β | | Use case | Small scripts, interop | Full applications |
Installation
npm install squint-cljs@latest
Usage
;; example.cljs
(ns example)
;; Functions compile to regular JS functions
(defn greet [name]
(str "Hello, " name "!"))
;; JS interop is seamless
(js/console.log (greet "World"))
;; Object destructuring works naturally
(defn process [{:keys [a b c]}]
(+ a b c))
(process #js {:a 1 :b 2 :c 3}) ; => 6
Compile and Run
# Compile to JS
npx squint compile example.cljs
# Run directly
npx squint run example.cljs
Key Differences from CLJS
-
Data structures are JS native:
{:a 1} ; => {a: 1} in JS (plain object) [1 2 3] ; => [1, 2, 3] in JS (array) -
Keywords become strings:
:foo ; => "foo" in JS -
No persistent data structures (use JS mutation)
-
Faster interop (no conversion needed)
Integration with Gay.jl Colors
(ns squint.gay-colors)
;; SplitMix64 constants
(def GOLDEN 0x9E3779B97F4A7C15)
(def MASK64 0xFFFFFFFFFFFFFFFF)
(defn splitmix64 [state]
(let [s (bit-and (+ state GOLDEN) MASK64)
z (-> s
(bit-xor (unsigned-bit-shift-right s 30))
(* 0xBF58476D1CE4E5B9)
(bit-and MASK64))
z (-> z
(bit-xor (unsigned-bit-shift-right z 27))
(* 0x94D049BB133111EB)
(bit-and MASK64))]
(bit-xor z (unsigned-bit-shift-right z 31))))
(defn color-at [seed idx]
(loop [state seed i idx]
(if (zero? i)
(let [v (splitmix64 state)
l (+ 10 (* 85 (/ (bit-and v 0xFF) 255)))
c (* 100 (/ (bit-and (unsigned-bit-shift-right v 8) 0xFF) 255))
h (* 360 (/ (bit-and (unsigned-bit-shift-right v 16) 0xFFFF) 65535))]
{:L l :C c :H h})
(recur (splitmix64 state) (dec i)))))
Commands
just squint-compile file.cljs # Compile CLJS to JS
just squint-run file.cljs # Run CLJS file
just squint-watch # Watch mode compilation
Skill Name: squint-runtime Type: ClojureScript Compiler Trit: 0 (ERGODIC) Invariant: β Deterministic compilation
Scientific Skill Interleaving
This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
Graph Theory
- networkx [β] via bicomodule
- Universal graph hub
Bibliography References
general: 734 citations in bib.duckdb
Cat# Integration
This skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:
Trit: 0 (ERGODIC)
Home: Prof
Poly Op: β
Kan Role: Adj
Color: #26D826
GF(3) Naturality
The skill participates in triads satisfying:
(-1) + (0) + (+1) β‘ 0 (mod 3)
This ensures compositional coherence in the Cat# equipment structure.