dimgigov aa3433b5a9 feat: add generics support with monomorphization
- 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
2026-05-31 00:22:03 +03:00

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

S
Description
No description provided
Readme MIT 12 MiB
Languages
C 74.6%
Nim 23.4%
HTML 1.2%
Makefile 0.3%
Go 0.3%