Λόγος

One language for everything

Logos
# the answer, computed the long way
double := fn (x := i32 ?) -> i32 (
    x + x
),
mut sum := i32 0,
for i in 0..7 (
    sum = sum + i
),
print «answer {double(sum)}»   # answer 42
Rust
// the answer, computed the long way
fn double(x: i32) -> i32 {
    x + x
}

fn main() {
    let mut sum = 0;
    for i in 0..7 {
        sum += i;
    }
    println!("{}", double(sum)); // 42
}

Comparison Matrix

Add a language:
CapabilityLogosC/C++RustZigLean 4UnisonRacketSmalltalkJuliaPythonTS/JSMojo
Memory safety without a GCownership and borrow checking, zero runtime costyesnoyesnonononononononopartial
Compiles to native machine codeAOT or JIT, systems-grade performanceyesyesyesyesyespartialpartialpartialyespartialpartialyes
The speed ceiling of C and Rustno GC or boxing tax, zero-cost abstractionsyesyesyesyesnonononopartialnonoyes
Targets GPUs and custom hardwarekernels written in the language itself, not shader stringsyesyespartialpartialnonononoyespartialnoyes
Runs in the browsercompiles to WebAssembly or runs in a web pagepartialpartialpartialpartialnononopartialnopartialyesno
Multithreaded parallelismuse every core with shared memoryyesyesyesyespartialpartialpartialnoyespartialpartialyes
Async concurrencyasync/await or lightweight tasks for IO-bound workyespartialyespartialpartialyesyespartialyesyesyespartial
Formal proofs in the languagedependent types / theorem proving built inyesnononoyesnonononononono
Gradual verificationprove one part, leave the rest ordinary codeyesnononoyesnonononononono
Effects tracked in typespurity, IO, async as capabilities the compiler checksyesnopartialnoyesyesnononononopartial
Code as dataprograms are a structure the language can readyesnopartialnoyespartialyesyesyesyespartialno
Semantic reflectionthe readable structure carries types and checked factsyespartialnopartialyesnopartialpartialpartialpartialpartialno
Compile-time code executionrun ordinary code at compile time, results baked inyespartialpartialyesyesnoyespartialyesnonoyes
Compiler extensible as a librarynew syntax and optimizations as ordinary librariesyesnopartialnoyesnoyesyespartialnopartialno
Hosts other languages as librariesembed an HDL or shader language without a new compileryesnopartialpartialyesnoyesnopartialnopartialno
Hygienic syntax extensionsyntax extensions can't capture names by accidentyesnopartialnoyesnoyesnoyesnonono
First-class rewrite engineequality saturation shared by compiler and user codeyesnononopartialnopartialpartialnononono
Live systemredefine parts of a running programyesnonononopartialpartialyesyespartialpartialno
Image persistencesave the whole running system, resume it laterpartialnonononononoyespartialnonono
Content-addressed codedefinitions identified by hash of their contentpartialnonononoyesnononononono
Usable todaya stable compiler you can build real software on nownoyesyespartialyesyesyesyesyesyesyespartial
Backward-compatibility promisecode from years ago still builds and runs todaypartialyesyesnopartialpartialyespartialyespartialyesno
Package ecosystempackages, users, production track recordpartialyesyespartialpartialpartialpartialpartialyesyesyesno
Lean 4 compiles through C, but its runtime uses reference counting: fast, yet not a no-GC systems language.
Rust proc macros transform token streams before type checking; the compiler's passes are not extensible.
Smalltalk reflects everything at runtime, but nothing is statically typed or proved.
Racket's #lang makes whole languages ordinary libraries; the optimizer itself is not user-extensible.
Lean's simp and @[csimp] rule sets are first-class directed rewriting; there is no e-graph equality saturation.
Logos source files stay canonical, but hash identity can be enforced as an opt-in wrapper discipline: persisted artifacts already key by content, never by address.
Most of Unison's public production mileage is Unison Cloud, built by the language's own company.
Racket's macro expander and Smalltalk's Refactoring-Browser rewriter are user-drivable tree rewriting; neither is equality saturation, and neither serves as the compiler's optimizer.
Zig has no GC, but its safety comes from runtime checks in safe builds, not compile-time proof.
Zig is pre-1.0 by design; Bun, TigerBeetle, and Ghostty ship on it in production anyway.
Rust reaches GPUs through rust-gpu (SPIR-V) and the tier-2 nvptx64 target; every path is still experimental.
Metatheory.jl gives Julia real e-graph rewriting as a library, but the compiler itself never uses it.
Mojo's 1.0 beta shipped in May 2026 with ownership checking working today; full default memory safety is deferred to Mojo 2.x.
Alloy embeds real C syntax inside Lean files through Lean's extensible grammar.
Smalltalk has no separate compile phase; evaluating code and saving the image plays the comptime role.
C and C++ have no GC, but nothing enforces memory safety either; this row asks for both.
C++26 adds compile-time reflection of types (P2996), not reflection of program structure.
CPython 3.13+ ships an experimental JIT and PyPy is mature; neither approaches systems-grade performance.
Triton and JAX compile Python-syntax kernels for GPUs, as restricted subsets of the language.
Free-threaded CPython became officially supported in Python 3.14, as a separate build; the default build keeps the GIL.
Type-stable Julia kernels reach C speed; the GC and dynamic fallback keep whole programs below the ceiling.
Logos constructors emit resolved handles rather than names, so there is no name for a macro to capture.
The Logic Graph and boundary-materialized task state admit a save/resume library in Logos; source files stay the canonical form.
PackageCompiler sysimages snapshot a loaded Julia session, not live tasks.
C++20 has coroutines but no standard async runtime; std::execution only arrives with C++26.
Zig dropped its old async/await in the compiler rewrite; a new std.Io async design is landing across 0.x releases.
SqueakJS runs real Smalltalk images in the browser on a JavaScript virtual machine.
Pyodide runs CPython on WebAssembly; C-extension packages need prebuilt WASM wheels.
The TypeScript compiler API exposes the type checker to tooling; all types are erased at runtime.
Logos releases are designed immutable from day one (docs and builds freeze per version); the track record starts at the first release.
No Logos packages exist yet; the standard library is deliberately built before release to seed a coherent ecosystem.
WebAssembly runs in every browser, but only JavaScript runs alone: wasm still needs JS glue to load, and all DOM and I/O access goes through JS.