Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Erlang/OTP

This branch is 284 commits ahead, 3092 commits behind yiannist:dev

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
bootstrap
erts
lib
make
plt
system
xcomp
.gitattributes
.gitignore
.mailmap
AUTHORS
EPLICENCE
INSTALL-CROSS.md
INSTALL-WIN32.md
INSTALL.md
Makefile.in
README.bootstrap
README.dtrace.md
README.md
README.md.txt
README.systemtap.md
TAR.include
aclocal.m4
configure.in
erl-build-tool-vars.sh
otp_build
prebuild.delete
prebuild.skip

README.md

Erlang/OTP

Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecom, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance.

OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools.

More information can be found at erlang.org.

Why forked?

Erlang/OTP was forked in order to work on implementing an LLVM back-end for HiPE. The current work is focused on AMD64 architecture but the back-end is meant to be target-independent (for the architecture that the Erlang Run-Time System supports). Please take some time and install custom LLVM before moving forward because it is an integral part of the back-end.

More information about the design decisions and the actual patch to be announced.

Building and Installing

  • Getting latest source code from Github:

    git clone git://github.com/yiannist/otp.git otp
    
  • Compiling:

    cd otp/
    ./otp_build autoconf
    ./configure
    make
    
  • Installing:

    sudo make install
    
  • Verifying that the installation was successful (this step considers custom LLVM to be already successfully installed in your system):

    1. Write an Erlang module:

      -module(test).
      -export([hello/1]).
      
      hello(Name) ->
          io:format("Hello ~w!~n", [Name]).
      
    2. Fire the Erlang shell:

      yiannis@mosby [~/git/otp]>>= erl
      Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:2:2] [rq:16]
      [async-threads:0] [hipe] [kernel-poll:false]
      
      Eshell V5.8.5  (abort with ^G)
      1>
      
    3. Compile module to BEAM bytecode:

      1> c(test).
      {ok,test}
      
    4. Compile whole module using the LLVM back-end:

      2> hipe:c(test, [to_llvm]).
      {ok,test}
      
    5. It works! :-)

      3> test:hello(world).
      Hello world!
      ok
      4>
      

Copyright and License

%CopyrightBegin%

Copyright Ericsson AB 2010. All Rights Reserved.

The contents of this file are subject to the Erlang Public License, Version 1.1, (the "License"); you may not use this file except in compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/.

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.

%CopyrightEnd%

Something went wrong with that request. Please try again.