GitHub - jsyeo/malady: A lisp that compiles to rubinius bytecode

1 min read Original article ↗

Malady Build Status

Malady is an implementation of mal that compiles to Rubinius bytecode.

Installation

Usage

Use the malady binary provided in the bin directory to start the malady repl.

$ malady
malady> (+ 42 88)
130
malady> (def! fib (fn* [x]
          (if (< x 2)
              1
              (+ (fib (- x 1)) (fib (- x 2))))))
#<Rubinius::BlockEnvironment:0x30ac>
malady> (fib 8)
34
malady>

Development

Malady requires Rubinius.

Install dependencies with bundle

To run tests, use rspec

To Do:

  • Data structures
    • Lists
    • Hashes
    • Symbols
  • Macros
  • Import mal's test cases

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/jsyeo/malady.

Credits

Inspired by lani, a programming language in Rubinius.

License

The gem is available as open source under the terms of the MIT License.