OTP 25.0-rc2 (Release Candidate 2) is released
Frank Muller
frank.muller.erl@REDACTED
Fri Mar 25 20:29:46 CET 2022
Amazing work guys. Congratulations
> OTP 25-rc2
>
> Erlang/OTP 25-rc2 is the second release candidate of three before the OTP
> 25.0 release.
>
> The intention with this release is to get feedback from our users. All
> feedback is welcome, even if it is only to say that it works for you. We
> encourage users to try it out and give us feedback either by creating an
> issue here Issues · erlang/otp · GitHub
> <https://github.com/erlang/otp/issues> or by posting to Erlangforums
> <https://erlangforums.com> or the mailing list erlang-questions@REDACTED
> .
>
> All artifacts for the release can be downloaded from the Erlang/OTP Github
> <https://github.com/erlang/otp/releases/tag/OTP-25.0-rc2> release and you
> can view the new documentation at Erlang/OTP 25.0
> <https://erlang.org/documentation/doc-13.0-rc2/doc/>. You can also
> install the latest release using kerl <https://github.com/kerl/kerl> like
> this: kerl build 25.0-rc2 25.0-rc2.
>
> Erlang/OTP 25 is a new major release with new features, improvements as
> well as a few incompatibilities. Some of the new features are highlighted
> below.
>
> Many thanks to all contributors!
>
> Below are some highlights of the release:
>
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#highlights-rc2-2>Highlights
> rc2
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#stdlib-3>
> stdlib
>
> - New function filelib:ensure_path/1 will ensure that all directories
> for the given path exists
> - New functions groups_from_list/2 and groups_from_list/3 in the maps
> module
> - New functions uniq/1 uniq/2 in the lists module
>
>
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#compiler-kernel-stdlib-syntax_tools-4>compiler,
> kernel, stdlib, syntax_tools
>
> - Added support for selectable features as described in EEP-60
> <https://www.erlang.org/eeps/eep-0060>. Features can be
> enabled/disabled during compilation with options (ordinary and +term) to
> erlc as well as with directives in the file. Similar options can be
> used to erl for enabling/disabling features allowed at runtime. The
> new maybe expression EEP-49 <https://www.erlang.org/eeps/eep-0049> is
> fully supported as the feature maybe_expr.
>
> For more details about new features and potential incompatibilities see
>
> - https://erlang.org/download/otp_src_25.0-rc2.readme
>
>
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#highlights-rc1-5>Highlights
> rc1
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#erts-jit-6>erts
> & jit
>
> - The JIT now works for 64-bit ARM processors.
> - The JIT now does type-based optimizations based on type information
> in the BEAM files.
> - Improved the JIT’s support for external tools like perf and gdb,
> allowing them to show line numbers and even the original Erlang source code
> when that can be found.
>
>
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#erts-stdlib-kernel-7>erts,
> stdlib, kernel
>
> - Users can now configure ETS tables with the {write_concurrency, auto}
> option. This option forces tables to automatically change the number of
> locks that are used at run-time depending on how much concurrency is
> detected. The {decentralized_counters, true} option is enabled by
> default when {write_concurrency, auto} is active.Benchmark results
> comparing this option with the other ETS optimization options are available
> here: benchmarks
> <https://erlang.org/bench/ets_bench_result_lock_config.html>.
> - To enable more optimizations, BEAM files compiled with OTP 21 and
> earlier cannot be loaded in OTP 25.
> - The signal queue of a process with the process flag
> message_queue_data=off_heap has been optimized to allow parallel
> reception of signals from multiple processes. This can improve performance
> when many processes are sending in parallel to one process. See
> benchmark <https://erlang.org/bench/sigq_bench_result.html>.
> - The Erlang installation directory is now relocatable on the file
> system given that the paths in the installation’s RELEASES file are paths
> that are relative to the installations root directory.
> - A new option called short has been added to the functions
> erlang:float_to_list/2 and erlang:float_to_binary/2. This option
> creates the shortest correctly rounded string representation of the given
> float that can be converted back to the same float again.
> - Introduction of quote/1 and unquote/1 functions in the uri_string
> module - a replacement for the deprecated functions http_uri:encode
> and http_uri:decode.
> - The new module peer supersedes the slave module. The slave module is
> now deprecated and will be removed in OTP 27.
> - global will now by default prevent overlapping partitions due to
> network issues. This is done by actively disconnecting from nodes that
> reports that they have lost connections to other nodes. This will cause
> fully connected partitions to form instead of leaving the network in a
> state with overlapping partitions.It is possible to turn off the new
> behavior by setting the the kernel configuration parameter
> prevent_overlapping_partitions to false. Doing this will retain the
> same behavior as in OTP 24 and earlier.
> - The format_status/2 callback for gen_server, gen_statem and gen_event
> has been deprecated in favor of the new format_status/1 callback.The
> new callback adds the possibility to limit and change many more things than
> the just the state.
> - The timer module has been modernized and made more efficient, which
> makes the timer server less susceptible to being overloaded. The
> timer:sleep/1 function now accepts an arbitrarily large integer.
>
>
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#compiler-8>
> Compiler
>
> - The maybe ... end construction as proposed in EEP-49
> <https://www.erlang.org/eeps/eep-0049> has been implemented. It can
> simplify complex code where otherwise deeply nested cases would have to be
> used.To enable maybe, give the option {enable_feature,maybe_expr} to
> the compiler. The exact option to use will change in a coming release
> candidate and then it will also be possible to use from inside the module
> being compiled.
> - When a record matching or record update fails, a {badrecord,
> ExpectedRecordTag} exception used to be raised. In this release, the
> exception has been changed to {badrecord, ActualValue}, where
> ActualValue is the value that was found instead of the expected record.
> - Add compile attribute -nifs() to empower compiler and loader with
> information about which functions may be overridden as NIFs by
> erlang:load_nif/2.
> - Improved and more detailed error messages when binary construction
> with the binary syntax fails. This applies both for error messages in the
> shell and for erl_error:format_exception/3,4.
>
>
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#crypto-9>
> Crypto
>
> - Add crypto:hash_equals/2 which is a constant time comparision of
> hashvalues.
>
>
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#dialyzer-10>
> Dialyzer
>
> - Optimize operations in the erl_types module. Parallelize the
> Dialyzer pass remote.
> - Added the missing_return and extra_return options to raise warnings
> when specifications differ from inferred types. These are similar to, but
> not quite as verbose as overspecs and underspecs.
> - Dialyzer now better understands the types for min/2, max/2, and
> erlang:raise/3. Because of that, Dialyzer can potentially generate new
> warnings. In particular, functions that use erlang:raise/3 could now
> need a spec with a no_return() return type to avoid an unwanted
> warning.
>
>
> <https://erlangforums.com/t/otp-25-0-rc2-release-candidate-2-is-released/1246#misc-11>
> Misc
>
> - A new DEVELOPMENT HOWTO guide
> <https://github.com/erlang/otp/blob/master/HOWTO/DEVELOPMENT.md> has
> been added that describes how to build and test Erlang/OTP when fixing bugs
> or developing new functionality.
> - Testing has been added to the Github actions run for each opened PR
> so that more bugs are caught earlier when bug fixes and new features are
> proposed.
>
> For more details about new features and potential incompatibilities see
>
> - https://erlang.org/download/otp_src_25.0-rc1.readme
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20220325/7d4616fd/attachment.htm>
More information about the erlang-questions
mailing list