nicolasmd87 / aether
A compiled actor-based programming language with type inference, designed for concurrent systems.
View on GitHubAI Architecture Analysis
This repository is indexed by RepoMind. By analyzing nicolasmd87/aether in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewAether Programming Language [ ]() A compiled actor-based programming language with type inference, designed for concurrent systems. Aether compiles to C for native performance and seamless C interoperability. Overview Aether is a compiled language that brings actor-based concurrency to systems programming. The compiler generates readable C code, providing portability and interoperability with existing C libraries. **Core Features:** • Actor-based concurrency with automatic multi-core scheduling • Type inference with optional annotations • Compiles to readable C for portability and C library interop • Lock-free message passing with adaptive optimizations Runtime Features The Aether runtime implements a native actor system with optimized message passing: Concurrency Model • **Multi-core partitioned scheduler** with locality-aware actor placement • **Locality-aware spawning** — actors placed on the caller's core for efficient parent-child messaging • **Message-driven migration** — communicating actors automatically converge onto the same core • **Work-stealing fallback** for idle core balancing • **Lock-free SPSC queues** for same-core messaging • **Cross-core messaging** with lock-free mailboxes Memory Management • **Manual by default** — use for cleanup. All allocations cleaned up explicitly. • **Arena allocators** for actor lifetimes • **Memory pools** with thread-local allocation • **Actor pooling** reducing allocation overhead • **Zero-copy message delivery** in single-actor main-thread mode (caller stack passed directly) Message Optimization • **Sender-side batching** for reduced overhead • **Message coalescing** for higher throughput • **Adaptive batching** dynamically adjusts batch sizes • **Direct send** for same-core actors bypasses queues Advanced Features • **SIMD batch processing** with AVX2 support • **NUMA-aware allocation** for multi-socket systems • **CPU feature detection** for runtime optimization selection • **Performance profiling** with per-core cycle counting • **Message tracing** for debugging Benchmarks Aether includes a comprehensive cross-language benchmark suite comparing actor implementations across 11 languages. Run to evaluate performance on your system. See benchmarks/cross-language/ for methodology and implementation details. Quick Start Install **Linux / macOS — one-line install:** Installs to and adds to your PATH. Restart your terminal or run , , or . **Windows — download and run:** • Download from Releases • Extract to any folder (e.g. ) • Add to your PATH • **Restart your terminal** (so PATH takes effect) • Run GCC is downloaded automatically the first time you run a program (~80 MB, one-time) — no MSYS2 or manual toolchain setup required. **All platforms — manage versions with :** Your First Program Or run a single file directly: Editor Setup (Optional) Install syntax highlighting for a better coding experience: **VS Code / Cursor:** This provides: • Syntax highlighting with TextMate grammar • Custom "Aether Erlang" dark theme • file icons Development Build (without installing) If you prefer to build without installing: The Command is the single entry point for everything — like or : In a project directory (with ), and compile as the program entry point. You can also pass as the directory: or . **Using Make (alternative):** **Windows:** Use the release binary — no MSYS2 needed. To build from source, use MSYS2 MinGW 64-bit shell; runs the full suite (compiler, ae, stdlib, REPL, C tests, .ae tests, examples) with no skips. Project Structure Language Example Runtime Configuration When embedding the Aether runtime in a C application, configure optimizations at startup: Available flags: • - Detect CPU features and enable optimizations • - Use lock-free SPSC mailboxes • - AVX2 vectorization for batch operations • - MWAIT-based idle (x86 only) • - Print runtime configuration Optimization Tiers The runtime employs a tiered optimization strategy: **TIER 1 - Always Enabled:** • Actor pooling (reduces allocation overhead) • Direct send for same-core actors (bypasses queues) • Adaptive batching (adjusts batch size dynamically) • Message coalescing (combines small messages) • Thread-local message pools **TIER 2 - Auto-Detected:** • SIMD batch processing (requires AVX2/NEON) • MWAIT idle (requires x86 MONITOR/MWAIT) • CPU core pinning (OS-dependent) **TIER 3 - Opt-In:** • Lock-free mailbox (better under contention) • Message deduplication (prevents duplicate processing) Documentation • Getting Started Guide - Installation and first steps • Language Tutorial - Learn Aether syntax and concepts • Language Reference - Complete language specification • C Interoperability - Using C libraries and the keyword • Architecture Overview - Runtime and compiler design • Memory Management - defer-first manual model, arena allocators • Runtime Optimizations - Performance techniques • Cross-Language Benchmarks - Comparative performance analysis • Docker Setup - Container development environment Development Running Tests Running Benchmarks The benchmark suite compares Aether against C, C++, Go, Rust, Java, Zig, Erlang, Elixir, Pony, and Scala using baseline actor implementations. Results are system-dependent. Status Aether is under active development. The compiler, runtime, and standard library are functional and tested. **What works today:** • Full compiler pipeline with Rust-style diagnostics (file, line, column, source context, caret, hints) • Multi-core actor runtime with locality-aware placement, message-driven migration, and work-stealing fallback • Main-thread actor mode — single-actor programs bypass the scheduler entirely (zero-overhead path) • Batch fan-out send for main-to-many patterns • Lock-free message passing with adaptive optimizations • Module system with pure Aether modules, export visibility, and namespace-qualified calls • Standard library (collections, networking, JSON, file I/O, math, OS/shell) • Interactive…