Skip to main content
The C△ language specification describes the full design of the language. The Hypotenuse Compiler is still under active development, so not every documented feature is wired up yet. This page is the authoritative list of what the current compiler does and does not implement.
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

  • asm functions and anonymous asm {} blocks
  • syntax and section directives
  • The NASM + GCC link pipeline
Assembly is supported on Linux (x86_64) and macOS (ARM64) only. Windows is not supported for asm — the MSVC build path does not invoke NASM, so any source containing asm will fail to produce a working binary on Windows.

Module system and libraries

  • using <lib> and using 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.
  • .plib library importing and resolution from the standard PLIBS/ search paths.

Types and collections

  • The first-class string type
  • dynam arrays, including list-literal initializers and runtime growth
  • The len() built-in for string and dynam

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

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.
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.

Reporting Gaps

If you hit a feature that is documented but does not behave as described — and is not listed in the Unimplemented Features table above — please file an issue against the compiler repository so we can either fix the compiler or update this page.