public
Description: Reia is a Ruby/Python-like language for BEAM, the Erlang VM
Homepage: http://reia-lang.org
Clone URL: git://github.com/tarcieri/reia.git
Tony Arcieri (author)
Mon Aug 25 00:59:24 -0700 2008
commit  3d95e76adaff52c3294e22fe55c083172ed7227f
tree    9b55f8330063f72dbdf9835322e675c0530ba044
parent  d02155c94cb431b39c23fa816e8bf2a6d71d8da3
reia /
name age message
file LICENSE Sat Jul 26 13:42:05 -0700 2008 Add license information [Tony Arcieri]
file README Thu Sep 25 21:27:41 -0700 2008 Update README with compile instructions [Tony Arcieri]
file Rakefile Thu Nov 13 22:09:55 -0800 2008 Generate wrapper scripts for reia and ire [Tony Arcieri]
directory bin/ Thu Oct 09 22:26:17 -0700 2008 Get rid of -smp flag when starting Erlang [Tony Arcieri]
directory ebin/ Thu Sep 25 19:53:35 -0700 2008 Minor build system cleanups (disabling smart ex... [Tony Arcieri]
directory src/ Thu Nov 13 20:08:36 -0800 2008 Better pattern for matching __instance_variables_ [Tony Arcieri]
directory test/ Tue Oct 14 23:45:19 -0700 2008 Fix Tuple.inspect to add the trailing comma on ... [mgood]
README
= 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/