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)
Sat Oct 11 16:55:59 -0700 2008
commit  7056951c9de9f043a5d1e269dec314a677036a54
tree    b9cfa0ad535c154e6b73546ffcf67a6a34ed67f2
parent  69ed63bcc8a22b65019324c18d096915f4e2ed65
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 artifacts/ Sat Sep 06 00:53:29 -0700 2008 New build system [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-3 (5.6.3). 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

To compile Reia, you will need a working installation of Erlang (at least 
R12B-3) as well as 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
* Partly self-hosted: most core Reia types 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/