4  Upcoming Potential Incompatibilities

4 Upcoming Potential Incompatibilities

This document lists planned upcoming potential incompatibilities in Erlang/OTP.

In OTP 25, more distribution flags will become mandatory. That is, Erlang nodes will refuse to connect to nodes not implementing all of the mandatory distribution flags. If you implement the Erlang distribution protocol yourself, you will need to implement support for all mandatory distribution flags in order to communicate with Erlang nodes running OTP 25.

The following distribution flags will become mandatory in OTP 25:

DFLAG_BIT_BINARIES
Support for bitstrings.
DFLAG_EXPORT_PTR_TAG
Support for external funs (fun Module:Name/Arity).
DFLAG_MAP_TAGS
Support for maps.
DFLAG_NEW_FLOATS
Support for the new encoding of floats.
DFLAG_FUN_TAGS
Support for funs, but only in the new format (NEW_FUN_EXT) because DFLAG_NEW_FUN_TAGS is also mandatory.

As of OTP 26, the distribution flag DFLAG_V4_NC will become mandatory. If you implement the Erlang distribution protocol yourself, you will need to implement support for DFLAG_V4_NC in order to communicate with Erlang nodes running OTP 26.

As of OTP 26, the new link protocol will become mandatory. That is, Erlang nodes will then refuse to connect to nodes not implementing the new link protocol. If you implement the Erlang distribution yourself, you are, however, encouraged to implement the new link protocol as soon as possible since the old protocol can cause links to enter an inconsistent state.

As of OTP 26, the functions erlang:term_to_binary/1,2 and erlang:term_to_iovec/1,2 will encode all atoms as UTF-8 by default. The current default behavior is to encode atoms as Latin-1 if possible.

If you implement your own decoding of the Erlang external format you must either: