lim/ playground

Learn by changing the code

A small program.
A real compiler.

The Lim compiler runs in this browser. Edit an example, compile it to WebAssembly, and call main. Your source stays on your device.

Ctrl / ⌘ + Enter to run
32 KiB source · 10-second limit · contract audits enabled

Source playground.lim

Result Ready

Choose Compile & run or Check only.

What runs here

Scalar #u64, #i64, #usize, #isize, #bool and (); safe functions and named calls; wrapping arithmetic, comparisons and bit operations; local mutation; branches, blocks and loops; predicate contracts. The normal checker runs before code generation.

Check only also checks self-contained examples with arrays, references, structs and other language features. Runnable output currently excludes memory access, globals, aggregates, matching, saturating arithmetic, floats, narrow integers, labeled/value loops, host I/O and external functions. File imports are unavailable. #usize values retain Lim’s 64-bit scalar semantics here.

This is an experimental teaching backend. The full language reference also describes the broader native compiler.