Roadmap AHA! Lang: Ke Mana Langkah Berikutnya?
Status terkini pengembangan, prioritas Phase 2 — dari type inference sampai self-hosting — dan cara ikut berkontribusi.
16 Agustus 2026
Roadmap AHA! Lang: Ke Mana Langkah Berikutnya?
Setiap bahasa yang serius butuh peta jalan yang jujur. Ini dia roadmap AHA! Lang — apa yang sudah tercapai, dan apa yang sedang dibidik selanjutnya.
✅ Sudah Terwujud
Fondasi bahasa lengkap dan diuji oleh 417 test otomatis di CI:
- Lexer & Pratt parser dengan pelaporan error yang jelas
- Tipe
Int,Bool,Stringdengan type-checking pass di compile-time - Operator: aritmetika, perbandingan,
&&/||, prefix, assignment - Kontrol alur:
if/else(ekspresi),while,for i in a..b,break/continue - Fungsi: parameter,
return, forward references, mutual recursion - String struct: konkatenasi aman,
==/!=,len()O(1) - Array literals & indexing (codegen)
- Builtins:
print,print_str,abs,min,max,len - Eksekusi JIT via LLVM
- CLI:
--file,--emit-ir,--version - Ekstensi VS Code untuk syntax highlighting (
editors/vscode) - CI pipeline:
cargo check, tes otomatis,cargo build --release
Struct (F1) — Selesai
Struct kini berfungsi penuh di runtime:
- Literal struct:
Point { x: 3, y: 4 }— dibangun viainsertvalueLLVM - Akses field:
p.xdibaca viaextractvalue - Field bertipe:
name: string, age: int— layout LLVM sesuai tipe, diperiksa saat kompilasi - Mutasi field:
p.x = value— lvalue sejati, diperiksa tipenya - Struct sebagai parameter & return value: struct dioper by-value ke fungsi, dan fungsi bisa mengembalikan struct
Type Inference & Annotations (F2) — Selesai
- Anotasi tipe:
let x: int = 5— eksplisitint,string,bool, atau nama struct; nilai diperiksa tipenya saat kompilasi - Inferensi tipe: variabel tanpa anotasi tipenya di-infer dari ekspresi
- Inferensi return type fungsi:
fn greet() { "hello" }mengembalikan String —len(greet())bekerja - If-expression dengan cabang string menghasilkan string sungguhan
Generics / Parametric Types (F3) — Selesai
- Fungsi generik:
fn pick<T>(a: T, b: T) -> T— tipe konkret di-infer dari tiap call site - Monomorphization: setiap kombinasi unik (nama, tipe konkret) menjadi fungsi LLVM terpisah — nol biaya runtime
- Banyak type params:
fn first<A, B>(a: A, b: B) -> A - Anotasi return type:
-> T,-> int
🚧 Sedang dalam Pengerjaan (Phase 2)
Inilah yang paling menarik — arah besar bahasa ke depan:
1. Module System & Package Manager (F4)
aha install — ekosistem paket untuk membagikan dan memakai pustaka. Pintu gerbang menuju proyek berskala besar.
2. Resource Lifetimes (F5) — Dibekukan Sementara
Manajemen memori manual yang aman — tanpa garbage collector, tanpa kebocoran memori. F5 sengaja dibekukan sampai F1–F4 stabil: stabilkan dulu, lalu melangkah sedikit demi sedikit.
3. Actor-Model Concurrency (F6)
Konkurensi dengan message passing — memanfaatkan banyak inti prosesor tanpa sakit kepala.
4. Self-Hosting (F7)
Tujuan akhir: kompiler AHA! Lang ditulis dalam AHA! Lang sendiri. Saat tercapai, bahasa ini membuktikan kedewasaannya.
Tata Kelola Pengembangan
- Branch workflow: setiap fitur dimulai di branch
experimental/<fitur>, digabung kedevelopmenthanya setelah stabil;mainhanya menerima PR dengan CI hijau. - Setiap fitur ditelusuri: setiap perubahan dicatat di changelog (EN + ID) — kita butuh jejak.
- PRD sebagai acuan: semua fitur wajib berasal dari roadmap di
PRD.md, bukan ide ad-hoc.
Ingin Berkontribusi?
AHA! Lang adalah proyek open source (MIT). Cara terbaik untuk mulai:
- Baca kode: kompiler ~ribuan baris Rust — mulai dari
src/main.rs. - Cari issue: bug report dan ide fitur di GitHub Issues.
- Kirim PR: panduan lengkap ada di CONTRIBUTING.md.
Visi kami sederhana: bahasa yang easy to read, powerful to wield — dan kamu bisa ikut mewujudkannya.