;; W1 pure representative: ordinary Clojure-shaped values/functions only.
(ns examples.w1-pure)
(defn double [n]
(+ n n))
(defn main []
(double 21))
-
source CID
bafkreiaeohkv2zu…IPFS CIDv1 · raw · sha2-256 of hello.kotoba -
source SHA-256
0471d55d668ed5f9…sha-256 of di exact file wey dey show here -
checked KIR SHA-256
92635333e1e0da86…the typed, effect-checked representation wey the compiler admit -
artifact identity SHA-256
cfea3b89cc022a6b…binds source, policy, compiler contract and target ABI
The source CID dey open hello.kotoba. The SHA-256 digests dey identify source bytes, checked KIR, and artifact identity; dem no be IPFS addresses.
SAFE + FAST · BUILT FOR AI-GENERATED SOFTWARE
Safe code. Built for machine speed.
Kotoba na Lisp-shaped language wey dem design for safe, ultra-fast AI-generated software. Inspectable programs, explicit capabilities, and content-addressed artifacts dey connect compiler checks to controlled execution.
Fastest cold build of any toolchain for dis host.
11.75ms
Kotoba source to WebAssembly artifact, process-cold — then e execute, and di answer checked after clock stop.
Process-cold build wall time for milliseconds; shorter mean faster. K=1 source, lanes interleaved for one host, 7 samples each.
All 4 orderings pass perfgate at im unrelaxed default policy — at least 5% and separated from arms own spread — so the ordering still hold even if host dey busy. Bound to dis host, dis source size and dis run: build time no be execution speed, di advantage dey narrow as di source grow, and di released binary get hard correctness ceiling. All five benchmarks, including di ones wey dey go against Kotoba, dem dey below. Measured 2026-08-31 on Apple M4.
When AI dey generate, build, test, and regenerate code continuously, build latency turn infrastructure throughput.
No ambient authority
No implicit filesystem, network, process, clock, model, or secrets.
Authority dey survive compilation
Types, effects, resources, and target support dey admitted before emission.
Only di grant dey bound
Di host and provider dey enforce concrete scope and record di decision.
No classical-only downgrade
New encryption and publication boundaries need ML-KEM or ML-DSA evidence and dem reject stripped PQ material.
AI fit write faster pass humans fit review
Generated code fit still useful but e fit reach file, network, secret, process, model, or payment surface wey di request no mean to expose.
Build broadly, constrain later
General-purpose program dey start with ambient semantics. Sandboxes, IAM, containers, policy, and signing dey add around am to recover di intended boundary.
Grant small, then compile
Effects and capabilities na part of the admitted computation. If the target no fit prove and bind the grant, e no go emit or run the artifact.
Kotoba dey complement runtime and OS isolation; e no dey make those layers unnecessary.
Where Lisp mind and GP 2 graph rewriting meet Rust discipline
Kotoba na small, data-oriented, Clojure-shaped language. E design draw from Lisp code-as-data tradition and GP 2's rule-based graph rewriting, wit static discipline around authority, effects, resources, packages, and artifact identity.
Code as readable data
Immutable values, ordinary functions, explicit data, and composable syntax easy for humans and models to produce and inspect.
Talk wetin fit happen
Effects, capabilities, resources, dependencies, and targets na visible inputs to admission—not surprise wey dem discover after deployment.
Less language, harder boundary
No ambient interop, runtime code loading, unrestricted mutation, guest-defined macros, or unbounded concurrency for admitted component surface.
SAFE + FAST · BUILT FOR AI-GENERATED SOFTWARE.Dis na confinement direction, no be 'unhackable' claim. The compiler, verifier, runtime, providers, policy roots, key custody, and OS isolation still dey inside the trusted computing base.
Security for di whole computation
Di boundary dey carry from intent go execution. Each stage dey narrow or verify authority; no later stage fit invent grant.
Declarative intent
Small, Clojure-shaped surface dey keep programs readable and e no allow ambient escape hatches.
Checked KIR
Types and transitive effects don turn to target-independent, inspectable representation.
Intersect authority
Requested, delegated, local-policy, resource, and target grants fit only narrow.
Address the artifact
Code, dependencies, policy, compiler contract, and target ABI bind di computation identity.
Bind for di host
Di runtime and provider bind only admitted capabilities, enforce finite budgets, and emit receipts.
Content identity no be authority.CID verification, signatures, revocation, host policy, resource checks, and OS isolation still remain separate boundaries.
Lisp eval, without ambient host eval
Kotoba dey evaluate checked code as content-addressed data. Di familiar (eval request) surface dey lower to di typed :code/eval ability; e no dey receive source text, reader form, namespace, or host object.
Wetin be code?
The CID dey select hash-verified checked-KIR definition and e CID-only dependency closure.
E fit run here?
The exact interface, complete effect row, current allowance, fuel, and decreasing eval depth dem bind before execution.
Wetin come back?
Di typed result dey persist as content-addressed evidence. E hash no fit retroactively authorize effect.
Identity, authority, and result evidence na three different facts.
Machine contract: lang/typed-eval.edn. Compiler wire capability: 30. Bounded apply still ordinary closed-module closure application.
Defaults for AI-first computing stack
These na engineering claims wey get qualification join. Default, bounded-ready, partial, and direction na different states; none dey silently promote to universal.
Build faster. Run faster. Keep di boundary.
Kotoba dey publish compiler-startup, developer-loop, native-runtime, and workload-domain measurements wit exact-result checks. Current speed ranks still dey withheld until quiet-host gates pass; security admission no dey remove to win timing.
Storage wey no get language ceiling.
Kotobase dey use content identity, range reads, immutable history, and provider-neutral storage. Physical capacity, tenancy, retention, cost, replication, and execution budgets dey explicit; dis no be infinite-disk claim.
Post-quantum cryptography by default.
Every new Kotoba cryptographic boundary must name ML-KEM or ML-DSA evidence and reject classical-only downgrade. Existing Passkeys, transport, implementations, and key custody remain separately qualified boundaries.
Authentication dey. Authority denied by default.
Passkey identity gats dey for control boundary. Verified identity no get filesystem, network, storage, model, secret, payment, or GPU authority until explicit scoped grant pass local policy and host checks.
Flexible delegation wey fit only narrow.
Requested, delegated, local-policy, resource, and target scopes dey intersect. Delegation fit compose and reduce, but e no fit mint ambient authority or widen issuer grant.
Web3 ready, chain-neutral for root.
Stable Kotoba Principal and Passkey controller na di main ones. CAIP-10 accounts, ERC-1271, and ERC-6492 na explicit linked-account proofs; wallet address no go silently turn storage or execution authority.
Zero-copy where ownership allow; one copy where boundary require am.
Columnar byte views dey keep vector, direct ByteBuffer, and Uint8Array backing. Arrow projection fit keep uncompressed buffers columnar through the authorized Kotobase lake path. Network ingress, decompression, GPU upload, and immutable persistent updates still remain named copy boundaries.
Arrow-shaped data. Explicit CPU SIMD and device-native GPU kernels.
For Apple M4, uncompressed, non-nullable Arrow float32 column keep one WebAssembly linear-memory backing while Num run explicit v128 f32x4 kernel over borrowed values slice with zero Arrow-to-SIMD copies; scalar tail cover remaining rows. For three qualified runs of same 262,147-element scale workload and artifact, that SIMD kernel finish 3.66-3.72x faster than scalar Wasm. Na kernel-and-host result, no be general runtime claim. Same bounded column path still keep one ArrayBuffer through CPU views, cross GPU ownership boundary with one measured WebGPU upload, run for Metal, and return one four-byte scalar. Nullable columns, other Arrow dtypes, unified-memory upload removal, broader kernels, and universal CPU/GPU qualification still dey wait.
AI first. Agent-safe by default.
Kotoba na for programs wey AI agents and bots write or operate. Di stronger di model, di more important explicit effects, finite resources, capability confinement, receipts, and host enforcement dey.
AGI-ready boundaries, no be AGI claim.
Di architecture na to keep authority clear as models dey get more power. Kotoba no dey claim say AGI dey here, say generated programs dey trustworthy, or say confinement fit remove di compiler, runtime, provider, key-custody, and OS trusted computing base.
Machine authority: lang/product-defaults.edn. Unlimited physical storage, zero copies everywhere, universal speed rank, AGI achieved, and unhackable still remain forbidden absolute claims.
Wetin AI-written Kotoba no fit ask for
| Boundary | Why e no dey |
|---|---|
compile, load, load-file, load-string, ns-resolve, read-string, require, resolve, use
|
Components no fit manufacture code or authority from ambient process state. Source strings, reader forms, loaded namespaces, and compiled host objects never get effect-inferred and no be part of definition CID. The admitted `(eval request)` operation na separate: e dey select already checked KIR by CID through :code/eval and e dey re-admitted by the host. |
., .., import, new
|
Arbitrary JVM/JS object and method access dey bypass capability admission. No fit relax by grant dispatch: interop no dey reach guard-component-ability-call, so grant intersection, receipts and revocation no fit see the call. E no get meaning for wasm32 ABI (no such path dey); e dey load-bearing for portable/trusted, where the subset gate na the only boundary (no separate VM sandbox dey claim there). |
alter-var-root, atom, binding, deref, dosync, ref, reset!, set!, swap!, var, volatile!
|
External mutable state na provider-owned and capability/policy mediated; component-local state must use explicit bounded model. Di invariant na AMBIENT, no be mutation itself. Since 2026-09-02 dat reading get two consequences instead of one. Cell wey escape, persist, or cross function na provider-owned and e dey for :state-kit-desugar path (effect row show :state, grant dey required at instantiation, capability handles dey rejected as stored values). Cell wey no do any of dis -- (let [a (atom 0)] (swap! a + 1) @a) -- no need host at all: local-state slice 1 dey elaborate am into ordinary let rebindings, so nobody observe am but di straight-line code wey own am and no cell dey runtime. atom / swap! / reset! / deref na admitted-via-elaboration, and dem refuse am the moment di cell wan escape. ref / dosync / volatile! / binding / var / alter-var-root / set! no get ability model decide and dem still dey rejected fail-closed. |
agent, future, locking, pmap, send, send-off
|
Component scheduling and resources must remain tender-controlled and bounded. Neither definition CIDs nor delegated grants dey meter CPU or scheduling; fuel na per-instance and ambient threads fit escape am. A structured-spawn ability wit sub-budgeted fuel fit design but undecided; no widening path yet. |
defmacro
|
Di safe component surface gats dey statically inspectable before e run. No relaxation: expansion dey run code inside compiler (build time), and definition CID hashes post-desugar typed KIR, so unbounded macros dey run early and make source identity no fit review. defdesugar (bounded pure desugar) still be di admitted alternative. |
catch, throw, try
|
Ambient throw/try/catch na untracked non-local control flow: e dey exit scopes wey inferred effect row no mention and e dey skip unwind obligations (dataspace facet retraction no get checked unwind yet). Di ban na for di ambient form. Since 2026-09-02 typed abort ability dey admit di heads by elaboration: di effect dey appear for inferred row as :abort and di function dey lower to [:result T E], so di ambient form no dey after elaboration. Slice 2 (2026-09-02) make :abort propagate through calls and A-normalized aborting operand or test into let binding; neither one dey widen di invariant, because propagated abort dey caller's row and A-normalized one na same elaboration for different position. Where unwind precondition fit matter, abort still dey refused -- for CALL now and for throw. |
Dem be named security constraints for lang/surface-status.edn, no be features wey dey miss for roadmap.
Proof, with di boundary attach
Kotoba dey separate implementation evidence from market traction and dey keep residual risk near every safety claim.
33 cores
Internal production dogfooding
Di wider Kotoba stack dey run 33 inference cores inside. Dis one prove say di team dey operate im own stack; e no be customer traction, paid adoption, or revenue.
8 claims
Boundaries dey machine-readable
Safety claims dey name their trusted computing base, negative evidence, and residual risk instead of just dey talk 'unhackable' slogan.
deny by default
No grant, no host effect
Empty policy no grant filesystem, network, process, clock, model, or secret authority. Providers must validate concrete resource scope.
Internal production use na dogfooding evidence only. E no mean external customers, paid pilots, or revenue.
Five benchmarks. Five different questions.
Compiler startup dey ask how fast one small source fit turn artifact. Build scaling dey ask wetin happen to dat number when di source no be small again—and if di artifact still dey respond. Developer loop separate resolution, checking, builds, and first result. Native runtime dey ask how fast code wey don build before dey run. Workload-domain suite dey check how strings, collections, allocation, I/O, concurrency, and small real app dey behave. Di results keep all five questions—and their evidence status—separate.
4 toolchains, 21 runs each
Kotoba 40.998 ms · Rust 126.422 ms · C 146.324 ms · JVM 961.248 ms median.
21 rotating process-cold samples · load1 30.79 → 39.79 · required ≤ 1 · 2026-08-29 · Apple M4
6 workloads × 5 comparators
Amu native dey exercise against Rust, Clang / C11, Zig, Go c-shared, Swift through one common native call boundary.
30/30 comparator/workload pairs · exact answers verified
19 of 30 pairs
Amu native win 19 of the 30 comparator/workload pairs by at least 5%, separate from arms own spread. The bounded fastest claim need every pair, so e still dey unqualified — the count na the informative half.
At least 2 of those pairs no fit win at all. For narrow-arithmetic, amu, Apple clang -O3 and rustc -O3 dey compile the kernel to the same 61-instruction sequence — clang and rustc byte-identical, amu only different for register numbers. 5% margin over identical code no dey, so the bounded claim no fit happen, e no just unmet.
Median of 5 host-qualified runs; di score range 19–20 and 19 of di 30 pairs qualify for every one. One noisy sample fit disqualify plenty pairs at once, so one-run score no precise for one pair.
busy-CPU 0.090 → 0.069 → 0.076 · required ≤ 0.10 · 2026-09-07
11 toolchain paths
Dependency resolution, checking, clean and no-change builds, and process-cold first result dem record separately.
7 samples per measured stage · load1 20.84 → 24.49 · required ≤ 1
8 source sizes
Di same program from one function to 2048, build by every toolchain for host then run. Released binary get lowest cold-start cost here and e correct ceiling above 128 functions.
artifacts wey dem check after clock stop · load1 2.73 → 2.73 · required ≤ 1 · 2026-08-31
6 domains × 6 runtime paths
Strings, collections, allocation, file I/O, four-worker concurrency, and request-admission policy application kernel dey correctness checked.
7 samples for both process-cold and amortized lanes · load1 13.87 → 12.38 · rank withheld
Build time as source dey bigger
Di benchmarks wey dey above dey build program wey small well well to fit one screen, wey dey measure how quick toolchain start. E no talk much about the number wey developer really dey wait on, na di slope. Dis fifth benchmark dey generate di same program at increasing sizes — K independent four-operation functions and one entry point wey calls all of dem — and build am through every toolchain for di host, inside rotating order.
E go run wetin each toolchain produce, after clock don stop. Dat check no be decoration. Di fastest way to emit artifact na to emit broken one, so lane wey stop to work for otherwise go post im best numbers exactly where e stop to work.
Both axes na logarithmic: di sources span three orders of magnitude and so di times. Line end for dot where di run end, for cross where dat lane emit artifact wey no be di program, and for bar where di toolchain refuse to build. Dem three no be di same event and di two failures below no be di same failure.
| Toolchain / target | K=1 | K=32 | K=128 | K=129 | K=512 | K=1023 | K=1024 | K=2048 |
|---|---|---|---|---|---|---|---|---|
| Kotoba · Released CLI · WebAssembly | 11.753 ms | 35.84 ms | 111.538 ms | invalid artifact | invalid artifact | invalid artifact | build failed | build failed |
| Kotoba / Amu · WebAssembly | 733.255 ms | 825.418 ms | 1123.04 ms | 1123.847 ms | 3380.63 ms | 9242.463 ms | build failed | build failed |
| Kotoba / Amu · Native aarch64-macos | 962.198 ms | 1509.84 ms | 2973.249 ms | 3000.243 ms | 10601.87 ms | 23725.327 ms | build failed | build failed |
| Rust / rustc · WebAssembly | 38.992 ms | 45.622 ms | 66.066 ms | 65.56 ms | 151.592 ms | 277.88 ms | 280.867 ms | 595.812 ms |
| Rust / rustc · Native host | 56.023 ms | 62.849 ms | 82.107 ms | 82.277 ms | 159.519 ms | 261.586 ms | 260.934 ms | 469.277 ms |
| C / Clang · WebAssembly | no toolchain | no toolchain | no toolchain | no toolchain | no toolchain | no toolchain | no toolchain | no toolchain |
| C / Clang · Native host | 29.078 ms | 30.442 ms | 35.765 ms | 36.581 ms | 60.594 ms | 104.992 ms | 101.728 ms | 223.232 ms |
| JVM / javac · JVM class | 171.53 ms | 197.998 ms | 237.582 ms | 238.611 ms | 316.795 ms | 378.252 ms | 377.591 ms | 454.632 ms |
Measured 2026-08-31 for judahnoMac-mini.local (Apple M4). K na number of generated functions; Kotoba source run from 9 to 14338 lines. Targets, ABIs, optimisation levels and runtime contracts different for lanes, so dis dey ask about developer feedback latency, no be equivalent work. Host-load gate fail (load1 2.73–2.73, required ≤ 1), so na observations of dis run no be portable figures. Because lanes dey interleaved, ordering dey qualified separately.
Which orderings go survive the noise test
Ratio no be ranking. perfgate no gree any ordering wey gap dey inside di two arms own spread, no matter how big di ratio be, e no go accept arm wey get too few samples or too much noise. E dey run here with im own default policy, unrelaxed — a threshold wey dem loosen to make dis run through na benchmark wey dey measure im own thresholds. Because the lanes dem dey interleaved for one host, gap dey wey survive dis test go survive host wey busy.
| Size | Compared against | Kotoba faster? | Gap vs combined spread | Why no, if no |
|---|---|---|---|---|
| K=1 | C / Clang · Native host | yes, qualified | 17.1 ms vs 1.0 ms | — |
| K=1 | JVM / javac · JVM class | yes, qualified | 160.8 ms vs 5.4 ms | — |
| K=1 | Rust / rustc · Native host | yes, qualified | 44.2 ms vs 0.6 ms | — |
| K=1 | Rust / rustc · WebAssembly | yes, qualified | 27.1 ms vs 0.5 ms | — |
| K=32 | C / Clang · Native host | no | 5.3 ms vs 1.0 ms | improvement-below-threshold |
| K=32 | JVM / javac · JVM class | yes, qualified | 161.9 ms vs 1.2 ms | — |
| K=32 | Rust / rustc · Native host | yes, qualified | 26.7 ms vs 0.7 ms | — |
| K=32 | Rust / rustc · WebAssembly | yes, qualified | 9.8 ms vs 0.6 ms | — |
| K=128 | C / Clang · Native host | no | 75.8 ms vs 1.2 ms | improvement-below-threshold |
| K=128 | JVM / javac · JVM class | yes, qualified | 126.2 ms vs 2.2 ms | — |
| K=128 | Rust / rustc · Native host | no | 29.3 ms vs 1.4 ms | improvement-below-threshold |
| K=128 | Rust / rustc · WebAssembly | no | 45.8 ms vs 1.1 ms | improvement-below-threshold |
improvement-below-threshold mean say the Kotoba lane no faster at that size at all. The advantage dey real and qualified at cold start, but e don disappear against C by K=32 and against Rust by K=128. That crossover na the result, so e dey show instead of summarise away.
Two failures wey no be di same failure
Three Kotoba lanes stop to work for dis run, and dem dey publish dem as one row for wrong. One na defect. Di other two dem declare bounds dey enforced exactly as dem specify, and dem dey report dem as defects e go mean say dem dey measure the bounds instead of the compiler.
| Observation | Reading |
|---|---|
| Released kotoba CLI emit module wey no go compile pass 128 functions | One defect, and the reason to validate inside harness. For K=129 one call must carry function index 128, the first value wey need two LEB128 bytes, but the emitter write only one. The bytes talk say e no be missing encoder but unused one: local.set 128 dey write 80 01, and call 128 one instruction later dey write 80. The count of truncated operands na exactly K minus 128. The current compiler no get am — Amu build K=129 correct, and the fix don dey for its emitter's default branch since before this release tag. |
| Every Kotoba lane dey trap for K=512 when dem build am with default settings | No be defect. One Kotoba module get declared call-fuel budget and compiler default na 512 calls, wey dis workload cross at K=512 where entry point call 512 leaves. Di harness declare 1,048,576 units explicitly and record am. C, Rust and Java no get equivalent bound to raise. |
| Amu no gree di module at all if e get pass 1,024 functions | No be defect, and e be di opposite of di first row. max-functions na declared admission limit, so di compiler go stop wit kotoba.error/subset-reject and e go talk wetin e refuse, instead of to emit sometin wey no go load. Loud ceiling and silent one na different kain result, and na only harness wey dey run di artifact fit sabi di difference. Measured 2026-09-07: dis na di whole program ceiling, no be one module — max-project-functions still 1,024 and e dey checked against di linked project, so no module arrangement fit compile 2,048-function program today. |
Wetin dis one dey establish
| Question | Answer from this run |
|---|---|
| How fast Kotoba cold build small module? | The released CLI build K=1 inside 11.753 ms process-cold, artifact execute and answer check — na the fastest first result for any lane wey dem measure here. |
| How big module fit di released binary build? | Up to 128 functions. If e pass dat e no slow, e just wrong, and dis harness go report am as failed lane instead of fast one. |
| Di build time still dey competitive as di source dey grow? | Through K=128 the released CLI dem measure am against Rust and C for the table wey dey above. After that point, the only Kotoba compiler wey still dey emit correct module na Amu, wey dey run for nbb instead of released binary, and e dey roughly one order of magnitude slower for every size wey dem measure — so for big sizes, build speed no be Kotoba strength now, and dis page no go talk say e be otherwise. |
| How big source don build end to end? | K=1023 through Amu — 7163 lines of Kotoba, artifact wey dem run and di answer dem check. Na one function short of di declared 1,024 ceiling, and di next size up dem no gree accept am instead of to build am wrong. |
| Di emitted code fast? | Out of scope here — dis one dey measure building, no be running. Di native runtime suite wey dey above dey ask dat question. |
Bottom line: For di smallest size, di released binary faster pass every comparator here by margin wey survive di noise test, and e get hard correctness ceiling at 128 functions. Compiler without dat ceiling dey roughly one order of magnitude slower for every size measured. Both facts come from di same run, and di harness wey find dem na public, so di run fit get disagreement.
How long each native workload really take
Di grid below dey report di margin between two arms. Na di number perfgate rules on, but percentage alone no talk whether workload run for five milliseconds or five hundred, and e dey hide di difference between contested pair and irrelevant one. These panels be the medians wey those margins dem compute from. Amu native na the coloured lane for every panel — including panels wey e no be first. Each panel na scaled to im own slowest arm, because di question wey panel answer na who be faster for dat workload.
Narrow arithmetic
Wide register pressure
Deep spill pressure
Call preservation
Branch + call control flow
Loop call back edge
Median milliseconds over 5 host-qualified runs; shorter mean faster. Every arm return same independently checked answer, and candidate median na one value per workload — suite dey rotate each engine pair in ABBA/BAAB order, so same Amu artifact dey timed once per workload then compared against each arm in turn. Unlike other four benchmarks for dis page, dis one quiet-host gate PASSED (qualified-host-load), so na figures for dis host no be observations only. Bounded fastest claim still need all 30 pairs, na wetin grid below dey for.
Every runtime pair, whether win or loss
Di bounded claim na all-or-nothing, so one unqualified pair fit make am false. If dem publish only dat verdict e go hide which pairs dem dey contest, so di whole grid dey here. One cell na di mean improvement of Amu native over dat comparator for that workload; positive mean Amu faster, and check mark dey for pairs wey clear perfgate — at least 5% and separate from arms' own spread.
| Workload | Rust | Clang / C11 | Zig | Go c-shared | Swift |
|---|---|---|---|---|---|
| Narrow arithmetic | +0.4% | -0.6% | +20.1% | +84.7% | -0.6% |
| Wide register pressure | +6.5% | +10.9% | +16.9% | +86.0% | +87.1% |
| Deep spill pressure | +4.2% | +9.3% | +5.1% | +82.2% | +92.6% |
| Call preservation | -1.0% | -0.3% | +42.9% | +85.2% | +29.6% |
| Branch + call control flow | -2.6% | -7.1% | +43.8% | +85.2% | +25.1% |
| Loop call back edge | +0.8% | -0.1% | +32.4% | +17.2% | +24.8% |
Each cell na bar wey grow from centre line: right side Amu native faster, left side slower. Di two directions dey scaled separately — wins run to +93% and losses only to −7%, so one shared scale go flatten every contested pair into same invisible sliver. Sign dey carried by side of line and by signed number, so no reading of dis grid depend on telling two colours apart.
19 of 30 pairs qualify (median of 5; 19 for every run) · candidate 42f092ea5b61 · Apple M4, 10 logical CPUs, 16 GiB
Optimization delivery after published run
Di dated benchmark wey dey above no fit change. New implementation slices dey list separate until di same-artifact suite run again and pass qualification gates.
| Surface | Delivered | Evidence boundary |
|---|---|---|
| Native vectors / allocation | Bounded non-escaping vector literals dem escape-proof and scalar-replaced for x86-64 and AArch64. | 211 backend tests / 2,442 assertions; escaping vectors still keep di checked host ABI. No new ranked timing yet. |
| String SIMD | POSIX checked equality dey use explicit 16-byte NEON or SSE2 comparison after handle and canonical UTF-8 validation. | Optimized assembly and both native ISA semantic vectors dem verify. Windows still pinned separately; latency rank dey wait. |
| Async I/O capability | Root-confined eventual read/write/list/exists/delete dey use CompletableFuture for JVM and fs.promises for Node. | JVM and Node real-filesystem tests pass. Di public standalone Wasm benchmark still no get admitted host binding, so e I/O cell still N/A. |
| Structured concurrency | A bounded 32-child fail-fast scope dey join, cancel siblings, and prevent child lifetime escape as canonical Kotoba state. | 996 parity assertions across .kotoba authority and CLJC load path. Na structured lifetime semantics, no be OS-thread throughput result. |
| Kotoba CLI | kotoba test/build dey use di new compiler pin; kotoba compile dey emit sealed x86-64 and AArch64 KEXE directly. | Public CLI lifecycle and AArch64 vector artifact verified. Native --run still dey refused until dem wire measured loader receipt. |
Compiler startup, four toolchains
Process-cold wall time for one small source, for milliseconds; shorter mean faster. 21 rotating samples per toolchain for Apple M4. Host-load gate FAILED for dis run, so na observations of one machine, no be ranking.
| Toolchain | Output | Median | p95 | Relative elapsed time |
|---|---|---|---|---|
| Kotoba | WebAssembly | 40.998 ms | 240.415 ms | 1× Kotoba |
| Rust / rustc | WebAssembly | 126.422 ms | 770.495 ms | 3.084× Kotoba |
| C / Clang | WebAssembly | 146.324 ms | 498.618 ms | 3.569× Kotoba |
| JVM / javac | JVM class | 961.248 ms | 2223.49 ms | 23.446× Kotoba |
KOTOBA 0.7.3 · RUSTC 1.97.1 · Homebrew clang version 22.1.7 · javac 24.0.2. Kotoba, Rust, and C dey emit Wasm; javac dey emit class file. Different targets and compiler work make dis na startup observation, no be universal ranking. Di recorded host-load gate fail, so di table no be qualified speed rank.
| Toolchain / target | Resolve | Check | Clean build | No-change build | Start + execute | Clean build + first result |
|---|---|---|---|---|---|---|
| Kotoba · WebAssembly | N/A | 231.75 ms | 62.906 ms | 42.332 ms | 57.253 ms | 142.644 ms |
| Rust / Cargo · arm64 macOS native | 138.018 ms | 71.208 ms | 896.478 ms | 67.764 ms | 371.522 ms | 1299.171 ms |
| C / Clang · arm64 macOS native | N/A | 90.446 ms | 121.838 ms | 77.905 ms | 327.741 ms | 453.685 ms |
| Zig · WebAssembly | N/A | 387.713 ms | 648.665 ms | 464.795 ms | 67.523 ms | 728.007 ms |
| TinyGo · arm64 macOS native | N/A | N/A | 1059.624 ms | 395.305 ms | 203.169 ms | 1269.918 ms |
| Go · arm64 macOS native | 43.553 ms | 6979.823 ms | 3499.277 ms | 150.902 ms | 247.051 ms | 3755.431 ms |
| Swift / SwiftPM · arm64 macOS native | 1017.252 ms | 427.372 ms | 3695.557 ms | 1259.829 ms | 431.84 ms | 4016.271 ms |
| JVM / javac · JVM class | N/A | N/A | 805.822 ms | 739.957 ms | 76.252 ms | 882.074 ms |
| AssemblyScript · WebAssembly | N/A | 1074.197 ms | 895.187 ms | 1090.658 ms | 64.658 ms | 954.878 ms |
| .NET IL · .NET IL | 2309.472 ms | N/A | 4750.407 ms | 2141.103 ms | 79.248 ms | 4851.792 ms |
| .NET Native AOT · arm64 macOS Native AOT | 2236.962 ms | N/A | 11995.489 ms | 2707.907 ms | 375.7 ms | 12391.54 ms |
Every emitted artifact produce 42 for fresh process. Targets and runtime contracts different; N/A no be zero. Host-load gate fail, so these na reproducible observations no be cross-language speed ranking.
Six domains, side by side
Each panel dey scale to im own slowest lane, because di question wey panel answers na who faster for dat domain, no be how di domains compare to each other. Kotoba lane na di coloured one for every panel — including di panels where e last. Im standalone Wasm artifact dey run through Node host dey pay dat startup for every process-cold sample, while Rust, C and Go run as native binaries; where target no get ambient filesystem or thread If contract no dey at all, lane no dey instead of zero.
String
Collection
Allocation
I/O
Concurrency
Real application
Process-cold medians for milliseconds; shorter mean faster. The host-load gate failed for this run, so these panels na observations no be ranking, and the amortized lane below dey tell another story again.
| Runtime path | String | Collection | Allocation | File I/O | Concurrency | Real app |
|---|---|---|---|---|---|---|
| Kotoba / Wasm + typed JS host | 30.539 ms | 29.98 ms | 29.567 ms | N/A | N/A | 29.652 ms |
| Rust | 1.907 ms | 1.92 ms | 1.943 ms | 2.686 ms | 3.328 ms | 2.047 ms |
| C / Clang | 1.463 ms | 1.357 ms | 1.353 ms | 2.539 ms | 2.916 ms | 1.294 ms |
| Go | 1.974 ms | 1.852 ms | 1.962 ms | 6.577 ms | 3.377 ms | 1.964 ms |
| JVM / Java | 27.819 ms | 31.42 ms | 26.447 ms | 38.685 ms | 34.828 ms | 26.411 ms |
| JavaScript / Node.js | 31.628 ms | 31.818 ms | 31.055 ms | 94.124 ms | 55.105 ms | 29.534 ms |
Every sample return di exact reference checksum. Kotoba dey use im emitted Wasm and declared typed ABI; im standalone target no get ambient filesystem or thread contract, so dem cells na reason N/A. Di recorded host-load gate fail, so medians na observations, no be ranking.
| Runtime path | String | Collection | Allocation | File I/O | Concurrency | Real app |
|---|---|---|---|---|---|---|
| Kotoba / Wasm + typed JS host | 0.351 ms | 0.039 ms | 0.066 ms | N/A | N/A | 0.048 ms |
| Rust | 0.028 ms | 0.002 ms | 0.003 ms | 1.217 ms | 1.456 ms | 0.002 ms |
| C / Clang | 0.02 ms | 0.001 ms | 0.003 ms | 1.61 ms | 1.558 ms | 0.001 ms |
| Go | 0.023 ms | 0.002 ms | 0.004 ms | 5.071 ms | 1.582 ms | 0.002 ms |
| JVM / Java | 0.433 ms | 0.051 ms | 0.064 ms | 17.175 ms | 5.589 ms | 0.043 ms |
| JavaScript / Node.js | 0.336 ms | 0.033 ms | 0.067 ms | 68.507 ms | 7.771 ms | 0.032 ms |
Each bigger in-process batch dey divided by declared workload multiplier. Dis amortize startup but no fully remove process, VM, or Wasm instantiation cost, so e no dey labeled perfectly warmed steady-state result. Kotoba pure inc/dec map chains dey fused into reduce without intermediate vectors; callbacks outside dat proven subset dey keep eager materialization.
| Question | Compared implementations | Current conclusion |
|---|---|---|
| Tiny Wasm compile + execute | Kotoba, Rust, C, and JVM toolchains | Four process-cold medians wey dem publish for top; only Kotoba/Rust/C share the Wasm target, and no general build-speed rank dey claim |
| Tiny-project developer loop | Kotoba, Rust, C, Zig, TinyGo, Go, Swift, JVM, AssemblyScript, .NET IL, and .NET Native AOT | Seven samples per available stage dey published; target differences and failed host-load gate no allow universal ranking |
| Native steady-state execution | Amu native vs Rust, Clang / C11, Zig, Go c-shared, Swift | All 30 semantic comparison cells complete; speed ranking withheld because quiet-host gate fail |
| Strings, collections, allocation, I/O, concurrency, and real app | Kotoba, Rust, C, Go, JVM, and JavaScript runtime paths | Exact checksums and process-cold plus amortized samples dey published; standalone Kotoba I/O and threads no dey, but pure request-admission application dey measured; di failed load gate dey hold ranking |
Wetin di native suite cover
Each implementation dey return independently checked known answer. The suite dey rotate every engine pair for ABBA/BAAB order and e dey measure after loading, mapping, and symbol lookup.
| Workload | Wetin e dey stress | Evidence status |
|---|---|---|
| Narrow arithmetic | Exact result verified; timing no qualified | |
| Wide register pressure | Exact result verified; timing no qualified | |
| Deep spill pressure | Exact result verified; timing no qualified | |
| Call preservation | Exact result verified; timing no qualified | |
| Branch + call control flow | Exact result verified; timing no qualified | |
| Loop call back edge | Exact result verified; timing no qualified |
Where each benchmark dey live
Every number wey dey above come from public harness and committed report, so run fit repeat and claim fit no agree. Di in-repo paths for dis table dey checked against working tree when dis page generate: na harness wey if e move fail, e go fail di build instead of to ship dead link.
Di gate wey every ordering for dis page dey pass through na kotoba-lang/perfgate, run with im own unrelaxed default policy. Threshold loosen to allow run through go be benchmark wey dey measure im own thresholds.
Bottom line: Di artifacts, exact results and samples dey real for all five benchmarks. Three of dem — compiler startup, developer loop and workload domains — fail their quiet-host gate, so dem no rank anything and dem publish as observations. Di native runtime suite pass its gate and win 19 of 30 pairs, but no reach every-pair claim wey e need. Build scaling qualify its cold-start ordering against every comparator on host and find correctness ceiling for same run. No universal speed rank dey claim anywhere for dis page, and none of these runs get license for am.
Claims with their boundaries attached
These claims na from lang/safety-claims.edn. Each one keep im trusted computing base and residual risk visible, because safety slogan without boundary na just marketing.
Admitted components no fit handle runtime/native memory and component memory operations gats dey bounded or trap.
Trusted computing base
bounded reader · frontend admission · artifact verifier · Wasm/native runtime
Residual risk
- runtime-engine vulnerabilities still dey inside di TCB
- native loaders need second OS isolation boundary
Every transitive component effect dey declared and admitted before emission, including effects wey Kotoba-written providers dey use.
Trusted computing base
effect inference · capability catalog · frontend call graph
Residual risk
- kotoba and compiler grammar/effect parity gats dey compared steady steady
Ungrant capability no dey or e no bind, e no fit reach provider or native handler.
Trusted computing base
policy intersection · compiler import emission · tender import binding · host guard
Residual risk
- provider and native implementations must independently validate resource scope
- production effective grants must forbid wildcard scope
The same admitted source, target, policy and lock go produce the same observable pure result and artifact bytes.
Trusted computing base
canonical reader · deterministic lowering · pinned toolchain
Residual risk
- host effects na deterministic only where their capability contract talk am so
Source, admission, execution, memory and output dey use explicit finite bounds.
Trusted computing base
admission limits · fuel meter · runtime quota · supervisor timeout
Residual risk
- platform supervisors never get equal production isolation evidence yet
Release admission dey bind artifact identity, trusted signer, validity and reproducible evidence.
Trusted computing base
signature verifier · trusted signer configuration · clock · revocation set
Residual risk
- key custody and external revocation distribution still dey operational TCB
One shared portable component get equal acceptance, result and effect trace across qualified backends.
Trusted computing base
shared conformance manifest · backend adapters · comparison runner
Residual risk
- compiler-only features no dey portable and dem must reject by portable profiles
Component import reach im provider or native handler only with concrete post-intersection resource scope and e emit receipt.
Trusted computing base
capability intersection · host guard · provider handler · receipt sink
Residual risk
- provider-specific path, redirect, symlink and tenant checks need Q5 kits
Qualification Q1, as of 2026-07-18.
Release binding
Language profile and implementation release separate until signed envelope bind dem.
Profile 6
package contract 1
v0.7.0
profile binding: verified
RELEASED
:docs/release-bound-profile
Kotoba v0.7.0 for darwin-arm64 na di public implementation wey bind to language profile 6 and package contract 1. E signed envelope dey verify di source tree, artifact digest, and 536-test / 8,580-assertion conformance result. Other platforms still no bind.
Read di generated release evidenceStart for sixty seconds
Install and self-check
brew tap kotoba-lang/kotoba
brew trust kotoba-lang/kotoba
brew install kotoba
kotoba selfhost check --json
Accept valid response wey get empty problem list.
First program
(defn main []
(+ 40 2))
Dis program no request host imports; di emitted module no get imports.
Learn, try, then go deeper
One connected path from first program to language contracts, libraries, evidence, and deployment surfaces.
Docs by intent
Start with installation, learn the admitted language, or inspect the normative semantics and conformance data.
Open documentation mapOne source, one answer
The example wey dey below na the exact source wey dem compile into the browser demo—not be JavaScript reimplementation.
Read di sampleRun for dis page
Load same-origin, digest-bound WebAssembly artifact and call its exported Kotoba main function.
Open PlayLibraries and contracts
Browse bounded core names, foundational libraries, package rules, and dia current maturity boundary.
Browse librariesSmall Kotoba program, wey dey run for real
Amu dey compile dis pure Kotoba source to wasm32-browser profile. Di checked-in artifact no get imports and e return 42.
;; W1 pure representative: ordinary Clojure-shaped values/functions only.
(ns examples.w1-pure)
(defn double [n]
(+ n n))
(defn main []
(double 21))
Highlighting authority: kotoba-lang/grammar → kotoba.grammar.highlight/tokenize → build-time HTML. Editor scope contract: source.kotoba. Browser highlighter dependency: none. Inspect dependencies
Compile locally: kotoba compile double-21.kotoba --target wasm32-browser --output double-21.wasm
Run di verified artifact
Di browser dey fetch 344 bytes, e verify SHA-256, e reject every import, e instantiate di module, then e call main().
Expected result:
42
Ready. No code don run yet.
Dis one dey run precompiled, immutable example. Editing any source for browser no be compiler surface wey dem don ship yet.
Interactive demos: solar-helix (guest-driven WebGPU render) · kami-survivors (na .kotoba game) · gpu-clear (WebGPU smoke). Hosted on di wasm-webcomponent GitHub Pages surface; availability depend on per-browser WebGPU/WebAssembly support.
Libraries, without hiding di package boundary
Kotoba libraries na content-addressed graphs. Names and GitHub repositories dey help people find dem; definition and signed release CIDs talk exactly wetin dem be.
Generated symbol reference
Search di names wey di current bounded standard-library contract admit.
Browse core symbolsData, effects, I/O, tooling
Start with coll, spec, json, text, wit, async, time, fs, http, test, fmt, lint, and LSP contracts.
Browse the library mapContent-addressed dependencies
Inspect exact dependency CIDs, identity layers, GitHub provenance, and di current publication boundary.
Open the library catalog and publish flowBrowse whole organisation by tag
Dem get 2,215 public repositories for di kotoba-lang organisation. Every tag below na GitHub topic of di same name, so di site filter and di org topics na one vocabulary instead of two wey dey drift. Pick one to open catalogue wey don filter already.
Browse and filter all 2,215 repositories
Repository no be published package. Exactly 1 library dey published through content-addressed registry; di rest for dis list na discovery. Repository maturity labels no mean 1.0 API stability, broad adoption, or production SLOs, and 255 repositories no match any domain rule and dem show am untagged instead of to give di nearest label.
Search di checked reference
Search commands, standard-library names, diagnostics, and release status. Index dey generated from machine authorities and e dey for dis page.
Try: compile, option-some, docs/link-missing
Release binding
Kotoba v0.7.0 for darwin-arm64 na di public implementation wey bind to language profile 6 and package contract 1. E signed envelope dey verify di source tree, artifact digest, and 536-test / 8,580-assertion conformance result. Other platforms still no bind.
Open reference
kotoba id
Create chain-neutral Kotoba principal enrollment plan wey passkey dey control. Smart accounts na explicit CAIP-10 links; no chain or provider na identity root.
Open reference
kotoba compile
Compile Kotoba-family source to target artifact. Web .kotoba dey use checked KIR and restricted kotoba-script backend; .cljs still be ClojureScript.
Open reference
kotoba check
Validate Kotoba source, contracts, or package metadata without running am. Compiler adapter: frontend admit + --profile pure-product (T9.2).
Open reference
kotoba graph
Query and transact di language graph store (kgraph) with Datomic-shaped operations.
Open reference
kotoba git
Expose Kotoba repository operations as data, no be shell-specific behavior.
Open reference
kotoba build
Build Kotoba project into its checked target artifact. Na the direct project lifecycle command; rad build still be compatibility spelling.
Open reference
kotoba test
Check and run the admitted tests for Kotoba project. Na direct project lifecycle command dis be; rad test still be compatibility spelling.
Open reference
kotoba deploy
Plan and apply package desired-state to local receipt or murakumo fleet reside target.
Open reference
kotoba library
Inspect and publish content-addressed library namespace through di existing Kotoba codebase and IPNS publication path.
Open reference
kotoba hinshitsu
Run software-quality checks (evidence, gates, coverage, visual regression) as data.
Open reference:command/unknown
The command wey you request no dey for public CLI contract. Use command wey lang/cli.edn generate.
Open reference:contract/invalid
Di CLI contract fail structural validation. Check di structured :errors collection; no dispatch di command.
Open reference:version/unsupported
Di requested language or package contract version no dey known. Choose version wey dey under :supported for lang/version-policy.edn.
Open reference:version/removed
Di requested contract version don remove. Make you migrate to di active version before you compile or run am.
Open reference:version/deprecation-expired
Di compatibility window for deprecated version don finish. Make you apply di migration wey di version policy talk.
Open reference:release/invalid-semver
Release identifier no be strict SemVer. Use MAJOR.MINOR.PATCH with optional valid pre-release or build suffix.
Open reference:docs/no-release-bound-profile
No published implementation evidence wey bind di active language profile. Make di public default remain blocked until signed release envelope bind di implementation and profile.
Open reference:docs/link-missing
A checked document dey point to missing local target. Restore the target or update the authority map and regenerate the reference.
Open reference:docs/profile-version-drift
Grammar, surface, and elaboration authorities no agree on di language profile. Make authorities agree before you publish documentation.
Open reference:docs/generated-drift
Committed generated reference no match machine authority. Run nbb scripts/generate-docs-reference.cljs and commit result.
Open reference:docs/validation-result-invalid
User-validation observation no complete or e overclaim external result. Record participant class, task, outcome, evidence, and observed time.
Open referenceNo query dey leave the browser.
Roadmap: widen only after the boundary hold
One versioned contract
Keep grammar, effects, checked KIR, target adapters, qualification, and first-run documentation aligned.
Close provider gaps
Expand typed request/result conformance, adversarial testing, receipts, revocation, and reproducible release operations.
Earn wider deployment
Make production use big after provider, host-isolation, rollback, and soak evidence—plus grow inspectable declarative libraries.
Read di maintained roadmap and non-goals
Roadmap items na direction, no be promises of shipped capability or delivery dates.
Build di community for public
Kotoba never claim big community yet. Today di honest public meeting points na di source repositories, issue trackers, release history, and security channel.
Language issues
Ask design question, propose documentation improvement, or report reproducible language-contract problem.
Open language issuesCompiler and CLI issues
Follow implementation work, releases, target support, and runtime integration for the installable implementation.
Open implementation issuesReport privately
Use di published security policy for vulnerabilities; no make you talk exploitable details for public issue.
Read security policyFund di public boundary, but no buy authority
Di Kotoba GitHub Sponsors profile dey prepare. Di project page don ready now and e go show payment action only after GitHub approve di organization profile.
GitHub Sponsors
No sponsorship payment fit happen through kotoba-lang.org while di GitHub profile no dey live.
Support no be authority
Sponsorship no dey buy feature, roadmap priority, support SLA, private access, or security exception.
Sponsorship status: PREPARING. Checked 2026-09-01.
Safe code. Trusted state. Controlled execution.
Evidence before slogans
Read short engineering notes wey connect product claims to measurements, authority files, and remaining gates.
Read di Kotoba blogControlled execution
Kotoba Cloud dey connect identity and deploy control to the execution environment. Discovery dey live; hosted apply no dey offered yet. Compute still dey provided by separately governed services.
Open Kotoba CloudTrusted graph state
Kotobase na di content-addressed graph database for AI state and knowledge: explicit relationships, identifiable history, and scoped access.
Open KotobaseCompute and inference plane
Fleet compute and model-serving infrastructure. Availability and route qualification still service-specific.
Open MurakumoAgent work plane
Continue agent work across workspaces, goals, evidence, tools, approvals, and governed effects.
Open ItonamiDem services get separate authority, availability, and qualification boundaries. Their connection no mean say every Kotoba capability dey available as general hosted service.
Read di contract or run di implementation
kotoba-lang/kotoba-lang
Grammar, semantics, capability contracts, safety claims, CLI contract, documentation, and conformance fixtures.
Read di language authoritykotoba-lang/kotoba
CLI, host integrations, providers, runtime adapters, integration tests, and target-specific qualification evidence.
Open di implementationLearn, build, or evaluate
Separate paths for first use, language reference, backend implementation, security boundaries, and maturity evidence.
Choose documentation pathLanguage profile 6; public-default release status: RELEASED.
Di primary portable platform na WebAssembly Components with WASI 0.3.0. Di elaboration pipeline get 11 named, fail-closed stages.
