NEWS

Erlang/OTP 18.0 has been released
Written by Henrik, 24 Jun 2015

Erlang/OTP 18.0 is a new major release with new features, quite a few (characteristics) improvements, as well as some incompatibilities. 
A non functional but major change this release is the change of license to Apache License 2.0.

Some highlights of the release are:
 

  • Starting from 18.0 Erlang/OTP is released under the Apache License 2.0
  • erts: The time functionality has been extended. This includes a new API for 
    time, as well as "time warp" modes which alters the behavior when system time changes. You are strongly encouraged to use the new API instead of the old API based on erlang:now/0. erlang:now/0 has been deprecated since it is a scalability bottleneck. 
    For more information see the Time and Time Correction chapter of the ERTS User's Guide. Here is a linkhttp://www.erlang.org/doc/apps/erts/time_correction.html
  • erts: Beside the API changes and time warp modes a lot of scalability and performance improvements regarding time management has been made. Examples are: 
    • scheduler specific timer wheels, 
    • scheduler specific BIF timer management, 
    • parallel retrieval of monotonic time and system time on OS:es that support it.
  • erts: The previously introduced "eager check I/O" feature is now enabled by default.
  • erts/compiler: enhanced support for maps. Big maps new uses a HAMT (Hash Array Mapped Trie) representation internally which makes them more efficient. There is now also support for variables as map keys.  
  • dialyzer: The -dialyzer() attribute can be used for suppressing warnings 
    in a module by specifying functions or warning options. 
    It can also be used for requesting warnings in a module.
  • ssl: Remove default support for SSL-3.0 and added padding check for TLS-1.0 due to the Poodle vulnerability.
  • ssl: Remove default support for RC4 cipher suites, as they are consider too weak.
  • stdlib: Allow maps for supervisor flags and child specs
  • stdlib: New functions in ets:
    • take/2. Works the same as ets:delete/2 but
                also returns the deleted object(s).
    • ets:update_counter/4 with a default object as
                argument

You can find the Release Notes with more detailed info at

http://www.erlang.org/download/otp_src_18.0.readme

IMPORTANT INFO when building your own code with this OTP release

Since erlang:now is deprecated your build might stop if you are using
"warnings as errors".
To let the build through you can turn of warnings for deprecated functions
by setting an environment variable like this:
  export ERL_COMPILER_OPTIONS=nowarn_deprecated_function

 

You find the source code at github.com in the official Erlang repository.

Git tag OTP-18.0

https://github.com/erlang/otp/tree/OTP-18.0

You can also read the documentation on-line here: 
(see the Release Notes mentioned above for release notes which 
are not updated in the doc, but the new functionality is)

http://www.erlang.org/doc/

We also want to thank those that sent us patches, suggestions and bug reports.

The Erlang/OTP Team at Ericsson