Open Source Erlang/OTP can be downloaded from the open source Erlang site. The site provides full source code as well as binaries for Windows machines. This is probably the best place to go to make sure you're getting the latest version.
The Debian Distribution of GNU/Linux includes various versions Erlang in different releases, under interpreters.
Precompiled ready-to-go installers for a variety of platforms are available from the Comprehensive Erlang Archive Network (CEAN). CEAN also provides dozens of Erlang applications.
Various versions of Erlang appear on various Walnut Creek FreeBSD CDs.
Users within Ericsson can use Ericsson's internally supported version of Erlang from www.erlang.se.
R12B-1 (``Release 12B, patchlevel 1'') was released in February 2008. As further patches are released, the "current" version becomes R12B-2, R12B-3 etc. This curious version numbering scheme is also used on Ericsson mobile phones, for instance my phone is an R1F phone...
The next major release is expected to be R13. Major releases typically come somewhere between six and twelve months apart.
Components of Erlang have their own version numbers, for instance the virtual machine in R7B-0 has version 5.0.1 (yes, this is a bit confusing; see also).
The Open Source Erlang Licence is essentially the Mozilla (Netscape) Public Licence with a few modifications to make it compatible with Swedish law.
As far as I understand, this means you can obtain Erlang for free, use it to build cool systems and sell them without Ericsson coming around to charge you money. For an authoritative statement, you'll need a lawyer.
The language itself is best described by the Language Reference Manual.
The documentation delivered with open source erlang as both man pages and html is the most up-to-date reference to both the OTP libraries and Erlang itself. On unix systems, the easiest way to read the man pages is erl -man gen_tcp .
Programming Erlang: Software for a Concurrent World (Joe Armstrong) is the book about Erlang, published in 2007. You can buy it on paper from Amazon and other online bookstores, or directly from the publisher.
Erlang Programmation(Mickaël Rémond) is an alternative if your French is up to it, it can be ordered from the publisher or via Amazon.
Concurrent Programming in Erlang (2nd. Edition) (Armstrong, Virding, Wikström & Williams) was written by the original authors of Erlang itself. The first half of the book can be downloaded for free, Barnes and Noble and Amazon carry it, the ISBN is 013508301X. The book is fairly out of date, but if you also read the Erlang language reference you'll have covered it all.
Maurice Castro's book, Erlang in Real Time, grew from lecture notes and is a good introduction to the language.
The Standard Erlang spec aims to define the Erlang language. There is currently no compiler which actually implements everything exactly the way Standard Erlang specifies. This specification is quite precise; it's intended as a reference, not a bedtime read! Compiler and tool implementors will find this useful, as will advanced Erlang programmers.
Core Erlang is an effort to define an Erlang-like language which is nicer to compilers and language tools and can be automatically generated from Erlang. Erlang compilers from R10 onwards can generate Core Erlang from normal Erlang code. They can also generate .beam files from Core Erlang.
The proceedings from the Erlang User Conferences contain many interesting articles. The proceedings for each of the yearly conferences since 1999 are online.
The internals of the BEAM file format are described on Björn's homepage . Eventually this will/might include a description of the virtual machine's instructions. Björn also includes some benchmarks comparing different versions of the BEAM machine. You may also want to take a look at the beam_lib module.
Joe Armstrong's Thesis, Making reliable distributed systems in the presence of software errors contains a lot of interesting information, including a compact overview of the language, a number of case studies and some discussion of the language's evolution, somewhat similar to Bjarne Stroustrup's Design and Evolution of C++.
This Masters Thesis contains a good overview of some of Erlang's implementation aspects, including memory allocation (section 7).
Another Masters Thesis contains a good overview of Erlang's distribution mechanisms (Section 5).
Mnesia's internals are described on Hĺkan's slides
The (Ex-Ericsson) computer science laboratory has a collection of papers about Erlang-related topics.
The source-code release includes a directory with some of the internal build documentation in the subdirectory erts/emulator/internal_doc/ .
Erlang-projects has a collection of papers written at the now-defunct SERC division of RMIT.
The Trapexit wiki has a collection of HowTo documents showing how to do all manner of things from how to write a webserver in Erlang to how to write an Erlang Port program.
The standard text about data structures in functional languages is Purely Functional Data Structures by Chris Okasaki. The parts about laziness (about half of the book) do not apply to Erlang, but are interesting nonetheless. An early version of the book is available online, the book itself is available from many online booksellers.
Structure and Interpretation of Computer Programs is a standard introductory text to functional programming. It is available both on paper and online
(Suggestions for further books to for this section are welcome. Mail the maintainer: matthias@corelatus.com.)
The Jungerl is a public CVS server which provides access to more than fifty Erlang contributions, including an SSH client and the Erlang wiki.
Apart from the Jungerl, there is a score of Erlang-based projects on sourceforge.
The source to the VM and OTP libraries is currently not available from a public CVS server. Since full source is freely downloadable, it would be feasible for someone to maintain such a server and keep it in sync with official releases from the OTP group. So far, nobody has felt their need for CVS was large enough to justify the amount of work required. The OTP group does not provide such a server because they use clearcase for version control. Marrying clearcase with CVS is not easy.
When you write Erlang code you want to share, there are quite a number of ways to share it. The place to announce such things is the Erlang Questions mailing list, or, in the case of patches, the Erlang Patches mailing list. Where you put the actual code is up to you.
If your code is a modification to an existing part of OTP, attach a patch to your post to the erlang-patches mailing list. There's some useful general advice on making and sharing patches here. The OTP group is quite conservative about including such code, especially if it requires new test cases to be written, so expect it to take a long time (months or years) for your code to find its way into the official distribution.
If your code is a new application or library, some common ways of distributing it are:
Even though Erlang is a fairly mature language with a large established code-base, changes and enhancements are still being incorporated. There is a newly established mechanism called the Erlang Enhancement Proposal which formalises the process.
There are several mailing lists devoted to Erlang:
This is intended for general discussion about Erlang. Anyone can send mail to erlang-questions@erlang.org, and anyone can subscribe.
This list carries announcements about new releases of Erlang, patches, etc. All posts to erlang-announce also appear in erlang-questions.
This list is for patches to the Erlang distribution. At the time of writing, it is not archived.
This list is for bug reports.
The mailing lists are also accessible via web based forums.
Every year (in September or October) there is an Erlang user conference. The proceedings are archived. Other conferences about functional programming are also attended by a few Erlang users. The Principles, Logics, and Implementations of High-Level Programming Languages usually includes an Erlang workshop. The ACM Sigplan Conference includes an Erlang workshop too.
The erlang-questions list is archived on the Erlang website.
The GMANE news/mail gateway acts as both an archive and a forum-style way of using the mailing list. It has Erlang Questions and Erlang Patches.
The trapexit site also has a forum interface to the mailing list.
Erlang-projects aims to track Erlang use in projects.
trapexit is a grab-bag of erlang news, erlang-related forums and a bidirectional forum/mailing list gateway.
planet erlang aggregates a couple of dozen erlang-related RSS feeds.
The Ericsson site for all matters related to Ericsson-internal use of Erlang also contains information about internal training and consulting.
The mozilla dmoz has a directory of Erlang links.
Posting a short note to erlang-questions@erlang.org is probably a good start, especially if the subject-line clearly identifies the post as a job request/advert. Some consulting companies have posted there in the past.
Erlang-consulting.com have a recruitment page
Several consultant groups have Erlang-certified people in Sweden, including ENEA data and Sjöland & Thyselius. erlang-consulting.com take assignments worldwide. Process-one are based in France.
If you want to be listed here, send some mail to matthias@corelatus.com.
Kontakten (Contact), an Ericsson-internal newspaper, may also be useful as it carries many job ads.