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
reia /
name age message
file INTERNALS.textile Sat Jul 18 21:10:19 -0700 2009 Move everything into the attic [Tony Arcieri]
file LICENSE Sat Aug 22 23:48:59 -0700 2009 Move license from attic [Tony Arcieri]
file Makefile Sat Jul 18 21:10:19 -0700 2009 Move everything into the attic [Tony Arcieri]
file README.textile Sat Dec 19 14:22:10 -0800 2009 Update README with information about the new br... [Tony Arcieri]
file Rakefile Wed Mar 25 23:14:09 -0700 2009 Have the 'reia' script thunk through the reia m... [Tony Arcieri]
directory artifacts/ Sat Jul 18 21:10:19 -0700 2009 Move everything into the attic [Tony Arcieri]
directory bin/ Tue Mar 31 14:36:01 -0700 2009 very dirty makefile [pirj]
directory ebin/ Thu Sep 25 19:53:35 -0700 2008 Minor build system cleanups (disabling smart ex... [Tony Arcieri]
directory examples/ Sat Jul 18 21:10:19 -0700 2009 Move everything into the attic [Tony Arcieri]
directory lib/ Sat Jul 18 21:10:19 -0700 2009 Move everything into the attic [Tony Arcieri]
directory src/ Tue Jun 23 22:59:18 -0700 2009 Merge branch 'rec' [Tony Arcieri]
directory test/ Sat Jul 18 21:10:19 -0700 2009 Move everything into the attic [Tony Arcieri]
README.textile

Reia

Welcome to Reia (pronounced RAY-uh), a Ruby/Python-like scripting language for
the Erlang virtual machine (BEAM).

New branch underway!

Looking for the latest Reia developments? They’re not happening here, sorry.
Reia is undergoing a rewrite and the latest code is available here:

http://github.com/tarcieri/reia/tree/minimalist

This branch is preserved as a mostly-working dead end, so people can experiment
with the features the new branch will eventually have until they reach a certain
level of feature parity. For more information, see the roadmap:

http://wiki.reia-lang.org/wiki/Roadmap

Compiling Reia

Reia requires Erlang version R12B-3 (5.6.3) or later. The latest version of
Erlang is available here:

http://www.erlang.org/download.html

To compile Reia, type:

make

under the Reia source tree to build Reia.

Installation

If Reia has compiled successfully, type:

make install

to install Reia systemwide. This will install the “reia” and “ire” scripts in
/usr/local/bin. Be sure to add this to your path (or move the scripts
elsewhere) if you’d like to be able to use Reia systemwide.

Usage

Reia provides three ways to execute programs:

  • The Reia interpreter, located in bin/reia (or just “reia” if you’ve installed
    Reia systemwide). This runs Reia programs from the command line.
  • The interactive Reia interpreter, located in bin/ire (or just “ire” if you’ve
    installed Reia systemwide). This provides an interactive environment (a
    read-eval-print loop) for running Reia programs, or just exploring the
    language.
  • The Reia static compiler, located in bin/reiac (not installed systemwide).
    This compiles Reia to .beam files which may be used in conjunction with
    Erlang code. The static Reia compiler is intended for compiling the
    self-hosted parts of Reia and is not intended for general-purpose use.

Implementation

Here’s some thoroughly interesting implementation trivia about Reia:

  • Leex-based scanner
  • Yecc-based grammar
  • Compiler transforms Reia abstract forms to Erlang abstract forms or BEAM
    bytecode
  • Partly self-hosted: Reia’s builtin types are mostly written in Reia

Links

About the Author

Reia was created by Tony Arcieri, a programmer from Boulder, Colorado, USA.
Tony has a background in network services and distributed peer-to-peer systems.
His favorite programming languages are Ruby and Erlang.