= Reia
Welcome to Reia (pronounced RAY-uh), a Ruby/Python-like scripting language for
the Erlang virtual machine (BEAM).
== Installation
Reia cannot presently be installed in the traditional sense. Instead,
programs must presently be executed from the toplevel directory of the Reia
distribution.
Reia also depends on a working Erlang installation, and requires a minimum
Erlang version of R12B-2 (5.6.2). The latest version of Erlang is available here:
http://www.erlang.org/download.html
== Usage
Reia provides three ways to execute programs:
* The Reia interpreter, located in bin/reia. This runs Reia programs from the
command line without needing to compile them first.
* The interactive Reia interpreter, located in bin/ire. This provides an
interactive environment (a read-eval-print loop) for running Reia programs,
or just exploring the language.
* The Reia compiler, located in bin/reiac. This compiles Reia to .beam files
which may be used in conjunction with Erlang code. The main use of the Reia
compiler is for compiling the self-hosted parts of Reia itself. Programs
compiled with it are more limited than ones run with the standard Reia
interpreter.
== Compiling Reia
Compiling Reia yourself is typically unnecessary since it already comes
compiled. However, if you are interested in helping to develop Reia, you
should be aware of the following caveats.
Reia is partly self-hosted. This means that if you wish to compile Reia, you
must have a working copy of Reia available. Reia ships with known-working
.beam files of all the Reia core modules under the ebin/ directory. These
must be available in order for the compiler to work.
To compile Reia, you will need the "rake" tool. Instructions for installing
Rake are available at:
http://rake.rubyforge.org/
Once you've installed rake, type:
rake
under the Reia source tree to build Reia.
== Implementation
Here's some thoroughly interesting implementation trivia about Reia:
* Leex-based scanner (with second pass for indentation sensitivity)
* Yecc-based grammar
* Compiler transforms Reia abstract forms to Erlang abstract forms or BEAM bytecode
* Mostly self-hosted: ~3/4 of Reia modules are written in Reia
== Programming Reia
Reia is under active development and therefore changing constantly. For the
most up-to-date information on how to program in Reia, consult the Wiki:
http://wiki.reia-lang.org/