Language Surface
Generics, interfaces, enums, ownership, async, and project mode
Start from the capabilities Arden already ships instead of guessing from the repo layout.
Language Surface
Start from the capabilities Arden already ships instead of guessing from the repo layout.
Workflow
Use the docs as a product map: install it, run it, then move into project mode and tooling.
Arden is a native systems programming language built around three priorities:
It targets LLVM for native code generation and ships with its own formatter, linter, test runner, benchmark command, bindgen command, and project CLI.
This page is the best starting point if you want to understand what Arden already is, what the repository actually ships today, and where to go next.
Arden already ships more than "parse a file and hope for the best".
Current repository surface:
| Area | What is already there | Start here |
|---|---|---|
| Language core | static types, functions, lambdas, control flow, modules | Syntax, Types, Functions |
| Structured types | classes, interfaces, enums, visibility, inheritance | Classes, Interfaces, Enums |
| Reusable typing | generics, generic bounds, generic interfaces, nested generic types | Generics, ../examples/09_generics.arden |
| Safety model | ownership, borrowing, checked mutation, static validation | Ownership, Memory Management |
| Concurrency | async, await, Task<T> |
Async, ../examples/14_async.arden |
| Workflow | new, check, run, fmt, lint, fix, test, bench, profile, bindgen, lsp |
Quick Start, Compiler CLI |
| Project mode | arden.toml, multi-file builds, project-aware tooling, cache state |
Projects, Projects Summary |
| Runtime surface | stdlib intrinsics such as io, math, time, args, collections, system |
Stdlib Overview |
If you are evaluating the language, these are the capabilities you should assume exist today:
implements and extendsTask<T>Option<T>, Result<T, E>, List<T>, Map<K, V>, and Set<T>The fastest proof is usually to read one prose page and one runnable example side by side:
../examples/09_generics.arden../examples/10_ownership.arden../examples/14_async.arden../examples/starter_project/README.mdArden is not aiming to be minimal for its own sake, and it is not trying to hide systems-level constraints behind a giant runtime.
The current direction is:
In practice that means Arden sits closer to "systems language with batteries included" than to "minimal compiler experiment". The repo does not just compile a file; it includes project mode, formatter/linter flows, test discovery, benchmarking commands, and example sweeps.
The repository is organized so different readers can enter at different depths:
basics/ and features/getting_started/ and compiler/cli.mdstdlib/../examples/README.mdcompiler/architecture.mdArden is statically typed. Variables, function signatures, generics, and collection element types are checked ahead of code generation.
Relevant docs:
Arden includes ownership and borrowing checks to catch invalid moves, aliasing mistakes, and mutation hazards before runtime.
Relevant docs:
Single-file workflows are supported, but Arden also has a real multi-file project mode based on arden.toml.
Project mode includes:
build, run, check, test, fmt, and infoRelevant docs:
Arden intentionally keeps common tasks under one CLI instead of expecting separate ad-hoc tools for each stage. In current repository form, that includes:
arden newarden check, arden build, and arden runarden fmt, arden lint, and arden fixarden testarden bench and arden profilearden bindgenArden lowers to LLVM IR and then produces native artifacts using Clang plus a platform-specific linker policy.
Relevant docs:
The current compiler surface includes:
Option<T> and Result<T, E>Task<T>Math, Str, Time, System, Args, and file I/O helpers@Test, @Before, and @IgnoreUse this as the short index when you want to jump directly to a capability instead of reading the docs in order.
For a broad but runnable tour of these features, the examples directory is often faster than prose:
../examples/17_comprehensive.arden../examples/24_test_attributes.arden../examples/35_visibility_enforcement.arden../examples/showcase_project/README.mdArden intentionally bundles common workflows into one CLI:
new, build, run, compile, check, info, lint, fix, fmt,
lex, parse, lsp, test, bindgen, bench, profile
Reference:
If you are new to the language:
If you want real code quickly:
The source docs in this repository are meant to describe the current compiler, examples, and CLI behavior. If you notice a mismatch between docs and reality, the intended fix is to update the documentation or example corpus rather than leave contradictory material around.