Audience: Runtime implementers, piece authors, tooling authors
KidLisp Decree '26 defines the platform-independent, stable ABI guarantee for KidLisp runtimes in 2026.
This decree is normative for:
Year-based versions: '26, '27, '28, …
KidLisp Decree '26 is a frozen baseline once ratified. Future decrees may extend behavior, but MUST publish compatibility notes against '26.
Required compatibility terms:
compatible-with-'26 — runtime preserves all required '26 behaviors.native-extensions — runtime adds non-decree APIs without changing decree-required behavior.deviation — runtime intentionally diverges and MUST declare the divergence.A runtime MAY claim one or more conformance levels:
amp, mic, etc.) range and update semanticsMinimum public claim format:
KidLisp Decree '26: CoreKidLisp Decree '26: Core + RenderKidLisp Decree '26: Core + Render + AudioA conforming runtime MUST expose and invoke:
boot(api)act(api)sim(api)paint(api)leave()beat(api) (optional if no beat clock exists; MUST be declared)Required ordering guarantee per frame:
actbeat (if supported and triggered)simpaintRuntimes MAY batch or skip frames for performance, but MUST preserve ordering of calls they do execute.
At minimum, api MUST provide:
screen.width, screen.heightclock and/or deterministic frame counter semanticsIf a function is unsupported, runtime MUST:
KidLisp Decree '26 render model:
layer0)Required semantics:
painting(w,h,cb) creates an isolated drawable buffer.page(buffer) switches active render target.paste(buffer,x,y[,scale]) composites source onto current target.Hosts MAY optimize compositor internals (GPU, SIMD, tiled), but output MUST satisfy decree conformance tolerances.
Required timing globals:
frame — monotonic non-decreasingclock — wall-time access (or declared fallback behavior)Audio level (Audio conformance):
amp MUST be defined and numeric.0..10.A conforming runtime SHOULD expose a capability object equivalent to:
Core/Render/Audio)compositeLayers, mask, blur, zoom, embed)Suggested shape:
system.kidlisp.decree.version = "26"
system.kidlisp.decree.levels = ["Core", "Render"]
system.kidlisp.decree.features = { ... }
Within a decree year:
Across decree years:
KDL-26 (planned) SHOULD include:
A runtime claiming decree conformance SHOULD publish its KDL-26 result set.
| URL | Content |
|---|---|
learn.kidlisp.com/decree | Latest stable decree (this page) |
learn.kidlisp.com/decree/26 | Frozen KidLisp Decree '26 |
learn.kidlisp.com/decree/changelog | Year-over-year compatibility notes |
scroll, zoom, blur, contrast, etc.)This decree defines named reference profiles for practical conformance targets.
RBP-26 ($roz Baseline Profile)RBP-26 is the minimal feature profile required to run $roz with decree-consistent behavior.
Required heads/tokens:
Required symbols:
w, h, w/2, h/2Required color/token support:
Semantics requirements:
? MUST evaluate as runtime choice across provided options.1s... and 2s... MUST behave as repeating timed forms.0.5s MUST behave as a timed one-shot form (unless host explicitly declares a deviation).spin, zoom, contrast, scroll) MUST apply in a stable per-frame order.w/2 and h/2 MUST resolve from current frame dimensions.Conformance claim string:
KidLisp Decree '26: RBP-26