Serious performance.Friendly design.

Prismio is a statically typed systems programming language that compiles to native machine code through LLVM. Its experimental Adaptive Inference Framework analyzes where values live and explains each decision.

Install Prismio
$curl -fsSL https://prismio.org/install.sh | sh
Compiler
Self-hosted
Backend
LLVM 23 AOT + JIT
Interop
Direct C ABI
main.psm
1struct Point {
2 x: Int,
3 y: Int
4}
5
6fn sumLocal() -> Int {
7 let point = Point { x: 3, y: 4 }
8 return point.x + point.y
9}
$ prismio aif main.psm
Storage plan
Stack1Arena0Unique heap0Scoped heap0Shared heap0Cycle-managed heap0Cross-thread heap0
Your code
ID1Locationmain.psm:7:23TypePointStoragestack
Reason
small value does not escape
✓Finished in 14.2ms
0 warnings·0 errors

Performance claims with receipts.

The maintained suite contains 78 canonical workloads across 6 categories. 63 run equivalent Prismio, C++, and Rust implementations with checksum validation and median timing. The other 15 are published as unsupported capabilities rather than hidden behind benchmark-only substitutes.

vs C++Clang++ -O3
0.86×14.2% faster

Geometric mean of the time ratio across 62 workloads. Lower is faster.

20 faster · 39 parity · 3 slower

vs Rustrustc opt-level 3
0.83×16.9% faster

Geometric mean of the time ratio across 62 workloads. Lower is faster.

24 faster · 34 parity · 4 slower

Implemented
63
Documented gaps
15
  • Each workload is written to express the same algorithm in all three languages and must produce the same checksum. Known differences are listed in the suite’s README. Fixtures are created outside the timed region.
  • Missing standard-library capabilities remain visible in the catalog instead of being replaced with private benchmark implementations.

Featured medians are from the latest checked-in 5-run result set (08 Oct 2026). Results vary by machine and toolchain.

Memory decisions you can inspect, diff, and verify.

The Adaptive Inference Framework is experimental in 0.1. It analyzes escape behavior, ownership, thread transfer, and layout before code generation. It chooses a safe placement and produces evidence for the decision.

Inference is not a black box when its output affects performance.

T0–T4b
Graded storage tiers, not one allocation strategy. What each tier means can still change.
1.2 Draft
The current AIF policy. It is not a stable contract between compilers.
  1. Inspect the storage plan

    See every potential allocation site grouped by stack, compiler-placed arena, owned heap, shared heap, cycle management, and thread transfer.

    $prismio aif main.psm
    Storage plan
    Stack 1
    Arena 0
    Unique heap 0
    Cross-thread heap 0
  2. Ask why a decision was made

    Trace the minimal cause of one placement and see which repairs are valid—and which would contradict facts already proven by the analysis.

    $prismio aif main.psm --why=1
    Allocation 1
    Location main.psm:7:23
    Type Point
    Storage stack
    Reason small value does not escape
  3. Check the emitted program

    Run the real binary against verifier shims that report allocations, releases, leaks, and invalid releases without changing the program’s code generation decisions.

    $prismio build main.psm --verify

Use --manifest to create a diffable record for CI.

High-level expression.Systems-level control.

Prismio combines modern static abstraction with explicit systems boundaries: native code, visible mutability, direct foreign calls, specialized generics, and programmer-directed layout where it matters.

Modern types, specialized at compile time

Structs, recursive enums, pattern matching, closures, overloaded methods, bounded generics, traits, associated types, default methods, impl Trait, and explicit dyn Trait objects are part of the shipped language surface.

Generic functions and types are specialized for the concrete programs that use them. Storing or returning a closure is not supported yet.

Ownership-aware native concurrency

Experimental spawn and join run work on native OS threads. Typed blocking Channel<T> values move messages between workers, while c.share() makes endpoint sharing explicit.

There is no async/await, atomics, or locks in 0.1, and no work-stealing executor.

Layout control for real hot loops

Flat values can live inline inside Vec<T>, and Slice<T> provides bounded views. Experimental soa and aos conversions give explicit structure-of-arrays access through checked DataView<T>.

The compiler specializes the element type before choosing its container representation.

