Erlang/OTP 17.0 is a new major release with new features, characteristics improvements, as well as some minor incompatibilities. See the README file and the documentation for more details.
Some highlights of the release are:
Erlang/OTP has been ported to the realtime operating system OSE. Maps, a new dictionary data type (experimental) A more natural mapping from ASN.1 OCTET STRING and BIT STRING to Erlang types, and other ASN.1 improvements and optimizations The {active, N} socket option for TCP, UDP, and SCTP A new (optional) scheduler utilization balancing mechanism Migration of memory carriers has been enabled by default on all ERTS internal memory allocators Increased garbage collection tenure rate Experimental "dirty schedulers" functionality Funs can now be given names Miscellaneous unicode support enhancements A new version scheme for OTP its applications has been introduced 0238デフォルトの名無しさん2014/04/22(火) 22:08:27.64ID:PAf5/uoA Elixir0.13.0も出ました
Atoms are not garbage-collected. Once an atom is created, it is never removed. The emulator terminates if the limit for the number of atoms (1,048,576 by default) is reached.
Therefore, converting arbitrary input strings to atoms can be dangerous in a system that runs continuously. If only certain well-defined atoms are allowed as input, list_to_existing_atom/1 can be used to to guard against a denial-of-service attack. (All atoms that are allowed must have been created earlier, for example, by simply using all of them in a module and loading that module.)
Using list_to_atom/1 to construct an atom that is passed to apply/3 as follows, is quite expensive and not recommended in time-critical code: