From b02bb17204d297223d34782b15159cee68c811bd Mon Sep 17 00:00:00 2001 From: Bruce Yinhe Date: Mon, 6 Feb 2017 16:35:04 +0100 Subject: Update README.md --- README.md | 103 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 57 insertions(+), 46 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 8c77f0b39a..ccfce03a96 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,78 @@ -Erlang/OTP -========== +# [Erlang/OTP](https://www.erlang.org) -**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. +**Erlang** is a programming language and runtime system for building massively scalable soft real-time systems with requirements on high availability. -**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. +**OTP** is a set of Erlang libraries, which consists of the Erlang runtime system, a number of ready-to-use components mainly written in Erlang, and a set of design principles for Erlang programs. [Learn more about Erlang and OTP](http://erlang.org/doc/system_architecture_intro/sys_arch_intro.html). -ERTS and BEAM -------------- -**BEAM** is the name of the virtual machine where all Erlang code is executed. -Every compiled Erlang file has the suffix .beam. The virtual machine -is sometimes referred to as the emulator. +[Learn how to program in Erlang](http://learnyousomeerlang.com/content). -**ERTS** is the Erlang Runtime System where the BEAM, kernel and -standard libraries amongst others are included. +## Examples +There are several examples [on the website](http://erlang.org/faq/getting_started.html) to help you get started. The below example defines a function `world/0` that prints "Hello, world" in the Erlang shell: +```erlang +-module(hello). +-export([world/0]). -More information can be found at [erlang.org] [1]. +world() -> io:format("Hello, world\n"). +``` +Save the file as `hello.erl` and run `erl` to enter the Erlang shell to compile the module. +``` +Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace] -Building and Installing ------------------------ +Eshell V8.2 (abort with ^G) +1> c(hello). +{ok,hello} +2> hello:world(). +Hello, world +ok +``` +Learn more about the Erlang syntax of [modules](http://erlang.org/doc/reference_manual/modules.html), [functions](http://erlang.org/doc/reference_manual/functions.html) and [expressions](http://erlang.org/doc/reference_manual/expressions.html) on [Erlang.org](https://www.erlang.org). -Information on building and installing Erlang/OTP can be found -in the [$ERL_TOP/HOWTO/INSTALL.md] [5] document. +## Installation +### Binary Distributions +Erlang/OTP is available as pre-built binary packages by most OS package managers. +``` +apt-get install erlang +``` +### Compiling from source -Contributing to Erlang/OTP --------------------------- +To compile Erlang from source, run the following commands. The complete building and installation instructions [can be found here](HOWTO/INSTALL.md). +``` +git clone https://github.com/erlang/otp.git +cd otp +./otp_build autoconf +./configure +make +make install +``` +Alternatively, you can use [Kerl](https://github.com/kerl/kerl), a script that lets you easily build Erlang with a few commands. -Here are the [instructions for submitting patches] [2]. +## Bug Reports -In short: +Please visit [bugs.erlang.org](https://bugs.erlang.org/issues/?jql=project%20%3D%20ERL) for reporting bugs. The instructions for submitting bugs reports [can be found here](https://github.com/erlang/otp/wiki/Bug-reports). -* Submit your patch by opening a new Pull Request. +### Security Disclosure -* Go to the JIRA issue tracker at [bugs.erlang.org] [7] to - see reported issues which you can contribute to. - Search for issues with the status *Help Wanted*. +We take security bugs in Erlang/OTP seriously. Please disclose the issues regarding security by sending an email to security@erlang.org and not by creating a public issue. +## Contributing -Bug Reports --------------------------- +We are grateful to the community for contributing bug fixes and improvements. Read below to learn how you can take part in improving Erlang/OTP. We appreciate your help! -Please look at the [instructions for submitting bugs reports] [6]. +### Contribution Guide +Read our [contribution guide](https://github.com/erlang/otp/wiki/contribution-guidelines) to learn about our development process, how to propose fixes and improvements, and how to test your changes to Erlang/OTP before submitting a pull request. -Copyright and License ---------------------- +### Help Wanted + +We have a list of [Help Wanted](https://bugs.erlang.org/issues/?jql=status%20%3D%20%22Help%20Wanted%22) bugs that we would appreciate external help from the community. This is a great place to get involved. + +## License + +Erlang/OTP is released under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0). > %CopyrightBegin% > -> Copyright Ericsson AB 2010-2014. All Rights Reserved. +> Copyright Ericsson AB 2010-2017. All Rights Reserved. > > Licensed under the Apache License, Version 2.0 (the "License"); > you may not use this file except in compliance with the License. @@ -70,12 +88,5 @@ Copyright and License > > %CopyrightEnd% - - - [1]: http://www.erlang.org - [2]: http://wiki.github.com/erlang/otp/contribution-guidelines - [3]: http://www.erlang.org/static/doc/mailinglist.html - [4]: http://erlang.github.com/otp/ - [5]: HOWTO/INSTALL.md - [6]: https://github.com/erlang/otp/wiki/Bug-reports - [7]: http://bugs.erlang.org +## Awesome-Erlang +You can find more projects, tools and articles related to Erlang/OTP on the [awesome-erlang list](https://github.com/drobakowski/awesome-erlang). Add your project there. -- cgit v1.2.3