Re: OTP 25.0-rc2 (Release Candidate 2) is released
Frank Muller <[email protected]> Fri, 25 Mar 2022 20:29:46 +0100
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CAFA6GnA31sMe+y_6+7Z=6NuWSzy2sZbXaAuF3TOC_n1QWEZsAQ@mail.gmail.com> |
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 [email protected] > . > > 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 > > >