r rin C-shaped systems language

rin

: [] <> () -> {}

A small systems language that compiles to readable C.

  • One declaration shape. name: kind = value, for variables, structs, enums and procs alike. Read left to right, always.
  • A simple module system. import "file.rin" and that file's symbols are yours. Transitive, cycles diagnosed, no headers to keep in sync.
  • Generics & reflection. Instantiated per type while compiling, with a record describing every type that asks for one. No macros.
  • Arena allocators. Ask once, hand out pieces, release the whole thing at once.
  • The debugger points at your source. Machine-code line tables name the .rin file, not the generated C.
Basics

Start here

Twenty lessons, in order

Each one is a short program that compiles, runs, and teaches a single thing about how the machine works. It opens with what the language is and how to install it.

Open the lessons