Skip to main content
i++ documentation covers both implemented features and planned language features. This page summarizes the implementation described by the C-triangle repository. Linux x86_64 is the supported platform target.

Available now

C11 baseline, string, dynam, manual allocation, libraries, and Linux x86_64 assembly.

Still planned

auto, tuples, struct extensions, lambdas, and automatic ownership features.

Implemented

The compiler supports:
  • C11 types and constructs, including pointers, control flow, functions, field-only structs, unions, enums, and typedef.
  • string values.
  • dynam arrays and len() for strings and dynamic arrays.
  • Manual heap allocation with allocate and free.
  • Library imports and namespaces using .ih libraries, using, expose, space, and @.
  • Inline assembly for the Linux x86_64 build pipeline.
  • The iodine libraries, including printd, string operations, regular expressions, and file I/O.
  • Generating C output without linking, and compiling executables with GCC.

Not implemented

The following language-design features are not supported by the current compiler: Use the implemented printd function from iodine/printd.ih for formatted output.
The compiler’s installed executable is still named hypotenuse. The name j++ is the new compiler name; the executable rename is pending in the compiler repository.

Platform support

Report a gap

If an implemented feature does not match this documentation, report it in the C-triangle repository.