Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A modern approach to programming for the Erlang VM
Elixir Erlang
branch: patch-3

This branch is 7336 commits behind elixir-lang:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
docs
include
lib
src
test
.gitignore
.travis.yml
BSDL
CHANGELOG.md
COPYING
LEGAL
Makefile
README.md
RELEASE.md
console
rebar
rebar.config
tests.watchr

README.md

Elixir Build Status

Elixir is a programming language built on top of Erlang. As Erlang, it is a functional language with strict evaluation and dynamic typing built to support distributed, fault-tolerant, non-stop applications with hot swapping.

The main difference between Elixir and Erlang is its more natural homoiconic syntax that supports meta-programming. Elixir also supports polymorphism via protocols (similar to Clojure's), dynamic records and a reference mechanism.

Elixir and Erlang share the same bytecode and data types. This means you can invoke Erlang code from Elixir (and vice-versa) without any conversion or performance hit.

Usage

You can run and learn about Elixir in the Getting Started guide.

But if you just want to compile and try Elixir, with no compromises, you can clone this repository to your machine, compile and test it:

$ git clone https://github.com/josevalim/elixir.git
$ cd elixir
$ make test

$ bin/elixir -v
Elixir 0.4.0.dev

If tests pass, you are ready to move on to the Getting Started guide or to try Interactive Elixir by running: bin/iex in your terminal.

However, if tests fail, it is likely you have an outdated Erlang version (Elixir requires Erlang R15B or later). You can check your Erlang version by calling erl in the command line. You will see some information as follow:

Erlang R15B (erts-5.8.4) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]

If you have the correct version and tests still fail, feel free to open an issue in the issues tracker on Github.

Contributing & Roadmap

If you want to contribute, the code is organized as follow:

  • include, src - Both directories contain part of the source code written in Erlang. yecc is used as the parser;

  • lib - Contains Elixir's STDLIB, written in Elixir;

  • test/elixir - Tests for Elixir's STDLIB, written in Elixir. For this purpose, Elixir ships with a small unit test library called ExUnit;

  • test/erlang - Contains tests for Elixir, written in Erlang. Usually, just internal stuff is tested here. The preferred way to test is in Elixir itself.

We usually keep a list of features and bugs in the issues tracker.

Important links

License

See COPYING file.

Copyright (c) 2011-2012 José Valim, jose.valim@gmail.com

Something went wrong with that request. Please try again.