Language fronts

Parser fronts route into one Core IR → MIR → native_emit/JIT pipeline. Run in languages or in languages --json for the live matrix. A jit capability means the front emits function bodies the in-process JIT can run for the scalar subset (ints, bools, direct calls, if/while). Declaration-only fronts stay off that list. Host language runtimes (JVM, CPython, libc) are still not bundled.

LanguageParserCapabilitiesFrontRuntime / Compilation Status
ininjit, parse, lower, typecheck, boundaryin_lang_parseself-hosted Core IR to textual SIL and in-memory JIT
icoreicorejit, parse, lower, typecheck, boundarycompiler::icoreself-hosted Core IR to textual SIL and in-memory JIT
Swiftswiftjit, parse, lower, typecheckcompiler::tree_frontCore IR, textual SIL, Boundary IR; Swift runtime is not bundled
Rustrustjit, parse, lower, typecheck, boundarycompiler::rust_frontin-memory JIT executes the scalar subset; rustc is validation only
Gogojit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL
Vvjit, parse, lower, typecheck, boundarycompiler::tree_frontCore IR and textual SIL
Ccjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; libc/runtime ABI is not bundled
C++cppjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; standard library/runtime ABI is not bundled
Objective-Cobjcparse, lowercompiler::tree_frontCore IR declarations only; Objective-C runtime is not bundled
Objective-C++objc++jit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; Objective-C++ runtime/ABI is not bundled
Javajavajit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; JVM runtime is not bundled
Groovygroovyjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; JVM runtime is not bundled
JavaScriptjavascriptjit, parse, lower, typecheck, boundarycompiler::tree_frontCore IR, Boundary IR, textual SIL, and in-memory JIT; JS runtime is not bundled
TypeScripttypescriptjit, parse, lower, typecheck, boundarycompiler::tree_frontCore IR, Boundary IR, textual SIL, and in-memory JIT; TS checker/runtime is not bundled
Kotlinkotlinjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; JVM runtime is not bundled
Scalascalajit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; JVM runtime is not bundled
C#csharpjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; CLR runtime is not bundled
F#fsharpparse, lowercompiler::tree_frontCore IR declarations only; CLR runtime is not bundled
VB.NETvbparse, lower, typecheck, boundarycompiler::vb_boundaryCore IR and textual SIL; CLR runtime is not bundled
Pythonpythonjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; Python runtime is not bundled
Rubyrubyjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; Ruby runtime is not bundled
PHPphpjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; PHP runtime is not bundled
Perlperljit, parse, lowercompiler::tree_frontCore IR and textual SIL; Perl runtime is not bundled
Zigzigjit, parse, lower, typecheck, boundarycompiler::tree_frontCore IR and textual SIL; Zig runtime/ABI is not bundled
Dartdartjit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; Dart runtime is not bundled
Lualuajit, parse, lower, typecheckcompiler::tree_frontin-memory JIT for free functions and int returns; function t:m() methods are skipped
Clojureclojureparse, lower, typecheck, boundarycompiler::clojure_boundaryCore IR and textual SIL; JVM runtime is not bundled
Elixirelixirparse, lowercompiler::tree_frontCore IR declarations only; BEAM runtime is not bundled
Erlangerlangparse, lowercompiler::tree_frontCore IR declarations only; BEAM runtime is not bundled
Haskellhaskellparse, lowercompiler::tree_frontCore IR declarations only; Haskell runtime is not bundled
Nimnimparse, lower, typecheck, boundarycompiler::nim_boundaryCore IR and textual SIL; Nim runtime is not bundled
OCamlocamljit, parse, lower, typecheckcompiler::tree_frontCore IR and textual SIL; OCaml runtime is not bundled
Juliajuliaparse, lowercompiler::tree_frontCore IR declarations only; Julia runtime is not bundled
Rrparse, lowercompiler::tree_frontCore IR declarations only; R runtime is not bundled
Ddparse, lower, typecheck, boundarycompiler::d_boundaryCore IR and textual SIL; D runtime is not bundled
Crystalcrystalparse, lower, typecheck, boundarycompiler::crystal_boundaryCore IR and textual SIL; Crystal runtime is not bundled
Odinodinparse, lower, typecheck, boundarycompiler::odin_boundaryCore IR and textual SIL; Odin runtime is not bundled
Harehareparse, lower, typecheck, boundarycompiler::hare_boundaryCore IR and textual SIL; Hare runtime is not bundled
HolyCholycjit, parse, lowercompiler::tree_front (tree-sitter-holyc)Core IR and textual SIL; TempleOS runtime is not bundled

Resolution

For details on how language/file extensions map to specific parsers, using the IN_PARSER environment variable or shebang resolution directives (e.g. #!in parser=...), see Parser Surface.

Runtime boundary

Owned path is JIT / native_emit on AArch64 and x86_64. External toolchains (rustc, swiftc, …) are optional parity checks in in test --external-parity, not the default execution engine.

What we took from Valen

Valen is a single-language LLVM compiler. Two of its ideas fit this pipeline; the LLVM backend does not.

[project]
name = "staged"
entry = "answer"

[[sources]]
path = "answer.c"
parser = "c"