Conduit is a highly experimental compiler backend that is meant to be a backbone for other high-level programming languages. It explicitly does not aim to serve languages that are bare-metal.
Some of its properties:
- Effects and effect handlers are built into the language.
- Mutations and cycles are allowed.
- ADTs are the default way to construct and manipulate structured data.
- No need for manual memory management. The compiler optimises allocations away where possible and only uses a GC as a fallback.
- Can target WebAssembly: no extra adjustments needed.
- The IR defines join points to easily share control flow between multiple statements.
Start at docs/README.md: the IR, the passes, the backends, and what a host does to run a module.
- The Bolt Programming Language
- Your own language here? Open a pull request!