Source in. Machine code out.
Follow a CHUD program through the native compiler and runtime.
A real compilation pipeline.
The C++20 frontend lexes source-spanned tokens, parses an owning AST, resolves functions and scoped bindings, and checks types during LLVM IR lowering. Syntax recovery synchronizes at function declarations.
Native code generation.
The driver writes a .ll file, compiles a .obj with the LLVM command-line backend, then links it with the small C runtime. User CHUD code is emitted as LLVM IR, not translated into another high-level language. Release uses -O2; default uses -O0.
Use the compiler directly.
chudc Program.chud -o build/Program.exe
chudc Program.chud --check
chudc Program.chud --emit-ir -o build/Program.exe
chudc Program.chud --check --diagnostics-json
chudc Helpers.chud --check --library
chudc Program.chud --symbols-json--library permits checking without Main; it does not emit a library. JSON diagnostics expose file, line, UTF-16 column, length, and message. Symbols come from the shared AST.
A small lifetime model.
Scalar values are local copies. Strings point to immutable UTF-8 data in process-lifetime static storage. There are no user heap objects, pointers, resource handles, garbage collector, or borrow checker yet. The linked runtime supplies console output, string equality, and checked integer division.
Generated applications use the Windows C runtime and run without the IDE, Node.js, or .NET. Current tool launchers still depend on the configured source checkout.