Erlang/OTP 20.0-rc1 is available for testing

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Erlang/OTP 20.0-rc1 is available for testing

Kenneth Lundin-5

OTP 20 Release Candidate 1

This is the first of two release candidates before the OTP 20 release in June 2017.

The intention with this release is that you as users try it and give us feedback if something does not work as expected. Could be a bug, an unexpected incompatibility, a significant change of characteristics in negative direction, etc.

Erlang/OTP 20.0 is a new major release with new features, quite a few (characteristics) improvements, as well as a few incompatibilities.

Here are some of the most important news:

Potential Incompatibilities

  • ERTS:

    • The non SMP Erlang VM is deprecated and not built by default
    • Remove deprecated erlang:hash/2
    • erlang:statistics/1 with scheduler_wall_time now also includes info about dirty CPU schedulers.
    • The new purge strategy introduced in OTP 19.1 is mandatory and slightly incompatible for processes holding funs
      see erlang:check_process_code/3.
    • The NIF library reload is not supported anymore.
  • Asn1: Deprecated module and functions removed (asn1rt, asn1ct:encode/3 and decode/3)

  • Ssh: client only option in a call to start a daemon will now fail

Highlights

Erts:

  • Dirty schedulers enabled and supported on VM with SMP support.
  • support for “dirty” BIFs and “dirty” GC.
  • erlang:garbage_collect/2 for control of minor or major GC
  • Erlang literals are no longer copied when sending messages.
  • Improved performance for large ETS tables, >256 entries (except ordered_set)
  • erlang:system_info/1 atom_count and atom_limit
  • Reduced memory pressure by converting sub-binaries to heap-binaries during GC
  • enif_select, map an external event to message

Compiler:

  • Code generation for complicated guards is improved.
  • Warnings for repeated identical map keys. #{'a'=>1, 'b'=>2, 'a'=>3} will warn for the repeated key a.
  • By default there is now a warning when export_all is used. Can be disabled
  • Pattern matching for maps is optimized
  • New option deterministic to omit path to source + options info the BEAM file.
  • Atoms may now contain arbitrary unicode characters.
  • compile:file/2 has an option to include extra chunks in the BEAM file.

Misc other applications

  • Unnamed ets tables optimized
  • A new event manager to handle a subset of OS signals in Erlang
  • Optimized sets add_element, del_element and union
  • Added rand:jump/0-1
  • When a gen_server crashes, the stacktrace for the client will be printed to facilitate debugging.
  • take/2 has been added to dict, orddict, and gb_trees.
  • take_any/2 has been added to gb_trees
  • Significantly updated string module with unicode support
  • erl_tar support for long path names and new file formats
  • Dtls: Documented API, experimental
  • SSH: improving security, removing and adding algorithms
  • New math:fmod/2

For more details see
http://erlang.org/download/otp_src_20.0-rc1.readme

Pre built versions for Windows can be fetched here:
http://erlang.org/download/otp_win32_20.0-rc1.exe
http://erlang.org/download/otp_win64_20.0-rc1.exe

On line documentation can be browsed here:
www.erlang.org/documentation/doc-9.0-rc1/doc/

Thanks to all contributors.

/The Erlang/OTP team at Ericsson


_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 20.0-rc1 is available for testing

Max Lapshin-2
Is there any documentation for dtls?

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 20.0-rc1 is available for testing

Alexander Petrovsky-2
In reply to this post by Kenneth Lundin-5

пт, 5 мая 2017 г. в 18:10, Kenneth Lundin <[hidden email]>:

OTP 20 Release Candidate 1

This is the first of two release candidates before the OTP 20 release in June 2017.

The intention with this release is that you as users try it and give us feedback if something does not work as expected. Could be a bug, an unexpected incompatibility, a significant change of characteristics in negative direction, etc.

Erlang/OTP 20.0 is a new major release with new features, quite a few (characteristics) improvements, as well as a few incompatibilities.

Here are some of the most important news:

Potential Incompatibilities

  • ERTS:

    • The non SMP Erlang VM is deprecated and not built by default
    • Remove deprecated erlang:hash/2
    • erlang:statistics/1 with scheduler_wall_time now also includes info about dirty CPU schedulers.
    • The new purge strategy introduced in OTP 19.1 is mandatory and slightly incompatible for processes holding funs
      see erlang:check_process_code/3.
    • The NIF library reload is not supported anymore.
  • Asn1: Deprecated module and functions removed (asn1rt, asn1ct:encode/3 and decode/3)

  • Ssh: client only option in a call to start a daemon will now fail

Highlights

Erts:

  • Dirty schedulers enabled and supported on VM with SMP support.
  • support for “dirty” BIFs and “dirty” GC.
  • erlang:garbage_collect/2 for control of minor or major GC
  • Erlang literals are no longer copied when sending messages.

Could you explain please, what does mean "Erlang literals"?

  • Improved performance for large ETS tables, >256 entries (except ordered_set)
  • erlang:system_info/1 atom_count and atom_limit
  • Reduced memory pressure by converting sub-binaries to heap-binaries during GC
  • enif_select, map an external event to message

Compiler:

  • Code generation for complicated guards is improved.
  • Warnings for repeated identical map keys. #{'a'=>1, 'b'=>2, 'a'=>3} will warn for the repeated key a.
  • By default there is now a warning when export_all is used. Can be disabled
  • Pattern matching for maps is optimized
  • New option deterministic to omit path to source + options info the BEAM file.
  • Atoms may now contain arbitrary unicode characters.
  • compile:file/2 has an option to include extra chunks in the BEAM file.

