astra-lang.org

About

From a compiler assignment
to a language with a thesis.

Astra started as a university compiler-construction project in October 2025. It kept going because a question wouldn't let go: if most new code will be written by machines, what should the language they write look like?

CreatorMajid Nisar

Astra and Mifa are created and maintained by Majid Nisar — the compiler, the runtime, the package manager, the test suite, and this site. The project's detailed write-up, design notes, and development history live on his site:

ThesisWhy build a language in 2026?

Because the economics of code changed. When agents generate most of the code, the bottleneck moves from writing to verifying. Dynamic languages push verification to runtime — the most expensive possible place. Astra's bet is that the language itself should be the verification layer:

  • Diagnostics that are a stable machine interface (JSON, error codes, suggestions), not prose on stderr.
  • A type system strict enough to reject whole classes of generated mistakes before execution.
  • Native compilation, so a verified program is also a fast program.
  • Eventually, agent concepts in the grammar itselftool, agent, prompt, memory — so multi-agent systems typecheck like ordinary code.

PrinciplesHow the project is run

Ground truth over hype

A feature is "working" only when a test compiles it, runs the binary, and asserts the output. The public progress page and the in-repo tracker are the same document in two forms.

Decisions are written down

Five architecture bets (memory model, typing, backend, AI primitives, Python interop) were debated, ratified, and locked with rationale and accepted costs. Amendments require a documented process, not a mood.

Claims are measured

Performance and verification numbers come from a scripted, output-verified validation harness in the repository. It publishes with the source at v1.0-beta; until then the compiled-binary side is reproducible from any release.

TimelineMilestones so far

WhenWhat
Oct 2025v0.1 — university project: lexer, parser, first AST
Nov 2025v0.5 — native compilation, Docker CI, first pre-built binaries
Jun 2026v0.6 — honest alpha reset: JSON diagnostics, verify mode, AI-first thesis adopted
Jul 2026v0.7 (released 2026-07-06) — source spans, structs/Result/closures native, REPL, dyn, ARC scaffolding, rich diagnostics, Mifa lockfile + registry protocol + publish/auth + --json
Jul 2026v0.8.0-alpha (tagged 2026-07-07) — true LLVM-IR default backend (--emit-ir, --target cross-compile, --legacy-c fallback), async/await (sync lowering), ignored-test burn-down complete (10 → 0), end-to-end regression suite; 285 tests green
Jul 2026v0.9.0-alpha (tagged 2026-07-09) — soundness milestones: nominal structs, enums with payload variants, ? operator, try/catch (function-local), tuples + destructuring, impl blocks, bitwise ops, Python-parity Tier 1–2 features
Jul 2026v0.9.1-alpha (released 2026-07-15) — first cross-platform binary release (Linux x64, macOS Intel + Apple Silicon, Windows x64); closures callable (pipeline-order fix), ARC scope-based memory reclamation, compiler never panics on malformed input, CI gates (fmt / clippy / audit / llc corpus); 449 tests green