Documentation pages describe the language as designed. Where a feature is not yet implemented, you will find an inline notice on the relevant page linking back here.
Implemented Features
The features below are wired up and working in the current compiler. Everything else documented elsewhere in this site describes the language design and is not yet supported — see Unimplemented Features below.Inline assembly
asmfunctions and anonymousasm {}blockssyntaxandsectiondirectives- The NASM + GCC link pipeline
Module system and libraries
using <lib>andusing symbol from <lib>— including the library-name rewrite when importing a single symbol.using symbol as alias from <lib>— aliasing on import.expose— globalize a library’s symbols into the current scope.space { ... }— declare a named namespace.function@namespace(...)— explicit namespace access without exposing..pliblibrary importing and resolution from the standardPLIBS/search paths.
Types and collections
- The first-class
stringtype dynamarrays, including list-literal initializers and runtime growth- The
len()built-in forstringanddynam
Memory
allocate— manual heap allocation, including the custom-size syntax (e.g.allocate int buf[N]).free— manual deallocation.
Standard library (plstd)
printd.plib— type-aware single-value printing (printd).string.plib— the plstd string library (strcmp,strcpy,strcat,strlen,strdup,strchr,strstr,strncpy,strncat,strncmp).streamer.plib— file I/O.
C11 baseline
All C11 language features inherited by C△ work as documented — primitives, pointers, structs (fields only), unions, enums,typedef, control flow, and functions.
Platform Support
| Platform | Status | Notes |
|---|---|---|
| Linux (x86_64) | Fully supported | hypotenuse -c produces a linked native binary end-to-end. |
| macOS (ARM64) | Fully supported | hypotenuse -c produces a linked native binary end-to-end. |
| Windows (x86_64) | Technically supported, manual build | The compiler emits portable C (.c) output, but cannot invoke MSVC for you. You must run cl.exe (or equivalent) yourself on the generated C. asm blocks and asm functions do not work on Windows. |
Unimplemented Features
Everything documented across the site that is not listed in the Implemented Features section above is not yet supported. The list below calls out the most prominent gaps so you don’t reach for them by accident.| Feature | Status | Notes |
|---|---|---|
auto (inferred / dynamic type) | Not implemented | Type inference and multi-variable packing with auto are part of the language design but not yet wired up. |
tuple | Not implemented | Heterogeneous dynamic lists, .push(), and len() on tuples are not yet supported. |
struct extensions (init/end, member functions, plain struct constructors, typed struct inheritance) | Not implemented | Only standard C11 struct declarations (fields only) work. Constructors, destructors, member functions, and inheritance are not yet supported. |
lamb (named lambdas) | Not implemented | Inline lambda declarations are not yet supported. |
autoremove | Not implemented | The simulation pass does not yet perform last-use analysis or insert automatic free calls. |
| Robbery | Not implemented | Ownership transfer between autoremove bindings depends on autoremove and is not yet supported. |
printfs (formatted / f-string print) | Not implemented | printd ships in printd.plib, but printfs and its {expr} / %-style formatting are not yet available. |
Documentation pages describe the language as designed. Where a feature is not yet implemented, you will find an inline notice on the relevant page linking back here.
