Neuro, a compiled language for AI that matches Clang -O2 Neuro, an alpha-stage Ahead-of-Time compiled language for AI workloads, now compiles its full general-purpose language surface through an LLVM 20 backend, with planned MLIR-based tensor operations, Enzyme-based automatic differentiation, and GPU acceleration via MLIR dialects. The project's Phase 1 core language is complete, and Phase 2 (Tensors and MLIR) is open, with the language aiming to match Clang -O2 performance for high-performance AI development. An AOT-compiled language for high-performance AI development. Status: Alpha. Phase 1 Core Language is complete: the full general-purpose language surface compiles and runs. Phase 2 Tensors and MLIR is now open. Per-phase status lives in one place: the Quick Roadmap quick-roadmap . Neuro is an Ahead-of-Time AOT compiled language for AI workloads. Python is interpreted and leans on C libraries for anything fast; Neuro compiles to native code through an LLVM 20 backend instead. Planned on top of that backend: - MLIR-based tensor operations, for static shape-verified tensor types - IR-level automatic differentiation via Enzyme - GPU acceleration via MLIR GPU dialects nvgpu, rocdl, Triton A single perceptron with ReLU activation; uses structs, impl blocks, associated functions, instance methods, if-expressions, implicit returns, and println . This file compiles and runs today. /PanzerPeter/Neuro/blob/main/examples/structs/neuron.nr struct Neuron { weight: f64, bias: f64 } impl Neuron { func new weight: f64, bias: f64 - Neuron { Neuron { weight: weight, bias: bias } } // ReLU activation: pass-through if positive, clamp to zero otherwise func activate &self, input: f64 - f64 { val z = input self.weight + self.bias if z 0.0 { z } else { 0.0 } } func is active &self, input: f64 - bool { val z = input self.weight + self.bias z 0.0 } } func main - i32 { val neuron = Neuron::new 0.5, -0.1 val dead = neuron.activate 0.0 // 0.0 0.5 − 0.1 = −0.1 → clamped to 0.0 val dead fires = neuron.is active 0.0 println "input 0.0 - {dead:.2} fires: {dead fires}" val active = neuron.activate 1.0 // 1.0 0.5 − 0.1 = 0.4 → passes through val active fires = neuron.is active 1.0 println "input 1.0 - {active:.2} fires: {active fires}" if dead 0.0 { return 1 } return active 10.0 as i32 // 4 } php input 0.0 - 0.00 fires: false input 1.0 - 0.40 fires: true Every row below is implemented, tested, and usable today. Depth lives elsewhere: the documentation site https://neuro-lang.netlify.app/ and docs/ /PanzerPeter/Neuro/blob/main/docs for reference material, CHANGELOG.md /PanzerPeter/Neuro/blob/main/CHANGELOG.md for the per-release detail, and the Quick Roadmap quick-roadmap for what is still ahead. | Feature | Summary | |---|---| | Types & inference | i8 through u64 , f16 / bf16 / f32 / f64 , bool , char , string ; literal suffixes, digit separators, as casts, type aliases, .is nan | | Functions & control flow | Recursion, forward refs, implicit returns, named arguments with external labels clamp x, min: 0.0 ; if / elif / else , while , loop , range- for , for i, x in xs.enumerate , labelled break / continue , block-as-value; for over any type implementing the prelude's IntoIterator / Iterator protocol, plus .map f / .filter p head adapters | | Generics | Generic functions, structs, and impls plus const generics, where clauses, and turbofish, all fully monomorphized at zero runtime cost | | Traits & dispatch | Required and default methods, associated types type Item / Self::Item and Trait