サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
www.erlang.org
Finally Erlang/OTP 24 is here! A release that for me has been about 10 years in the making. As is tradition by now, this blog post will go through the additions to Erlang/OTP that I am most excited about! Erlang/OTP 24 includes contributions from 60+ external contributors totalling 1400+ commits, 300+ PRs and changing 0.5 million(!) lines of code. Though I’m not sure the line number should count a
Message passing has always been central to Erlang, and while reasonably well-documented we’ve avoided going into too much detail to give us more freedom when implementing it. There’s nothing preventing us from describing it in a blog post though, so let’s have a closer look! Erlang processes communicate with each other by sending each other signals (not to be confused with Unix signals). There are
As long as Erlang has existed, there has always been the need and the ambition to make it faster. This blog post is a history lesson that outlines the major Erlang implementations and attempts to improve the performance of Erlang. The Prolog interpreter # The first version of Erlang was implemented in Prolog in 1986. That version of Erlang was too slow for creating real applications, but it was us
Now that we’ve had a look at BEAM and the interpreter we’re going to explore one of the most exciting additions in OTP 24: the just-in-time compiler, or “JIT” for short. If you’re like me the word “JIT” probably makes you think of Hotspot (Java) or V8 (Javascript). These are very impressive pieces of engineering but they seem to have hijacked the term; not all JITs are that sophisticated, nor do t
This post is a brief primer on BEAM, the virtual machine that executes user code in the Erlang Runtime System (ERTS). It’s intended to help those new to BEAM follow an upcoming series of posts about the JIT in OTP 24, leaving implementation details for later. BEAM is often confused with ERTS and it’s important to distinguish between the two; BEAM is just the virtual machine and it has no notion of
OTP 22 has just been released. It has been a long process with three release candidates before the final release. We decided this year to try to get one month more testing of the major release and I think that the extra time has paid off. We’ve received many bug reports from the community about large and small bugs that our internal tests did not find. This blog post will describe some highlights
OTP 21 # Erlang/OTP 21 is a new major release with new features, improvements as well as incompatibilities. Potential Incompatibilities # All Corba applications are now moved from the OTP repository A new Corba repository will be created https://github.com/erlang New applications ftp and tftp, moved from inets ssl no longer supports 3_DES cipher suites or RSA-key exchange cipher suites by default
This blog post is a brief history lesson about the Erlang compiler for the BEAM machine. To provide some context, there will first be a quick look at the abstract machines for Erlang. A brief overview of the early Erlang implementations # The Prolog interpreter # The first version of Erlang was implemented in Prolog in 1986. That version of Erlang was used to find out which features of the languag
This blog post is the first about the Core Erlang format. In this blog post, we introduce the Core Erlang format through examples that compare Erlang code to the corresponding Core Erlang code. I used the following command to translate my example module to Core Erlang code: $ erlc +time +to_core core_example.erl Compiling "core_example" parse_module : 0.000 s 10.8 kB transform_module : 0.000 s 10.
Erlang/OTP 27 is finally here. This blog post will introduce the new features that we are most excited about. Read More
Erlang/OTP 20.1 is the first service release for the 20 major release. The service release contains mostly bug fixes and characteristics improvements but also some new features. Some highlights for 20.1 crypto, public_key: Extend crypto and public_key functions sign and verify with: support for RSASSA-PS padding for signatures and for saltlength setting X9.31 RSA padding. sha, sha224, sha256, sha3
Erlang/OTP 20.0 is a new major release with new features, quite a few (characteristics) improvements, as well as a few incompatibilities. There are only minor changes compared to the second release candidate, some of them listed below: ERTS: * erlang:term_to_binary/1 changed the encoding of all atoms from ATOM_EXT to ATOM_UTF8_EXT and SMALL_ATOM_UTF8_EXT. This is now changed so that only atoms act
View Source Distributed Erlang Distributed Erlang System A distributed Erlang system consists of a number of Erlang runtime systems communicating with each other. Each such runtime system is called a node. Message passing between processes at different nodes, as well as links and monitors, are transparent when pids are used. Registered names, however, are local to each node. This means that the no
View Source gen_tcp (kernel v10.0.1) Interface to TCP/IP sockets. This module provides functions for communicating over TCP/IP protocol sockets. The following code fragment is a simple example of a client connecting to a server at port 5678, transferring a binary, and closing the connection: client() -> SomeHostInNet = "localhost", % to make it runnable on one machine {ok, Sock} = gen_tcp:connect(
Advanced Topics Scope of variables Catch/throw Use of Catch and Throw The module error_handler The Code loading mechanism Ports Port Protocols Binaries References Space saving optimisations Last Call Optimisation Process Dictionary Obtaining System Information Scope of Variables Variables in a clause exist between the point where the variable is first bound and the last textual reference to the va
Some highlights of the release are: * compiler, stdlib: * New preprocessor macros ?FUNCTION_NAME, ?FUNCTION_ARITY New preprocessor directives -error(Term) and -warning(Term) to cause a compilation error or warning, respectively. gen_statem a new state machine behavior mnesia_ext: plugin of external storage solutions to mnesia crypto: uses EVP interface in OpenSSL resulting in generally better perf
View Source NIFs This section outlines an example of how to solve the example problem in Problem Example by using Native Implemented Functions (NIFs). NIFs are a simpler and more efficient way of calling C-code than using port drivers. NIFs are most suitable for synchronous functions, such as foo and bar in the example, that do some relatively short calculations without side effects and return the
Expand All Contract All Chapters Introduction Top of chapter Scope Prerequisites Overview Top of chapter The Mnesia Database Management System Getting Started Top of chapter Starting Mnesia for the First Time Example Build a Mnesia Database Top of chapter Define a Schema Data Model Start Mnesia Create Tables Transactions and Other Access Contexts Top of chapter Transaction Properties Locking Dirty
View Source Introduction Purpose "Premature optimization is the root of all evil" (D.E. Knuth) Efficient code can be well-structured and clean, based on a sound overall architecture and sound algorithms. Efficient code can be highly implementation-dependent code that bypasses documented interfaces and takes advantage of obscure quirks. Ideally, your code only contains the first type of efficient c
December 8th 2015 marks the seventeenth year since Erlang/OTP was released as open source. What is Erlang/OTP and why was Erlang Open Sourced? The Erlang programming language was created and implemented in the Ericsson Computer Science Laboratory, headed by Bjarne Däcker. Later, a separate organisation was created within Ericsson - the OTP unit. Its aim was to commercialise and stabilise the imple
View Source External Term Format Introduction The external term format is mainly used in the distribution mechanism of Erlang. As Erlang has a fixed number of types, there is no need for a programmer to define a specification for the external format used within some application. All Erlang terms have an external representation and the interpretation of the different terms is application-specific.
Erlang/OTP 18.1 is a service release on the 18 track with mostly bug fixes, but is does contain a number of new features and characteristics improvements as well. Some highlights of the release are: ssl: Add possibility to downgrade an SSL/TLS connection to a tcp connection, and give back the socket control to a user process. ssh: The following new key exchange algorithms are implemented:’ecdh-sha
epmd [-d|-debug] [DbgExtra...] [-address Addresses] [-port No] [-daemon] [-relaxed_command_check] Starts the port mapper daemon. epmd [-d|-debug] [-port No] [-names|-kill|-stop Name] Communicates with a running port mapper daemon. This daemon acts as a name server on all hosts involved in distributed Erlang computations. When an Erlang node starts, the node has a name and it obtains an address fro
View Source escript (stdlib v6.0.1) This module provides functions to create and inspect escripts. See the escript program documentation for more details on how to use escripts.
View Source HTTP server Configuration The HTTP server, also referred to as httpd, handles HTTP requests as described in RFC 2616 with a few exceptions, such as gateway and proxy functionality. The server supports IPv6 as long as the underlying mechanisms also do so. The server implements numerous features, such as: Secure Sockets Layer (SSL)Erlang Scripting Interface (ESI)Common Gateway Interface
View Source Distribution Protocol This description is far from complete. It will be updated if the protocol is updated. However, the protocols, both from Erlang nodes to the Erlang Port Mapper Daemon (EPMD) and between Erlang nodes are stable since many years. The distribution protocol can be divided into four parts: Low-level socket connection (1)Handshake, interchange node name, and authenticate
View Source ets (stdlib v6.0.1) Built-in term storage. This module is an interface to the Erlang built-in term storage BIFs. These provide the ability to store very large quantities of data in an Erlang runtime system, and to have constant access time to the data. (In the case of ordered_set, see below, access time is proportional to the logarithm of the number of stored objects.) Data is organize
View Source erl_nif API functions for an Erlang NIF library. Description A NIF library contains native implementation of some functions of an Erlang module. The native implemented functions (NIFs) are called like any other functions without any difference to the caller. A NIF library is built as a dynamically linked library file and loaded in runtime by calling erlang:load_nif/2. Warning Use this
View Source Applications It is recommended to read this section alongside app and application in Kernel. Application Concept After creating code to implement a specific functionality, you might consider transforming it into an application — a component that can be started and stopped as a unit, as well as reused in other systems. The steps to create an application is as follows: Create an applicat
次のページ
このページを最初にブックマークしてみませんか?
『Index - Erlang/OTP』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く