The Mirah Programming Language
HTML Mirah Ruby Java Batchfile Shell
Failed to load latest commit information.
bin Prevent calling System.exit in Apr 28, 2015
distbin remove win JAVA_HOME lookup because it has problems with spaces in th… Jul 22, 2012
examples update examples w/ better formatting Oct 27, 2015
javalib build and depend on the parser when building mirahc Aug 2, 2016
lib Bump versions to 0.2.1 Sep 26, 2016
maven Bump versions to 0.2.1 Sep 26, 2016
mirah-parser Fix TODO for DescendentFinder rm duplicated code that was commented o… Sep 23, 2016
nbproject fix unboxing issues (cherry picked from commit d348ada) Apr 27, 2015
src/org/mirah Bump versions to 0.2.1 Sep 26, 2016
test add == impl for arrays using java.util.Arrays Sep 23, 2016
tools merge master into new ast. It's crazy awesome. Feb 12, 2012
.gitignore Fix metacircularity of the parser. Sep 6, 2016
.travis.yml first step towards an integrated build. Jul 31, 2016 Add Code of Conduct Mar 7, 2016
COPYING add asm license to a file that's included in the compiler jar Aug 3, 2014
Gemfile just use test-unit at whatever version Sep 6, 2016
History.txt Update history for 0.2.1 Sep 26, 2016
LICENSE New project to hold Mirah's parser, independent of jmeta/mmeta stuff. Dec 16, 2010
NOTICE update NOTICE Aug 7, 2014 fix release link Sep 20, 2016
Rakefile better exit failure message when running mirah Sep 21, 2016 add notes to TODO Dec 10, 2015
mirah.gemspec use an array to get mirahc in the gem closes #278 Feb 18, 2015
pom.xml Bump versions to 0.2.1 Sep 26, 2016


Build Status


Mirah is a customizable programming language featuring static types, local type inference and a heavily Ruby-inspired syntax. Mirah currently includes a typer/compiler backend for the JVM which can output JVM bytecode.


  • Ruby-like syntax
  • Compiles to .class
  • Fast as Java
  • No runtime library


mirah <script.mirah>
mirah -e "inline script"
mirahc <script.mirah>
mirahc -e "inline script" # produces DashE.class


  • Java 1.7 or higher.



If your gem and rake are not from JRuby, prefix the commands with jruby -S

$ gem install mirah


Mirah is distributed as a jar through maven central. You can download the latest jar from


You can also install Mirah from a zip file. Download the latest stable release from Extract it, and add bin to your $PATH to be able to use mirah, mirahc, etc.


Setup building locally and installing from source, you'll need jruby 1.7.12 or higher. Then just follow these commands.

To get the repository setup locally run the following:

$ git clone
$ cd mirah
$ bundle install

To install mirah as a gem from source:

$ rake gem
$ gem install pkg/mirah-*.gem

To create the mirahc jar:

$ rake dist/mirahc.jar

This will create a mirahc.jar file in dist that you can run to compile mirah source files.