Yet another statically typed compiled programming language.
  • C 94.9%
  • Python 4.4%
  • Makefile 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-16 13:27:05 -04:00
compiler ast: add val atom node 2026-08-13 16:16:58 -04:00
docs docs(ref): add values.dj 2026-08-16 13:27:05 -04:00
stdlib add copyright info 2026-07-28 16:26:17 -04:00
test tests(run): use Never type hint 2026-08-12 15:05:42 -04:00
.editorconfig update editorconfig 2026-07-29 23:13:27 -04:00
.gitignore update gitignore 2025-07-18 01:04:01 -04:00
config.mk makefile: update main repo URL 2026-07-15 18:01:11 -04:00
Makefile makefile: update test runner script path 2026-07-30 14:42:50 -04:00
README.md readme: fix wrong link 2026-08-08 22:48:23 -04:00

Rutile

Yet another compiled programming language. Very unstable and in early development.

Aiming for a flexible, multi-purpose language; from bare metal to high-level application development.

Check the test/ folder for some syntax examples. Not very different from your expectations.

Documentation & Reference

A WIP reference can be found in docs/reference/.

Building

Build time dependencies

  • C11 C compiler (tested on GCC, Clang, TCC)
  • C standard library
  • GNU Make
  • POSIX shell
  • Vendored libraries, these are contained in compiler/libs, see compiler/libs/README.md.

Test suite dependencies

  • Python (for the test runner script)

Procedure

Note that the default CFLAGS and LDFLAGS are meant for development builds. You can either override the flags from the command line (like shown below) or edit config.mk.

Debug build (uses default flags):

$ make -j$(nproc) rutilec

Release build:

$ make -j$(nproc) rutilec CFLAGS='-O2 -DNDEBUG' LDFLAGS='' ASAN=''

Tests

See test/README.md

Replicas

This project repository is spread (replicated) across multiple Git hosting sites. None is more or less important that the other. Thus, it is decentralised.

License

  • Compiler code (in compiler/) is under the GNU GPLv3 License.
  • Standard library, runtime code and test files are under the BSD 3-clause License.
  • External libraries have their own licenses.
  • Any other file is under the BSD 3-clause license by default unless otherwise stated.

Acknowledgements

  • Christopher Wellons, for his public domain libraries.
  • Sean Barrett's stb_ds.h.