Commercial compiler authority is live. Public sales open with the first signed required-online release.

Native ahead-of-time language

Reality is magic enough.

Freelang makes world states explicit, treats impossible states as fatal, and gives foreign authority a process boundary.

Freelang is the common name; FreedomLang is the formal name. It compiles through its own frontend and IR to native programs and WebAssembly. There is no VM, JIT, LLVM pipeline or default libc/CRT dependency in generated native programs.

The design

A small trusted surface.

Freelang is designed for a world containing much more machine-written code. Repeated footguns do not become acceptable because a model can generate them quickly.

World states

Conditions are data.

Missing files, timeouts, permission failures and hostile input are named values. Programs must decide what those states mean.

Invariants

Bugs fail loudly.

Bad tags, corrupt heap layouts and impossible control states terminate. Recovery is for modeled conditions, not for violated invariants.

Authority

Sidecars stay outside.

GUI, audio, TLS and other foreign capability live behind bounded, versioned, process-isolated protocols rather than a convenient in-process FFI.

Execution model

Processes, not invisible tasks.

FSABI jobs

Concurrency uses real operating-system processes. Capsules cross a checked same-binary boundary; joins, redirects, failures and ownership remain visible.

The Canonical Guide gives the complete execution model.

One language, several artifacts

The same Freelang operations serve native backends and the reduced-authority WASM target. Browser hosts receive only the operations admitted by the target manifest.

credits: <f/files>;

let report = read["report.txt"] with chaos {
  Missing(_) => "no report"
  Denied(_)  => "permission refused"
};

print report;

Implemented claims

Current compiler facts.

FrontendFreelang source → checked frontend → basic-block IR → target backend.
Native outputMach-O for macOS ARM64/x86-64, direct ELF64 for Linux x86-64 and direct PE32+ for Windows x86-64.
RuntimeFeature-selected helpers, precise-by-frame non-moving mark/sweep GC, typed bytes and explicit UTF-8 boundaries.
ConcurrencyFSABI process jobs with bounded capsule transport and platform-equivalent joins.
BrowserDependency-free WASM modules with precise roots and a finite versioned host import surface.
ProofCross-platform suites, stress collection, differential backends, signed release evidence and application-driven language features.

A complete application

Doom, in Freelang.

The public Doom-format engine is the source-visible application proof. It includes native and browser entries without publishing the compiler, standard library, intrinsic implementation or sidecar source.

Native + WASM

One Freelang session owns simulation and game state across native presenters and the browser worker.

Local WAD

The browser admits a caller-selected WAD locally. It does not upload or redistribute those bytes.

Current proof

Laser blaster, permanent exploration shield, FPV drone, music, scan view and shared combat rendering.

Writing

Read the artifacts.

Two current deep-dives account for the bytes in a real Freelang HTTP server and follow its compilation without an assembler or linker.

Commercial distribution

The Builder's Kit.

The compiler is proprietary. The Builder's Kit supplies signed compiler binaries and the private development materials needed to build Freelang programs. Individual and five-seat Team licenses are one-time purchases for the releases named by the entitlement.