This is a combined repo for the Ribbon programming language, containing various components of the compiler, driver, runtime, and common utilities.
This project is still in the very early development stages. For now, issues are turned off and pull requests without prior discussion are discouraged.
Eventually I will create some places for public discourse about the language, for now you can reach me via:
- Email: [email protected]
- Discord DM, or on various dev servers: my username is
noxabellus
We truly stand on the shoulders of giants and I'm afraid listing everything I've referenced in the design of this language would be impossible, so the following are some highlights I found particularly well-written, informative, or otherwise inspiring
- Abstracting Extensible Data Types or Rows By Any Other Name
- A Polymorphic Record Calculus and Its Compilation
- Generalized Evidence Passing for Effect Handlers
- Do Be Do Be Do
- Zero-cost Effect Handlers by Staging
- Typed Memory Management in a Calculus of Capabilities
- A Lightweight Formalism for Reference Lifetimes and Borrowing in Rust
- Alias Types for Recursive Data Structures
- System F-omega with Equirecursive Types for Datatype-Generic Programming
- Numbering Matters: First-Order Canonical Forms for Second-Order Recursive
- The Simple Essence of Algebraic Subtyping
- Basically every publication from the fabulous Daan Leijen
- How to compile pattern matching and various other works by Jules Jacobs
- Lisp in Small Pieces
- Let Over Lambda
- Fear of Macros
- Thunderseethe's blog
- Ryan Brewer's blog
- Colin James' blog
- Max Bernstein also has a great collection of resources