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 operators support for primitive wrappers Sep 11, 2015
lib substitute getResolvedType in another place where it makes sense Jul 3, 2016
maven Bump version. Apr 25, 2015
mirah-parser merged mirah-parser under a directory Jul 10, 2016
nbproject fix unboxing issues (cherry picked from commit d348ada) Apr 27, 2015
src/org/mirah remove some unnecessary variables in the typer Jul 3, 2016
test fix bug 417: mark test as pending Mar 25, 2016
tools merge master into new ast. It's crazy awesome. Feb 12, 2012
.gitignore macro resgistration using java services SPI (cherry picked from commit Sep 10, 2015
.travis.yml add mirah parser tests to travis Jul 10, 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 Use 'test-unit' gem version 3.0. Apr 22, 2015
History.txt 0.1.4 bump version; update history Nov 13, 2014
LICENSE New project to hold Mirah's parser, independent of jmeta/mmeta stuff. Dec 16, 2010
NOTICE update NOTICE Aug 6, 2014 whitespace in README Sep 5, 2015
Rakefile Only claim files as built if compilation is actually without exceptions. Feb 3, 2016 add notes to TODO Dec 9, 2015
mirah.gemspec use an array to get mirahc in the gem closes #278 Feb 18, 2015
pom.xml Use more modern JRuby version. Apr 25, 2015


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 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.