Subject: CVS commit: pkgsrc/lang
From: Nia Alarie
Date: 2019-08-01 13:43:01
Message id: 20190801114301.38A16FBF4@cvs.NetBSD.org

Log Message:
erlang: Update to 22.0.7

Erlang/OTP 22 is a new major release with new features and improvements as well \ 
as incompatibilities.

For a deeper dive into the hightligts of the OTP 22 release, you can read our \ 
blog here:

http://blog.erlang.org/OTP-22-Highlights/

Potential Incompatibilities

    gen_* behaviours: If logging of the last N messages through sys:log/2,3 is \ 
active for the server, this log is included in the terminate report.
    reltool: A new element, Opts, can now be included in a rel tuple in the \ 
reltool release specific configuration format: {rel, Name, Vsn, RelApps, Opts}.
    All external pids/ports/refs created by erlang:list_to_pid and similar \ 
functions now compare equal to any other pid/port/ref with same number from that \ 
node.
    The old legacy erl_interface library is deprecated as of OTP 22, and will be \ 
removed in OTP 23. This does not apply to the ei library.
    VxWorks is deprecated as of OTP 22 and will be removed in OTP 23.

Erts:

    Support for Erlang Distribution protocol to split the payload of large \ 
signals into several fragments.
    ETS option write_concurrency now also effects and improves scalability of \ 
ordered_set tables.
    The length/1 BIF used to calculate the length of the list in one go without \ 
yielding, even if the list was very long. Now it yields when called with long \ 
lists.
    A new (still experimental) module socket is introduced. It is implemented as \ 
a NIF and the idea is that it shall be as "close as possible" to the \ 
OS level socket interface.
    Added the NIF function enif_term_type, which helps avoid long sequences of \ 
enif_is_xyz by returning the type of the given term. This is especially helpful \ 
for NIFs that serialize terms, such as JSON encoders, where it can improve both \ 
performance and readability.

Compiler:

    The compiler has been rewritten to internally use an intermediate \ 
representation based on Static Single Assignment (SSA). The new intermediate \ 
representation makes more optimizations possible.
        The binary matching optimizations are now applicable in many more \ 
circumstances than before.
        Type optimizations are now applied across local function calls, and will \ 
remove a lot more redundant type tests than before.
    All compiler options that can be given in the source file can now be given \ 
in the option list on the command line for erlc.
    In OTP 22, HiPE (the native code compiler) is not fully functional. The \ 
reasons for this are new BEAM instructions for binary matching that the HiPE \ 
native code compiler does not support. If erlc is invoked with the +native \ 
option, and if any of the new binary matching instructions are used, the \ 
compiler will issue a warning and produce a BEAM file without native code.

Standard libraries:

    Cover now uses the counters module instead of ets for updating counters. The \ 
new function cover:local_only/0 allows running Cover in a restricted but faster \ 
local-only mode. The increase in speed will vary depending on the type of code \ 
being cover-compiled, as an example the compiler test suite runs more than twice \ 
as fast with the new Cover.
    A simple socket API is provided through the socket module. This is a low \ 
level API that does *not* replace gen_[tcp|udp|sctp]. It is intended to \ 
*eventually* replace the inet driver. It also provides a basic API that \ 
facilitates the implementation of other protocols than TCP, UDP and SCTP. Known \ 
issues are; No support for the Windows OS (currently), a small term leakage. \ 
This feature will be classed as experimental in OTP 22.
    SSL: now uses the new logger API, including log levels and verbose debug logging.
    SSL: Basic support for TLS 1.3 Server for experimental use.
    crypto: The new hash_info/1 and cipher_info/1 functions returns maps with \ 
information about the hash or cipher in the argument.

Files:
RevisionActionfile
1.1removepkgsrc/lang/erlang/patches/patch-erts_configure.in
1.1addpkgsrc/lang/erlang/patches/patch-erts_emulator_nifs_common_net__nif.c
1.4modifypkgsrc/lang/erlang/patches/patch-erts_lib__src_common_erl__printf.c
1.31modifypkgsrc/lang/erlang-man/distinfo
1.26modifypkgsrc/lang/erlang-man/PLIST
1.31modifypkgsrc/lang/erlang-doc/distinfo
1.32modifypkgsrc/lang/erlang-doc/PLIST
1.13modifypkgsrc/lang/erlang/versions.mk
1.74modifypkgsrc/lang/erlang/distinfo
1.38modifypkgsrc/lang/erlang/PLIST
1.44modifypkgsrc/lang/erlang/Makefile.versions