rin
A small systems language that compiles to readable C, so it runs wherever C runs and links against anything C links against.
- Sizes are in the names.
i32is 32 bits on every machine. There is nointwhose width depends on where you built it. - One declaration shape.
name: kind = value, for variables, structs, enums and procs alike. Read left to right, always. - Order does not matter. Use a type or a proc before you declare it. No forward declarations, no header discipline.
- Generics and reflection, no macros. Instantiated per type while compiling, with a record describing every type that asks for one.
- Arenas, not a collector. Ask once, hand out pieces, release the whole thing at once.
- The debugger points at your source. Machine-code line tables name the
.rinfile, not the generated C.