From 0118046f9bda8dcf3594184fa439b79267db8017 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 25 Mar 2019 18:25:04 +0100 Subject: Prepare release --- erts/doc/src/erl_nif.xml | 10 +- erts/doc/src/erlang.xml | 4 +- erts/doc/src/net.xml | 20 +-- erts/doc/src/notes.xml | 380 +++++++++++++++++++++++++++++++++++++++++++ erts/doc/src/socket.xml | 158 +++++++++--------- erts/emulator/beam/erl_nif.h | 2 +- erts/vsn.mk | 2 +- 7 files changed, 478 insertions(+), 98 deletions(-) (limited to 'erts') diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml index cf1994887a..492283d63d 100644 --- a/erts/doc/src/erl_nif.xml +++ b/erts/doc/src/erl_nif.xml @@ -1090,7 +1090,7 @@ typedef struct { - int + int enif_compare_pids(const ErlNifPid *pid1, const ErlNifPid *pid2) Compare two pids. @@ -1890,7 +1890,7 @@ enif_inspect_iovec(env, max_elements, term, &tail, &iovec); - int + int enif_is_pid_undefined(const ErlNifPid* pid) Determine if pid is undefined. @@ -2247,7 +2247,7 @@ enif_inspect_iovec(env, max_elements, term, &tail, &iovec); - ERL_NIF_TERM + ERL_NIF_TERM enif_make_monitor_term(ErlNifEnv* env, const ErlNifMonitor* mon) Make monitor term from the given monitor identifier. @@ -3306,7 +3306,7 @@ if (retval & ERL_NIF_SELECT_STOP_CALLED) { - void + void enif_set_pid_undefined(ErlNifPid* pid) Set pid as undefined. @@ -3369,7 +3369,7 @@ if (retval & ERL_NIF_SELECT_STOP_CALLED) { - ErlNifTermType + ErlNifTermType enif_term_type(ErlNifEnv *env, ERL_NIF_TERM term) Determine the type of a term. diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index 0d94f83493..e1179876a3 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -1297,7 +1297,7 @@ end - + Get value of the get_size option on a distribution channel

Returns the value of the get_size option on the distribution channel @@ -1428,7 +1428,7 @@ end - + Set value of the get_size option on a distribution channel

Sets the value of the get_size option on the distribution channel diff --git a/erts/doc/src/net.xml b/erts/doc/src/net.xml index b9e2cffce9..6fbc37076c 100644 --- a/erts/doc/src/net.xml +++ b/erts/doc/src/net.xml @@ -29,7 +29,7 @@ net.xml - net + net Network interface.

This module provides an API for the network interface.

@@ -72,8 +72,8 @@
- - + + Address-to-name transaltion.

Address-to-name translation in a protocol-independant manner.

@@ -84,10 +84,10 @@
- - - - + + + + Network address and service transation.

Network address and service translation.

@@ -100,7 +100,7 @@
- + Mappings between network interface names and indexes.

Mappings between network interface names and indexes.

@@ -108,7 +108,7 @@
- + Mappings between network interface index and names.

Mappings between network interface index and names.

@@ -116,7 +116,7 @@
- + Get network interface names and indexes.

Get network interface names and indexes.

diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 248b871ca0..dbe09dd04b 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,386 @@

This document describes the changes made to the ERTS application.

+
Erts 10.4 + +
Fixed Bugs and Malfunctions + + +

+ Do not allocate new bitstring/binary when an empty binary + is appended.

+

+ Own Id: OTP-15535 Aux Id: PR-2055

+
+ +

+ Document that process_info(_, current_function) + can return {current_function, undefined} in case + of execution of native code.

+

+ Own Id: OTP-15543 Aux Id: PR-2089

+
+ +

+ Fixed bug in ets:select, ets:match and + friends which could cause the table to remain fixated (as + if ets:safe_fixtable had been called) after the + call returned. This could happen for protected + tables if another concurrent running process transfered + table ownership to the process during its + ets:select/match call. Ownership can be transfered using + either ets:give_away or the heir table + option.

+

+ Own Id: OTP-15672

+
+ +

Fixed a Windows-specific bug in file:list_dir/1 + that caused it to misbehave on network shares.

+

+ Own Id: OTP-15693

+
+ +

+ Fixed bug when calling enif_whereis_* from NIF + resource destructor. Symtoms could be emulator crash or + hanging scheduler threads.

+

+ Own Id: OTP-15694 Aux Id: ERL-863

+
+ +

Fixed a bug in the error case of apply/3, where + the exception would erroneously have an empty argument + list in some cases.

+

+ Own Id: OTP-15698

+
+
+
+ + +
Improvements and New Features + + +

+ Add support for Erlang Distribution protocol to split the + payload of large signals into several fragments. This + allows other processes to communicate uninterrupted + during the transmission of these signals.

+

+ Own Id: OTP-13397

+
+ +

+ 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, but not the high level + gen-modules (gen_tcp, gen_udp and gen_sctp). 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.

+

+ Own Id: OTP-14831

+
+ +

Added NIF functions enif_set_pid_undefined, + enif_is_pid_undefined + and enif_compare_pids.

+

+ Own Id: OTP-15011 Aux Id: PR-2147

+
+ +

Underutilized memory segments (carriers) can now move + between all allocator instances, rather than just between + instances of the same type, which greatly reduces memory + usage in some scenarios.

+

+ Own Id: OTP-15063

+
+ +

The emulator will now mark free blocks in pooled + carriers with madvise(2) + MADV_FREE (or similar), + letting the OS reclaim the associated physical memory if + necessary.

+

+ Own Id: OTP-15075

+
+ +

+ New ERL_NIF_SELECT_CANCEL feature added to + enif_select in order to cancel (or "deselect") a + read or write event on a previously selected file + descriptor.

+

+ Own Id: OTP-15095

+
+ +

+ ETS option write_concurrency now also affects and + improves the scalability of ordered_set tables. + The implementation is based on a data structure called + contention adapting search tree, where the lock + granularity adapts to the actual amount of concurrency + exploited by the applications in runtime.

+

+ Own Id: OTP-15128

+
+ +

+ Build configuration of the crypto application has + been moved from the erts application into the + crypto application.

+

+ Own Id: OTP-15129

+
+ +

Anonymous functions that don't capture environment are + now created at load-time instead of in run-time.

+

+ Own Id: OTP-15195 Aux Id: PR-1812

+
+ +

+ Optimize updates of maps with identical keys and values. + E.g. in the example below the original Map will be reused + as the return of the update.

+

+ 1> Map = #{ a => b }. #{ a => b } 2> Map#{ a := b }.

+

+ Own Id: OTP-15211 Aux Id: PR-1889

+
+ +

+ Optimize binary:match/2 and + binary:matches/2 to use memchr internally.

+

+ Own Id: OTP-15238 Aux Id: PR-1803

+
+ +

+ The runtime system used to terminate when a message + larger than 2 Gb was passed over the distribution. The + send operation will now instead throw a + system_limit exeption.

+

+ Own Id: OTP-15261

+
+ +

+ Change the first module called by erts to be names + erl_init instead of otp_ring0. systools in sasl have been + updated to reflect this change.

+

+ Own Id: OTP-15336 Aux Id: PR-1825

+
+ +

+ Minor adjustments made to build system for parallel + configure.

+

+ Own Id: OTP-15340 Aux Id: OTP-14625

+
+ +

+ Two new NIF interface functions enif_select_read + and enif_select_write. They are similar to + existing enif_select but allow a custom event + message as argument.

+

+ Own Id: OTP-15349 Aux Id: PR-2084

+
+ +

The embedded copy of zlib has been updated from + 1.2.8 to 1.2.11.

+

Note that this copy is only used as a fallback when + the target platform doesn't provide any zlib + development libraries. If your system provides + zlib then it will be used even if it is older than + 1.2.11.

+

+ Own Id: OTP-15351 Aux Id: ERL-749

+
+ +

+ New NIF function enif_make_monitor_term.

+

+ Own Id: OTP-15362 Aux Id: PR-2127

+
+ +

Appending lists (The ++ operator) will now yield + properly on large inputs.

+

+ Own Id: OTP-15427

+
+ +

The length/1 BIF used to calculate the length + of the list in one go without yielding, even if the list + was very long. In OTP 22, length/1 will yield when + called with a long lists.

+

+ Own Id: OTP-15439

+
+ +

+ Processes sending messages are now punished with a + reduction cost based on message size. That is, a process + sending a large message will yield earlier than before.

+

+ Own Id: OTP-15513 Aux Id: ERL-773

+
+ +

The transitory emulator option +ztma true + (introduced in OTP 21.3) has been removed.

+

+ Own Id: OTP-15581 Aux Id: OTP-15580

+
+ +

In OTP 22, HiPE (the native code compiler) is not + fully functional. The reasons for this are:

+

There are new BEAM instructions for binary matching + that the HiPE native code compiler does not support.

+

The new optimizations in the Erlang compiler create + new combination of instructions that HiPE currently does + not handle correctly.

+

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.

+

+ Own Id: OTP-15596

+
+ +

+ Increased the 'creation' value from 2 to 32 bits. The + 'creation' value determines how many times a distributed + node can restart until pids, ports and references may + conflict with such identifiers from an earlier node + incarnation with the same name.

+

+ Own Id: OTP-15603

+
+ +

+ The termination behaviour of processes has changed to + allow processes to yield while sending link exit/monitor + down signals.

+

+ The erl crash dump as been expanded to now also include + processes that are termenating but have not yet + terminated.

+

+ Own Id: OTP-15610

+
+ +

+ The dist messages EXIT, EXIT2 and MONITOR_DOWN have been + updated with new versions that send the reason term as + part of the payload of the message instead of as part of + the control message.

+

+ The old versions are still present and can be used when + communicating with nodes that don't support the new + versions.

+

+ Own Id: OTP-15611

+
+ +

+ When sending messages, exit, exit2 and monitor down + distributed signals, the process sending will now yield + appropriately.

+

+ This means that a terminating process will yield and + possibly be suspended on busy distribution entries while + they are terminating. This means that any memory held by + such processes will not be released until after all + exit/monitor down signals have been sent.

+

+ Own Id: OTP-15612

+
+ +

+ All external pids/ports/refs created by + erlang:list_to_pid/port/ref debug functions now compare + equal to any other pid/port/ref with the same number from + that node.

+

+ Before this change they compared differently because the + node creation of the pid/port/ref did not compare equal + to any real pid/port/ref creation.

+

+ This will mostly effect pids/ports/refs typed in the + shell.

+

+ Own Id: OTP-15613

+
+ +

+ A new erlang:dist_ctrl_set_opt(DHandle, + get_size, Value) option has been added. + This option makes it possible to configure the + distribution channel identified by DHandle so that + erlang:dist_ctrl_get_data(DHandle) + also returns the size of the data to pass over the + channel.

+

+ Own Id: OTP-15617

+
+ +

The iolist_size/1 function is now yielding + which means that an Erlang/OTP system will be responsive + even if the applications running on the system frequently + call iolist_size/1 with large iolists.

+

+ Own Id: OTP-15631

+
+ +

+ A simple test suite for the net module has been added.

+

+ Own Id: OTP-15635

+
+ +

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.

+

+ Own Id: OTP-15640

+
+ +

The last call optimization is now applied to BIFs. + When calling a BIF in the tail position of a function, + the return address and stack frame will now be discarded + before calling the BIF. As consequence of this change, + the immediate caller of a tail-called BIF will no longer + be available in stack backtraces.

+

+ Own Id: OTP-15674 Aux Id: PR-2177

+
+ +

+ Fix GC bug where distributed messages in a processes + mailbox would cause extra GCs. This can be very expensive + if there many messages in the mailbox.

+

+ Own Id: OTP-15703

+
+
+
+ +
+
Erts 10.3.1
Fixed Bugs and Malfunctions diff --git a/erts/doc/src/socket.xml b/erts/doc/src/socket.xml index f6195a65b2..343b61d4aa 100644 --- a/erts/doc/src/socket.xml +++ b/erts/doc/src/socket.xml @@ -29,7 +29,7 @@ socket.xml - socket + socket Socket interface.

This module provides an API for the socket interface. @@ -256,8 +256,8 @@ - - + + Accept a connection on a socket.

Accept a connection on a socket.

@@ -269,7 +269,7 @@ - + Bind a name to a socket.

Bind a name to a socket.

@@ -282,7 +282,7 @@
- + Close a socket.

Closes the socket.

@@ -301,8 +301,8 @@
- - + + Initiate a connection on a socket.

This function connects the socket to the address @@ -311,13 +311,13 @@ - - - - - - - + + + + + + + Get an option on a socket.

Get an option on a socket.

@@ -337,7 +337,7 @@
- + Get an option on a socket.

Get an option on a socket.

@@ -359,8 +359,8 @@
- - + + Listen for connections on a socket.

Listen for connections on a socket.

@@ -368,9 +368,9 @@
- - - + + + Create an endpoint for communication.

Creates an endpoint (socket) for communication.

@@ -390,7 +390,7 @@
- + Get name of connected socket peer.

Returns the address of the peer connected to the socket.

@@ -398,11 +398,11 @@
- - - - - + + + + + Receive a message from a socket.

Receive a message from a socket.

@@ -413,12 +413,12 @@
- - - - - - + + + + + + Receive a message from a socket.

Receive a message from a socket.

@@ -437,12 +437,12 @@
- - - - - - + + + + + + Receive a message from a socket.

Receive a message from a socket.

@@ -473,10 +473,10 @@
- - - - + + + + Send a message on a socket.

Send a message on a connected socket.

@@ -484,10 +484,10 @@
- - - - + + + + Send a message on a socket.

Send a message on a socket. The destination, if needed @@ -508,10 +508,10 @@ - - - - + + + + Send a message on a socket.

Send a message on a socket, to the specified destination.

@@ -519,13 +519,13 @@
- - - - - - - + + + + + + + Set options on a socket.

Set options on a socket.

@@ -548,7 +548,7 @@
- + Set options on a socket.

Set options on a socket.

@@ -571,7 +571,7 @@
- + Shut down part of a full-duplex connection.

Shut down all or part of a full-duplex connection.

@@ -579,7 +579,7 @@
- + Get socket name.

Returns the current address to which the socket is bound.

@@ -587,25 +587,25 @@
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Report info about what the platform supports.

This function intends to retreive information about what the diff --git a/erts/emulator/beam/erl_nif.h b/erts/emulator/beam/erl_nif.h index cc389a093f..c250e8f683 100644 --- a/erts/emulator/beam/erl_nif.h +++ b/erts/emulator/beam/erl_nif.h @@ -69,7 +69,7 @@ * If you're not on the OTP team, you should use a placeholder like * erts-@MyName@ instead. */ -#define ERL_NIF_MIN_ERTS_VERSION "erts-@OTP-15095:OTP-15640@" +#define ERL_NIF_MIN_ERTS_VERSION "erts-10.4" /* * The emulator will refuse to load a nif-lib with a major version diff --git a/erts/vsn.mk b/erts/vsn.mk index 3942af7f78..224570fb09 100644 --- a/erts/vsn.mk +++ b/erts/vsn.mk @@ -18,7 +18,7 @@ # %CopyrightEnd% # -VSN = 10.3.1 +VSN = 10.4 # Port number 4365 in 4.2 # Port number 4366 in 4.3 -- cgit v1.2.3