2 releases
Uses old Rust 2015
0.0.1 | Aug 31, 2017 |
---|---|
0.0.0 | Aug 8, 2017 |
#5 in #concatenative
33KB
824 lines
rivet
A simple concatenative programming language inspired by Kitten.
The goal is to be embeddable language for Rust programs, as if there aren't enough of those.
The defining doc that made me want to do this was http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programming-matters.html but all their stuff is worth reading.
An interesting goal: allow the program embedding this to be able to specify hard limits on CPU usage, etc, appropriate for running untrusted programs. Though this also requires being a bit careful with the compiler, so that nobody can DoS it by giving it pathological input.
Current status
It's trivially turing-complete, but it's also amazingly rough. Not really ready for public usage.
Things to do
Soon
- Remove unwraps
- More data types? Arrays, structs, numerical tower
- More function metadata, function types?
- More useful interpreter program -- load files, etc.
- Better error handling
Less soon
- Functions as some type other than just AST's (bytecode? threaded code?)
- Static type checking
- Module system???
- Nicer definition/statement syntax
- Prelude module
Dependencies
~7MB
~142K SLoC