Wafelack/orion

Orion is a high level, purely functional programming language with a LISP based syntax.

Rust

235

397 commits

updated Oct 21, 2022

See the code

README

Orion


Orion is a high level, purely functional programming language with a LISP based syntax.

GitHub Repo stars Continuous Build Continuous Test GitHub forks


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

LanguageAverageMedianAmplitude
Nixt126ms121ms134ms
Orion Interpreter76.106ms75ms21ms
Orion VM4.168ms4ms4ms
CPython0.516ms0.482ms0.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.

language
lisp
orion
programming-language

Contributors

Wafelack

397 commits

Languages

Rust

92.0%

Clojure

6.9%

Python

1.1%

Wafelack/orion

Orion is a high level, purely functional programming language with a LISP based syntax.

Rust

235

397 commits

updated Oct 21, 2022

See the code

README

Orion


Orion is a high level, purely functional programming language with a LISP based syntax.

GitHub Repo stars Continuous Build Continuous Test GitHub forks


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

LanguageAverageMedianAmplitude
Nixt126ms121ms134ms
Orion Interpreter76.106ms75ms21ms
Orion VM4.168ms4ms4ms
CPython0.516ms0.482ms0.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.

language
lisp
orion
programming-language

Contributors

Wafelack

397 commits

Languages

Rust

92.0%

Clojure

6.9%

Python

1.1%