A small, explicit standard surface

Strings, vectors, maps, options, results, iterators, files, processes, ordering, equality, and display live in ordinary std.* modules, apart from a small built-in core such as Vec’s push and indexing. There is no prelude pulling unused facilities into a program.

Import only the behavior the program intends to carry.

One toolchain, from source file to self-hosted project.

Prismio’s compiler, project model, native linkage, diagnostics, and memory analysis form one development loop. The lexer, parser, import resolver, semantic analyzer, AIF engine, and LLVM IR generator are themselves written in Prismio. The runtime and the LLVM bridge are C.

Unified Manifest System

build.ums declares project metadata, executable and test targets, dependencies, native link inputs, and project-defined commands. Prismio finds the nearest manifest and writes profile-specific artifacts under .prismio/build/.

build.ums
manifest
1project {
2 name = "xefy"
3 version = "0.1.0"
4 prismio = "0.1.0"
5 license = "Apache-2.0"
6}
7
8targets {
9 executable("xefy") {
10 entry = "src/main.psm"
11 }
12}
13
14commands {
15 command("verify") {
16 description = "Acceptance gate"
17 test("xefy")
18 }
19}

Self-hosted by design

A release seed builds the first local generation. Later generations compile themselves, and the build checks that the compiler reproduces its own output.

Direct C interoperability

Declare C functions with extern fn. Ownership contracts such as borrow, consume, produce, and alias keep the foreign boundary visible to memory analysis.

Reliable interfaces for editors, CI, and coding agents.

Tools consume structured compiler output instead of scraping terminal prose.

Structured diagnostics

prismio check runs the real frontend without generating code. JSON Lines diagnostics carry P#### codes, severity, files, and UTF-8 source spans. The codes are not stable yet and can change before 1.0.

Native debugging

-g emits DWARF line tables, functions, scopes, locals, and struct layouts for LLDB and GDB. On macOS, the compiler writes a .dSYM beside the binary.

Compiler introspection

dump-ast exposes parsed source structure. AIF manifests provide a separate, diffable account of inferred memory placement for CI and analysis tools.

Editor support

Official Prismio support for IntelliJ IDEA, CLion, and other JetBrains IDEs.

JetBrains IDEs

Official Prismio support for IntelliJ IDEA, CLion, and the other JetBrains IDEs.

Marketplace
Live, v0.1.0
Recommended IDE
CLion
Works in
Every JetBrains IDE

What you get

  • Syntax highlighting for .psm files and build.ums manifests
  • Completion that knows the type in front of the dot, with imports added for you
  • Compiler errors as you type, with a quick fix for a missing import
  • Go to declaration, find usages, and rename
  • Formatting, folding, brace matching, and live templates
  • Run, build, and test from the gutter and the run menu

In your IDE open Settings → Plugins → Marketplace, search for

Prismio

then press Install and restart the IDE if asked.

Developed in the open.

Prismio is developed openly as an independent systems language project, with no proprietary layers. Development is sustained through technical contributions and infrastructure sponsorship.

License
Apache-2.0
Development
In the open on GitHub
CI
Linux, macOS, Windows

A working compiler with a deliberately unfinished ecosystem.

Prismio v0.1 is in active development. It self-hosts, emits native binaries, runs its project workflow, and ships the core language, memory analysis, standard containers, file and process APIs, native tasks, and typed channels.

Available today

  • Self-hosted native compiler
  • Experimental AIF storage plans and runtime verification
  • Generics, traits, closures, enums, and pattern matching
  • Vectors (Vec<T>), maps, slices, files, and processes
  • Typed blocking channels, and experimental native tasks
  • UMS projects, native linking, JSON diagnostics, and DWARF

Not yet supported

  • Networking and async/await
  • Regex and JSON modules
  • User-facing atomics, mutexes, and work-stealing pools
  • Reflection, derive generation, and explicit SIMD types
  • Memory-mapped files and custom container allocators

Build a program. Inspect what the compiler decided.

Install Prismio, run an example, and ask AIF where each value lives and why. The compiler, standard library, benchmark suite, and design evidence are open for inspection.

Frequently asked questions

Short answers about what Prismio is today. The documentation has the full detail.