Git Product home page Git Product logo

elixir's Introduction

Elixir

Build Status

For more about Elixir, installation and documentation, check Elixir's website.

Usage

To run Elixir from source, clone this repository to your machine, compile and test it:

git clone https://github.com/elixir-lang/elixir.git
cd elixir
make clean test

Note: if you are running on Windows, this article includes important notes for compiling Elixir from source on Windows.

If Elixir fails to build (specifically when pulling in a new version via git), be sure to remove any previous build artifacts by running make clean, then make test.

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 18.0 or later). You can check your Erlang version by calling erl in the command line. You will see some information as follows:

Erlang/OTP 18 [erts-7.0] [source] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false]

If you have the correct version and tests still fail, please open an issue.

Contributing

We welcome everyone to contribute to Elixir and help us tackle existing issues! To do so, there are a few things you need to know about the code. First, Elixir code is divided in applications inside the lib folder:

  • elixir - Contains Elixir's kernel and stdlib

  • eex - Template engine that allows you to embed Elixir

  • ex_unit - Simple test framework that ships with Elixir

  • iex - IEx, Elixir's interactive shell

  • logger - The built-in logger

  • mix - Elixir's build tool

You can run all tests in the root directory with make test and you can also run tests for a specific framework make test_#{NAME}, for example, make test_ex_unit.

In case you are changing a single file, you can compile and run tests only for that particular file for fast development cycles. For example, if you are changing the String module, you can compile it and run its tests as:

bin/elixirc lib/elixir/lib/string.ex -o lib/elixir/ebin
bin/elixir lib/elixir/test/elixir/string_test.exs

After your changes are done, please remember to run the full suite with make test.

From time to time, your tests may fail in an existing Elixir checkout and may require a clean start by running make clean compile. You can always check the official build status on Travis-CI.

With tests running and passing, you are ready to contribute to Elixir and send a pull request. We have saved some excellent pull requests we have received in the past in case you are looking for some examples:

We usually keep a list of enhancements and bugs in the issue tracker. For proposing a new feature, please start a discussion in the Elixir Core mailing list. Remember all interactions in our official spaces follow our Code of Conduct.

Building documentation

Building the documentation requires ExDoc to be installed and built alongside Elixir:

# After cloning and compiling Elixir, in its parent directory:
git clone git://github.com/elixir-lang/ex_doc.git
cd ex_doc && ../elixir/bin/mix do deps.get, compile
cd ../elixir && make docs

This will produce documentation sets for elixir, mix, etc., under the doc directory. If you are planning to contribute documentation, please check our best practices for writing documentation.

Development links

License

"Elixir" and the Elixir logo are copyright (c) 2012 Plataformatec.

Elixir source code is released under Apache 2 License.

Check NOTICE and LICENSE files for more information.

elixir's People

Contributors

josevalim avatar ericmj avatar alco avatar lexmag avatar yrashk avatar jwarwick avatar eksperimental avatar fishcakez avatar rafaelfranca avatar whatyouhide avatar vanstee avatar chyndman avatar josephwilk avatar meh avatar andrzejsliwa avatar defipanda avatar pragdave avatar oneeman avatar msch avatar brunoro avatar guedes avatar miaout17 avatar bellthoven avatar thomasc avatar henrik avatar khia avatar raynes avatar lest avatar duosrx avatar bitwalker avatar

Watchers

Hadi Khaghani avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.