aa3433b5a9bc7d81cb124a4444bf6e9c013e0432
- Add ekGenericCall to AST for generic function calls (Max<int>)
- Parse generic type arguments in parsePostfix
- Support generic calls in sema with type parameter substitution
- Implement monomorphization in hir_lower:
- Collect generic function declarations
- Find all generic call sites
- Generate specialized versions with mangled names (Max_int)
- Substitute type parameters with concrete types
- Add generics.bux example
Example:
func Max<T>(a: T, b: T) -> T {
if a > b { return a; }
else { return b; }
}
let m: int = Max<int>(10, 20); // Generates Max_int
Bux Programming Language
Status: Bootstrap phase — compiler written in Nim, targeting self-hosting.
Bux is a fast, compiled, strongly-typed systems programming language inspired by Rux. The long-term goal is a self-hosted compiler with a minimal runtime, native x86-64 backend, and modern tooling.
Quick Start
# Build the bootstrap compiler (Nim)
make build
# Create a new project
bux new hello
# Build and run
bux run
Syntax Preview
import Std::Io::PrintLine;
func Main() -> int {
let message: *char8 = c8"Hello, Bux!";
PrintLine(message);
return 0;
}
Roadmap
See PLAN.md for the full roadmap to self-hosting.
License
MIT
Languages
C
74.6%
Nim
23.4%
HTML
1.2%
Makefile
0.3%
Go
0.3%