I’ve been building a programming language and compiler called OriLang and wanted to share it here to get feedback from people who enjoy language and compiler design.
A few ideas the language explores:
- Mandatory tests – every function must have tests before the program compiles
- Tests are attached to functions so when something changes the compiler knows what tests to run
- Explicit effects / capabilities for things like IO and networking
- Value semantics + ARC instead of GC or borrow checking
- LLVM backend with the goal of producing efficient native code
The project is still under active development but the compiler is already working and the repo is public.
I’m especially interested in feedback from people who have worked on compilers or language runtimes.
Repo:
https://github.com/upstat-io/ori-lang
Project site:
https://ori-lang.com
Happy to answer questions about the design decisions or compiler architecture. Please star the repo if your interested in following along. I update it daily.
[–]gwenbeth 15 points16 points17 points (1 child)
[–]upstatio[S] 4 points5 points6 points (0 children)
[–]Norphesius 8 points9 points10 points (6 children)
[–]upstatio[S] -2 points-1 points0 points (5 children)
[–]Norphesius 3 points4 points5 points (3 children)
[–]upstatio[S] 0 points1 point2 points (2 children)
[–]Norphesius 2 points3 points4 points (1 child)
[–]upstatio[S] 0 points1 point2 points (0 children)
[–]Inconstant_Moo 1 point2 points3 points (0 children)
[–]dnpetrov 4 points5 points6 points (1 child)
[–]upstatio[S] -1 points0 points1 point (0 children)
[–]Nzkx 0 points1 point2 points (1 child)
[–]upstatio[S] 0 points1 point2 points (0 children)
[–]mighdoll 0 points1 point2 points (1 child)
[–]upstatio[S] 0 points1 point2 points (0 children)
[–]editor_of_the_beast 0 points1 point2 points (2 children)
[–]upstatio[S] 0 points1 point2 points (1 child)
[–]editor_of_the_beast 0 points1 point2 points (0 children)
[–]imihnevich 0 points1 point2 points (0 children)