Native execution
Compile to native code through one shared LLVM JIT/AOT pipeline. Run compiled source during development or emit objects for a linked executable.
Explore native compilationNATIVE. EXPRESSIVE. PURPOSEFUL.
Native code.
Clear intent. Bigger possibilities.
A general-purpose language for games, desktop applications, tools and systems software. Built with C++20 and LLVM, designed to keep your ideas in focus.
VOID · In active development
# Count scores that meet the minimum.
func entry(minimum: i32) -> i32:
var scores = [12, 18, 25]
var qualified = 0
for score in scores:
if score >= minimum:
qualified += 1
return qualified$ voidc run scores.void 18
2SAME IDEAS.
BIGGER WORLDS.
A LANGUAGE FOR YOUR NEXT IDEA
Build games, applications, tools and systems with a language designed to keep everyday code approachable and its behavior explicit.
Compile to native code through one shared LLVM JIT/AOT pipeline. Run compiled source during development or emit objects for a linked executable.
Explore native compilationValue structs, managed objects, concrete generics and structural interfaces give data and behavior clear, predictable boundaries.
Understand values and objectsName arguments, use pure defaults and let typed if-expressions produce values. String-only interpolation keeps text readable without implicit numeric conversion.
Explore pattern matchingPrecise tracing garbage collection manages object memory. Scope-owned with/deinit cleanup releases resources deterministically; GC does not replace that lifetime.
Use async/await for cooperative tasks and task groups for related work. Scope exit joins children; cooperative scheduling is distinct from CPU parallelism.
Use spawn for supported CPU work on bounded native workers. The current subset transfers safe values and restricts shared mutable references.
SMALL PROGRAMS. USEFUL IDEAS.
Complete source, a single integer input and a verified result. These programs use the current synchronous entry adapter; public builds are not available yet.
Generic type inference keeps the chosen stock count an integer. A typed if-expression chooses stock or zero. Both branches are checked; only the selected value executes, without an implicit type conversion.
func choose<t>(use_first: bool, first: t, second: t) -> t:
return if use_first:
first
else:
second
func entry(stock: i32) -> i32:
return choose(stock > 0, stock, 0)A shipment is waiting or ready with an item count. Pattern matching handles both states and names the payload only where it exists.
enum shipment:
waiting
ready(items: i32)
func entry(items: i32) -> i32:
var state = shipment.waiting
if items > 0:
state = shipment.ready(items)
return match state:
shipment.waiting: 0
shipment.ready(var packed): packedFEEDBACK THAT UNDERSTANDS YOUR CODE
Editor feedback comes from the compiler’s understanding of VOID source, so navigation and code intelligence follow the language’s own rules.
Completion, hover information, signature help, definitions and references, and document and workspace symbols are implemented in the compiler-owned language server. Project queries follow the selected entry’s reachable source graph. Nearest-main discovery and nested module paths keep that context explicit; documentation comments and interpolation references stay tied to source.
Guarded rename covers supported functions and bindings. Conservative four-space formatting preserves tokens, comments and imports; it does not promise a full reflow or general code actions.
Explore editor toolingVS Code and Neovim adapters include guards for version-sensitive edits. Vim uses yegappan/lsp for the shared language service, with rename disabled because its edit-safety contract differs.
These integrations have local Linux execution evidence. VSCodium is an integration target with execution still unverified. New Windows/macOS editor combinations and clean-machine distribution also remain unverified.
See current developmentNew capabilities are locally verified; broader platform and fresh interactive-editor validation are ongoing. No public compiler or editor builds are distributed here.
ROOM TO GROW
A useful standard library, a package ecosystem, broader native integration and smoother live development are part of the direction.
Explore the working foundation, current priorities and longer-term goals, with clear boundaries and no promised release dates.
Explore the roadmapYOUR NEXT IDEA STARTS HERE