Features
- Lightness: Orion source code fits under 3k SLOC and its binary is under 2MB.
- Portable: Orion code is run on a virtual machine, that avoids architecture-specific problems.
- Purely functional: Pattern matching, immutability, side effects control.
- Elegant: It embeds shorthands such as
'<expr>
for(\ () <expr>)
,[x y z]
for(Cons x (Cons y (Cons z Nil)))
or{ <expr>* }
for(begin <expr>*)
.
Installation
You will need: the Rust toolchain (1.50+), a "make" program, a POSIX shell (linked in /bin/sh
) and Git.
$ git clone https://github.com/orion-lang/orion.git
$ cd orion/
$ chmod +x configure
$ ./configure
$ make
$ make install PREFIX=/wherever/you/want/
Documentation
You can find a detailed tutorial, the standard library, the core and the builtins documentation here.
Quick Example
Factorial function:
(def factorial (λ (n)
(match n
(0 1)
(_ (* n (factorial (- n 1)))))))
Performance Tests
ack 3 3
Language | Average | Median | Amplitude |
---|---|---|---|
Nixt | 126ms | 121ms | 134ms |
Orion Interpreter | 76.106ms | 75ms | 21ms |
Orion VM | 4.168ms | 4ms | 4ms |
CPython | 0.516ms | 0.482ms | 0.541ms |
Acknowledgments
Special thanks to @Mesabloo and @felko for support and help about implementation details.
License
This software and all associated items (assets, documentation, etc) are licensed under the GNU General Public License version 3.0 and higher.