Misc other applications

  • Unnamed ets tables optimized
  • A new event manager to handle a subset of OS signals in Erlang
  • Optimized sets add_element, del_element and union
  • Added rand:jump/0-1
  • When a gen_server crashes, the stacktrace for the client will be printed to facilitate debugging.
  • take/2 has been added to dict, orddict, and gb_trees.
  • take_any/2 has been added to gb_trees
  • Significantly updated string module with unicode support
  • erl_tar support for long path names and new file formats
  • Dtls: Documented API, experimental
  • SSH: improving security, removing and adding algorithms
  • New math:fmod/2

For more details see
http://erlang.org/download/otp_src_20.0-rc1.readme

Pre built versions for Windows can be fetched here:
http://erlang.org/download/otp_win32_20.0-rc1.exe
http://erlang.org/download/otp_win64_20.0-rc1.exe

On line documentation can be browsed here:
www.erlang.org/documentation/doc-9.0-rc1/doc/

Thanks to all contributors.

/The Erlang/OTP team at Ericsson

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
--
Петровский Александр / Alexander Petrovsky,

Skype: askjuise
Phone: +7 914 8 820 815


_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 20.0-rc1 is available for testing

Ingela Andin
In reply to this post by Max Lapshin-2
Hi!

2017-05-05 18:51 GMT+02:00 Max Lapshin <[hidden email]>:
Is there any documentation for dtls?



Not in the sens that it is documented in the manual page. But it is documented in the current release notes of the ssl application what you need to do to test it. The API is the same as för TLS except that you need to provide the option  {protocol, dtls}.

Regards Ingela Erlang/OTP team - Ericsson AB
 
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions



_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 20.0-rc1 is available for testing

Max Lapshin-2
Great!

We are still locked with erlang 19.0 because we have used internal ssl headers to implement our dtls.

I will reschedule our dev plan to try to move to 20.0 api

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 20.0-rc1 is available for testing

Richard Carlsson-3
In reply to this post by Kenneth Lundin-5
I'd like to point out the following changes in the Erlang shell, for your everyday use:

OTP-14190    Application(s): stdlib

               The shell functions c/1 and c/2 have been extended so
               that if the argument is a module name instead of a file
               name, it automatically locates the .beam file and the
               corresponding source file, and then recompiles the
               module using the same compiler options (plus any
               options passed to c/2). If compilation fails, the old
               beam file is preserved. Also adds c(Mod, Opts, Filter),
               where the Filter argument allows you to remove old
               compiler options before the new options are added.

               New utility functions file_find/2/3 and
               find_source/1/2/3 have been added to filelib.

OTP-14059    Application(s): kernel, stdlib

               Functions for detecting changed code has been added.
               code:modified_modules/0 returns all currently loaded
               modules that have changed on disk. code:module_status/1
               returns the status for a module. In the shell and in c
               module, mm/0 is short for code:modified_modules/0, and
               lm/0 reloads all currently loaded modules that have
               changed on disk.

        /Richard


_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 20.0-rc1 is available for testing

Michael Truog
In reply to this post by Kenneth Lundin-5
It seems good to point out a change that may surprise people that have scripts that depend on the old process name "beam.smp" which now changes to the script name, or is set by an environment variable:

   OTP-14381    Application(s): erts

                Changed erts startup program name, argv 0, to use the
                environment variable ESCRIPT_NAME so that erlc,
                dialyzer, typer, ct_run, or the escript name can be
                seen with external programs, such as ps and htop
                (depending on options), on unix.

                If environment variable ESCRIPT_NAME is not set, argv 0
                of the invoking program will be used, e.g. the name
                will be erl, cerl, or the soft link name.


This is a great change, but one to be aware of.

Best Regards,
Michael
_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 20.0-rc1 is available for testing

Max Lapshin-2
Eh, is this enough?

I've made changing program name in flussonic and had to make following changes:

1) prctl(PR_SET_NAME, name)

2) dirty hack to get erts  argv and change argv[0].  If somebody don't know,  argv[0] lives on a special page and its changing involves running kernel code

3) for MacOS it is:  dirty OSX code around com.apple.LaunchServices,   _LSSetApplicationInformationItem,  _kLSDisplayNameKey and ls_set_application_information_item_func



There are several program names in different unixes and you can see them in different tools. For example, there may be a master program name and different names of tasks.

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions
Reply | Threaded
Open this post in threaded view
|

Re: Erlang/OTP 20.0-rc1 is available for testing

Kenneth Lundin-5
In reply to this post by Michael Truog


On Fri, May 5, 2017 at 10:44 PM, Michael Truog <[hidden email]> wrote:
It seems good to point out a change that may surprise people that have scripts that depend on the old process name "beam.smp" which now changes to the script name, or is set by an environment variable

We have changed the default name back to beam.smp when started via erl. It caused problems for several users.

/Kenneth , Erlang/OTP team Ericsson. 

  OTP-14381    Application(s): erts

               Changed erts startup program name, argv 0, to use the
               environment variable ESCRIPT_NAME so that erlc,
               dialyzer, typer, ct_run, or the escript name can be
               seen with external programs, such as ps and htop
               (depending on options), on unix.

               If environment variable ESCRIPT_NAME is not set, argv 0
               of the invoking program will be used, e.g. the name
               will be erl, cerl, or the soft link name.


This is a great change, but one to be aware of.

Best Regards,
Michael

_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions


_______________________________________________
erlang-questions mailing list
[hidden email]
http://erlang.org/mailman/listinfo/erlang-questions