Erlang OTP 23.0-rc1 is available for testing

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

Erlang OTP 23.0-rc1 is available for testing

Kenneth Lundin-5

OTP 23 Release Candidate 1

This is the first of three planned release candidates before the OTP 23 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.

Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.

Potential Incompatibilities

  • SSL:
    • Support for SSL 3.0 is completely removed.
    • TLS 1.3 is added to the list of default supported versions.
  • erl_interface: Removed the deprecated parts of erl_interface
    (erl_interface.h and essentially all C functions with prefix erl_).
  • The deprecated erlang:get_stacktrace/0 BIF now returns an empty list instead of a stacktrace.
    erlang:get_stacktrace/0 is scheduled for removal in OTP 24.
  • ...

Highlights

  • A new module erpc in kernel which implements an enhanced subset of the operations provided by the rpc module. Enhanced in the sense that it makes it possible to distinguish between returned value, raised exceptions and other errors. erpc also has better performance and scalability than the original rpc implementation. This by utilizing the newly introduced spawn_request() BIF. Also the rpc module benefits from these improvements by utilizing erpc when possible.
  • Scalability and performance Improvements plus new functionality regarding distributed spawn operations.
  • In binary matching, the size of the segment to be matched is now allowed to be a guard expression (EEP-52)
  • When matching with maps the keys can now be guard expressions (EEP-52).
  • ssh: support for TCP/IP port forwarding, a.k.a tunneling a.k.a as tcp-forward/direct-tcp is implemented. In the OpenSSH client, this corresponds to the options -L and -R.
  • Allow underscores in numeric literals to improve readability. Examples: 123_456_78916#1234_ABCD.
  • New functions in the shell for displaying documentation for Erlang modules, functions and types. The
    functions are:
    • h/1,2,3 -- Print the documentation for a Module:Function/Arity.
    • ht/1,2,3 -- Print the type documentation for a Module:Type/Arity.
      The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.
  • kernel: The module pg with a new implementation of distributed named process groups is introduced. The old module pg2 is deprecated and scheduled for removal in OTP 24.
  • Our tool chain for building the Windows packages is upgraded with new C++ compiler, Java compiler, OpenSSL libraries and wxWidgets versions. We are now using WSL (the Linux Subsystem for Windows when building) which makes it easier to handle the build environment.
  • ...

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

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

Online documentation can be browsed here:
http://erlang.org/documentation/doc-11.0-rc1/doc
The Erlang/OTP source can also be found at GitHub on the official Erlang repository,
https://github.com/erlang/otp

Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Karl Velicka
Hi Kenneth,

Great to hear about the new release - thank you and the team!

The point about the documentation display functions raises a question though - are there any plans to add a mechanism for embedding documentation within erl source files? Something similar to elixir’s @doc system perhaps?

Thanks,
Karl

On Thu, 27 Feb 2020 at 13:38, Kenneth Lundin <[hidden email]> wrote:

OTP 23 Release Candidate 1

This is the first of three planned release candidates before the OTP 23 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.

Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.

Potential Incompatibilities

  • SSL:
    • Support for SSL 3.0 is completely removed.
    • TLS 1.3 is added to the list of default supported versions.
  • erl_interface: Removed the deprecated parts of erl_interface
    (erl_interface.h and essentially all C functions with prefix erl_).
  • The deprecated erlang:get_stacktrace/0 BIF now returns an empty list instead of a stacktrace.
    erlang:get_stacktrace/0 is scheduled for removal in OTP 24.
  • ...

Highlights

  • A new module erpc in kernel which implements an enhanced subset of the operations provided by the rpc module. Enhanced in the sense that it makes it possible to distinguish between returned value, raised exceptions and other errors. erpc also has better performance and scalability than the original rpc implementation. This by utilizing the newly introduced spawn_request() BIF. Also the rpc module benefits from these improvements by utilizing erpc when possible.
  • Scalability and performance Improvements plus new functionality regarding distributed spawn operations.
  • In binary matching, the size of the segment to be matched is now allowed to be a guard expression (EEP-52)
  • When matching with maps the keys can now be guard expressions (EEP-52).
  • ssh: support for TCP/IP port forwarding, a.k.a tunneling a.k.a as tcp-forward/direct-tcp is implemented. In the OpenSSH client, this corresponds to the options -L and -R.
  • Allow underscores in numeric literals to improve readability. Examples: 123_456_78916#1234_ABCD.
  • New functions in the shell for displaying documentation for Erlang modules, functions and types. The
    functions are:
    • h/1,2,3 -- Print the documentation for a Module:Function/Arity.
    • ht/1,2,3 -- Print the type documentation for a Module:Type/Arity.
      The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.
  • kernel: The module pg with a new implementation of distributed named process groups is introduced. The old module pg2 is deprecated and scheduled for removal in OTP 24.
  • Our tool chain for building the Windows packages is upgraded with new C++ compiler, Java compiler, OpenSSL libraries and wxWidgets versions. We are now using WSL (the Linux Subsystem for Windows when building) which makes it easier to handle the build environment.
  • ...

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

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

Online documentation can be browsed here:
http://erlang.org/documentation/doc-11.0-rc1/doc
The Erlang/OTP source can also be found at GitHub on the official Erlang repository,
https://github.com/erlang/otp

Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Roberto Aloi-6
Hi Karl,

Erlang has EDoc (
http://erlang.org/doc/apps/edoc/chapter.html) which allows you to do just that. Or are you referring to something else?

Best,

Roberto

On Fri, 28 Feb 2020 at 06:51, Karl Velicka <[hidden email]> wrote:
Hi Kenneth,

Great to hear about the new release - thank you and the team!

The point about the documentation display functions raises a question though - are there any plans to add a mechanism for embedding documentation within erl source files? Something similar to elixir’s @doc system perhaps?

Thanks,
Karl

On Thu, 27 Feb 2020 at 13:38, Kenneth Lundin <[hidden email]> wrote:

OTP 23 Release Candidate 1

This is the first of three planned release candidates before the OTP 23 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.

Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.

Potential Incompatibilities

  • SSL:
    • Support for SSL 3.0 is completely removed.
    • TLS 1.3 is added to the list of default supported versions.
  • erl_interface: Removed the deprecated parts of erl_interface
    (erl_interface.h and essentially all C functions with prefix erl_).
  • The deprecated erlang:get_stacktrace/0 BIF now returns an empty list instead of a stacktrace.
    erlang:get_stacktrace/0 is scheduled for removal in OTP 24.
  • ...

Highlights

  • A new module erpc in kernel which implements an enhanced subset of the operations provided by the rpc module. Enhanced in the sense that it makes it possible to distinguish between returned value, raised exceptions and other errors. erpc also has better performance and scalability than the original rpc implementation. This by utilizing the newly introduced spawn_request() BIF. Also the rpc module benefits from these improvements by utilizing erpc when possible.
  • Scalability and performance Improvements plus new functionality regarding distributed spawn operations.
  • In binary matching, the size of the segment to be matched is now allowed to be a guard expression (EEP-52)
  • When matching with maps the keys can now be guard expressions (EEP-52).
  • ssh: support for TCP/IP port forwarding, a.k.a tunneling a.k.a as tcp-forward/direct-tcp is implemented. In the OpenSSH client, this corresponds to the options -L and -R.
  • Allow underscores in numeric literals to improve readability. Examples: 123_456_78916#1234_ABCD.
  • New functions in the shell for displaying documentation for Erlang modules, functions and types. The
    functions are:
    • h/1,2,3 -- Print the documentation for a Module:Function/Arity.
    • ht/1,2,3 -- Print the type documentation for a Module:Type/Arity.
      The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.
  • kernel: The module pg with a new implementation of distributed named process groups is introduced. The old module pg2 is deprecated and scheduled for removal in OTP 24.
  • Our tool chain for building the Windows packages is upgraded with new C++ compiler, Java compiler, OpenSSL libraries and wxWidgets versions. We are now using WSL (the Linux Subsystem for Windows when building) which makes it easier to handle the build environment.
  • ...

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

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

Online documentation can be browsed here:
http://erlang.org/documentation/doc-11.0-rc1/doc
The Erlang/OTP source can also be found at GitHub on the official Erlang repository,
https://github.com/erlang/otp

Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Max Lapshin-2
In reply to this post by Kenneth Lundin-5
ssh port forwarding is very cool! We need it for our customer support system.

On Thu, Feb 27, 2020 at 4:38 PM Kenneth Lundin <[hidden email]> wrote:

OTP 23 Release Candidate 1

This is the first of three planned release candidates before the OTP 23 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.

Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.

Potential Incompatibilities

  • SSL:
    • Support for SSL 3.0 is completely removed.
    • TLS 1.3 is added to the list of default supported versions.
  • erl_interface: Removed the deprecated parts of erl_interface
    (erl_interface.h and essentially all C functions with prefix erl_).
  • The deprecated erlang:get_stacktrace/0 BIF now returns an empty list instead of a stacktrace.
    erlang:get_stacktrace/0 is scheduled for removal in OTP 24.
  • ...

Highlights

  • A new module erpc in kernel which implements an enhanced subset of the operations provided by the rpc module. Enhanced in the sense that it makes it possible to distinguish between returned value, raised exceptions and other errors. erpc also has better performance and scalability than the original rpc implementation. This by utilizing the newly introduced spawn_request() BIF. Also the rpc module benefits from these improvements by utilizing erpc when possible.
  • Scalability and performance Improvements plus new functionality regarding distributed spawn operations.
  • In binary matching, the size of the segment to be matched is now allowed to be a guard expression (EEP-52)
  • When matching with maps the keys can now be guard expressions (EEP-52).
  • ssh: support for TCP/IP port forwarding, a.k.a tunneling a.k.a as tcp-forward/direct-tcp is implemented. In the OpenSSH client, this corresponds to the options -L and -R.
  • Allow underscores in numeric literals to improve readability. Examples: 123_456_78916#1234_ABCD.
  • New functions in the shell for displaying documentation for Erlang modules, functions and types. The
    functions are:
    • h/1,2,3 -- Print the documentation for a Module:Function/Arity.
    • ht/1,2,3 -- Print the type documentation for a Module:Type/Arity.
      The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.
  • kernel: The module pg with a new implementation of distributed named process groups is introduced. The old module pg2 is deprecated and scheduled for removal in OTP 24.
  • Our tool chain for building the Windows packages is upgraded with new C++ compiler, Java compiler, OpenSSL libraries and wxWidgets versions. We are now using WSL (the Linux Subsystem for Windows when building) which makes it easier to handle the build environment.
  • ...

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

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

Online documentation can be browsed here:
http://erlang.org/documentation/doc-11.0-rc1/doc
The Erlang/OTP source can also be found at GitHub on the official Erlang repository,
https://github.com/erlang/otp

Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Max Lapshin-2
Something with default cipher configuration?

$ erl
Erlang/OTP 23 [RELEASE CANDIDATE 1] [erts-11.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Eshell V11.0  (abort with ^G)
1> application:ensure_all_started(inets).
{ok,[inets]}
4> application:ensure_all_started(ssl).                                                
{ok,[crypto,asn1,public_key,ssl]}
5> httpc:request(get, {"https://repo.hex.pm/",[]}, [], [{body_format, binary}]).
=NOTICE REPORT==== 29-Feb-2020::04:47:26.729009 ===
TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure
 - malformed_handshake_data
{error,{failed_connect,[{to_address,{"repo.hex.pm",443}},
                        {inet,[inet],
                              {tls_alert,{handshake_failure,"TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure\n malformed_handshake_data"}}}]}}

?
Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Bram Verburg
This is due to the fact that OTP 23 supports x25519/x448 in ECDH key exchange for TLS 1.3, but not TLS 1.2. I believe it will be fixed in the next RC. For now you can either disable TLS 1.3 or pass `{supported_groups, [secp256r1, secp384r1]}`.

On Sat, 29 Feb 2020 at 03:48, Max Lapshin <[hidden email]> wrote:
Something with default cipher configuration?

$ erl
Erlang/OTP 23 [RELEASE CANDIDATE 1] [erts-11.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Eshell V11.0  (abort with ^G)
1> application:ensure_all_started(inets).
{ok,[inets]}
4> application:ensure_all_started(ssl).                                                
{ok,[crypto,asn1,public_key,ssl]}
5> httpc:request(get, {"https://repo.hex.pm/",[]}, [], [{body_format, binary}]).
=NOTICE REPORT==== 29-Feb-2020::04:47:26.729009 ===
TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure
 - malformed_handshake_data
{error,{failed_connect,[{to_address,{"repo.hex.pm",443}},
                        {inet,[inet],
                              {tls_alert,{handshake_failure,"TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure\n malformed_handshake_data"}}}]}}

?
Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Max Lapshin-2
got it.

Looks that it is very hard to make "good-for-all" default SSL configuration.

On Sat, Feb 29, 2020 at 5:28 PM Bram Verburg <[hidden email]> wrote:
This is due to the fact that OTP 23 supports x25519/x448 in ECDH key exchange for TLS 1.3, but not TLS 1.2. I believe it will be fixed in the next RC. For now you can either disable TLS 1.3 or pass `{supported_groups, [secp256r1, secp384r1]}`.

On Sat, 29 Feb 2020 at 03:48, Max Lapshin <[hidden email]> wrote:
Something with default cipher configuration?

$ erl
Erlang/OTP 23 [RELEASE CANDIDATE 1] [erts-11.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Eshell V11.0  (abort with ^G)
1> application:ensure_all_started(inets).
{ok,[inets]}
4> application:ensure_all_started(ssl).                                                
{ok,[crypto,asn1,public_key,ssl]}
5> httpc:request(get, {"https://repo.hex.pm/",[]}, [], [{body_format, binary}]).
=NOTICE REPORT==== 29-Feb-2020::04:47:26.729009 ===
TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure
 - malformed_handshake_data
{error,{failed_connect,[{to_address,{"repo.hex.pm",443}},
                        {inet,[inet],
                              {tls_alert,{handshake_failure,"TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure\n malformed_handshake_data"}}}]}}

?
Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

I Gusti Ngurah Oka Prinarjaya
Hi,

Referrring to [hidden email] report, why it's always problem in SSL? I mean not-smooth. 

But, I do really appreciate and thank you super much for all of the hard and awesome work for the Erlang/OTP Team!

I wondering lots of improvements in scheduler system, more faster and smarter scheduler system. 





Pada tanggal Min, 1 Mar 2020 pukul 15.55 Max Lapshin <[hidden email]> menulis:
got it.

Looks that it is very hard to make "good-for-all" default SSL configuration.

On Sat, Feb 29, 2020 at 5:28 PM Bram Verburg <[hidden email]> wrote:
This is due to the fact that OTP 23 supports x25519/x448 in ECDH key exchange for TLS 1.3, but not TLS 1.2. I believe it will be fixed in the next RC. For now you can either disable TLS 1.3 or pass `{supported_groups, [secp256r1, secp384r1]}`.

On Sat, 29 Feb 2020 at 03:48, Max Lapshin <[hidden email]> wrote:
Something with default cipher configuration?

$ erl
Erlang/OTP 23 [RELEASE CANDIDATE 1] [erts-11.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Eshell V11.0  (abort with ^G)
1> application:ensure_all_started(inets).
{ok,[inets]}
4> application:ensure_all_started(ssl).                                                
{ok,[crypto,asn1,public_key,ssl]}
5> httpc:request(get, {"https://repo.hex.pm/",[]}, [], [{body_format, binary}]).
=NOTICE REPORT==== 29-Feb-2020::04:47:26.729009 ===
TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure
 - malformed_handshake_data
{error,{failed_connect,[{to_address,{"repo.hex.pm",443}},
                        {inet,[inet],
                              {tls_alert,{handshake_failure,"TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure\n malformed_handshake_data"}}}]}}

?
Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Jesper Louis Andersen-2
On Sun, Mar 1, 2020 at 10:09 AM I Gusti Ngurah Oka Prinarjaya <[hidden email]> wrote:
Hi,

Referrring to [hidden email] report, why it's always problem in SSL? I mean not-smooth. 


Because while TLS is a standard, there are many configurations possible in the standard. The configurations change over time and are not set in stone. In fact, they might change overnight if new security problems are discovered. I much prefer libsodium's opinionated approach, because it avoids many of these problems.

Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

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

Thank you for reporting this, this is exactly the kind of problems we hope to find with release candidates. We will investigate the best way to address
this issue. The trade off between interoperability and  security is seldom an easy one and there are so many configurations, implementation and parameters to take into account so we are very grateful to all open source users that test our release candidates and report issues that they find.

Regards Ingela Erlang/OTP team - Ericsson AB

Den lör 29 feb. 2020 kl 02:48 skrev Max Lapshin <[hidden email]>:
Something with default cipher configuration?

$ erl
Erlang/OTP 23 [RELEASE CANDIDATE 1] [erts-11.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Eshell V11.0  (abort with ^G)
1> application:ensure_all_started(inets).
{ok,[inets]}
4> application:ensure_all_started(ssl).                                                
{ok,[crypto,asn1,public_key,ssl]}
5> httpc:request(get, {"https://repo.hex.pm/",[]}, [], [{body_format, binary}]).
=NOTICE REPORT==== 29-Feb-2020::04:47:26.729009 ===
TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure
 - malformed_handshake_data
{error,{failed_connect,[{to_address,{"repo.hex.pm",443}},
                        {inet,[inet],
                              {tls_alert,{handshake_failure,"TLS client: In state certify at tls_connection.erl:1281 generated CLIENT ALERT: Fatal - Handshake Failure\n malformed_handshake_data"}}}]}}

?
Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Ulf Wiger-2
In reply to this post by Kenneth Lundin-5
A very minor issue, but the formatting of this release notes entry
seems a bit strange:

>  OTP-16347 Application(s): erts
>
>               Related Id(s): PR-2466
>
>               The return value when using the httph and httph_bin
>               option to erlang:decode_packet/3 and inet:setopts/2 has
>               been changed to also include the original header
>               unmodified. See the erlang:decode_packet/3. Example:
>
>               > erlang:decode_packet(httph_bin,>,[]).
>               {ok,{http_header,0,>,>,>},>}

BR,
Ulf W

Den tors 27 feb. 2020 kl 14:37 skrev Kenneth Lundin <[hidden email]>:

>
> OTP 23 Release Candidate 1
>
> This is the first of three planned release candidates before the OTP 23 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.
>
> Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.
>
> Potential Incompatibilities
>
> SSL:
>
> Support for SSL 3.0 is completely removed.
> TLS 1.3 is added to the list of default supported versions.
>
> erl_interface: Removed the deprecated parts of erl_interface
> (erl_interface.h and essentially all C functions with prefix erl_).
> The deprecated erlang:get_stacktrace/0 BIF now returns an empty list instead of a stacktrace.
> erlang:get_stacktrace/0 is scheduled for removal in OTP 24.
> ...
>
> Highlights
>
> A new module erpc in kernel which implements an enhanced subset of the operations provided by the rpc module. Enhanced in the sense that it makes it possible to distinguish between returned value, raised exceptions and other errors. erpc also has better performance and scalability than the original rpc implementation. This by utilizing the newly introduced spawn_request() BIF. Also the rpc module benefits from these improvements by utilizing erpc when possible.
> Scalability and performance Improvements plus new functionality regarding distributed spawn operations.
> In binary matching, the size of the segment to be matched is now allowed to be a guard expression (EEP-52)
> When matching with maps the keys can now be guard expressions (EEP-52).
> ssh: support for TCP/IP port forwarding, a.k.a tunneling a.k.a as tcp-forward/direct-tcp is implemented. In the OpenSSH client, this corresponds to the options -L and -R.
> Allow underscores in numeric literals to improve readability. Examples: 123_456_789, 16#1234_ABCD.
> New functions in the shell for displaying documentation for Erlang modules, functions and types. The
> functions are:
>
> h/1,2,3 -- Print the documentation for a Module:Function/Arity.
> ht/1,2,3 -- Print the type documentation for a Module:Type/Arity.
> The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.
>
> kernel: The module pg with a new implementation of distributed named process groups is introduced. The old module pg2 is deprecated and scheduled for removal in OTP 24.
> Our tool chain for building the Windows packages is upgraded with new C++ compiler, Java compiler, OpenSSL libraries and wxWidgets versions. We are now using WSL (the Linux Subsystem for Windows when building) which makes it easier to handle the build environment.
> ...
>
> For more details see
> http://erlang.org/download/otp_src_23.0-rc1.readme
>
> Pre built versions for Windows can be fetched here:
> http://erlang.org/download/otp_win32_23.0-rc1.exe
> http://erlang.org/download/otp_win64_23.0-rc1.exe
>
> Online documentation can be browsed here:
> http://erlang.org/documentation/doc-11.0-rc1/doc
> The Erlang/OTP source can also be found at GitHub on the official Erlang repository,
> https://github.com/erlang/otp
Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Karl Velicka
In reply to this post by Roberto Aloi-6
Roberto,

I was vaguely aware of EDoc but it's a tool that allows you to generate docs from source, but not embed docs _in_ source. That is, (according to my understanding at least) Elixir's @doc mechanism actually embeds the relevant documentation files in the beam files during compilation. I was interested in Erlang's plans (or lack thereof) for something equivalent.

Kenneth did reply to me off-list with some thoughts on this so I really hope he doesn't mind me sharing them with the list (in case there's more readers wondering the same thing as I):

---------- Forwarded message ---------
From: Kenneth Lundin <[hidden email]>
Date: Fri, 28 Feb 2020 at 07:31
Subject: Re: Erlang OTP 23.0-rc1 is available for testing

edoc is the tool which can handle documentation embedded into the source code and generate documentation for it. Work is going on to
make edoc generate the same format (docchunks ala EEP 48) as from the OTP docs and making it available in the same way from the shell and editors etc.

So you already can embed documentation in the .erl files. 

The exact format in the .erl files might evolve to something more integrated with the language like Elixir, but the first step is to generate the same docchunks from Edoc.

/Kenneth, Erlang/OTP team,  Ericsson

On Fri, 28 Feb 2020 at 18:15, Roberto Aloi <[hidden email]> wrote:
Hi Karl,

Erlang has EDoc (
http://erlang.org/doc/apps/edoc/chapter.html) which allows you to do just that. Or are you referring to something else?

Best,

Roberto

On Fri, 28 Feb 2020 at 06:51, Karl Velicka <[hidden email]> wrote:
Hi Kenneth,

Great to hear about the new release - thank you and the team!

The point about the documentation display functions raises a question though - are there any plans to add a mechanism for embedding documentation within erl source files? Something similar to elixir’s @doc system perhaps?

Thanks,
Karl

On Thu, 27 Feb 2020 at 13:38, Kenneth Lundin <[hidden email]> wrote:

OTP 23 Release Candidate 1

This is the first of three planned release candidates before the OTP 23 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.

Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.

Potential Incompatibilities

  • SSL:
    • Support for SSL 3.0 is completely removed.
    • TLS 1.3 is added to the list of default supported versions.
  • erl_interface: Removed the deprecated parts of erl_interface
    (erl_interface.h and essentially all C functions with prefix erl_).
  • The deprecated erlang:get_stacktrace/0 BIF now returns an empty list instead of a stacktrace.
    erlang:get_stacktrace/0 is scheduled for removal in OTP 24.
  • ...

Highlights

  • A new module erpc in kernel which implements an enhanced subset of the operations provided by the rpc module. Enhanced in the sense that it makes it possible to distinguish between returned value, raised exceptions and other errors. erpc also has better performance and scalability than the original rpc implementation. This by utilizing the newly introduced spawn_request() BIF. Also the rpc module benefits from these improvements by utilizing erpc when possible.
  • Scalability and performance Improvements plus new functionality regarding distributed spawn operations.
  • In binary matching, the size of the segment to be matched is now allowed to be a guard expression (EEP-52)
  • When matching with maps the keys can now be guard expressions (EEP-52).
  • ssh: support for TCP/IP port forwarding, a.k.a tunneling a.k.a as tcp-forward/direct-tcp is implemented. In the OpenSSH client, this corresponds to the options -L and -R.
  • Allow underscores in numeric literals to improve readability. Examples: 123_456_78916#1234_ABCD.
  • New functions in the shell for displaying documentation for Erlang modules, functions and types. The
    functions are:
    • h/1,2,3 -- Print the documentation for a Module:Function/Arity.
    • ht/1,2,3 -- Print the type documentation for a Module:Type/Arity.
      The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.
  • kernel: The module pg with a new implementation of distributed named process groups is introduced. The old module pg2 is deprecated and scheduled for removal in OTP 24.
  • Our tool chain for building the Windows packages is upgraded with new C++ compiler, Java compiler, OpenSSL libraries and wxWidgets versions. We are now using WSL (the Linux Subsystem for Windows when building) which makes it easier to handle the build environment.
  • ...

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

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

Online documentation can be browsed here:
http://erlang.org/documentation/doc-11.0-rc1/doc
The Erlang/OTP source can also be found at GitHub on the official Erlang repository,
https://github.com/erlang/otp

Reply | Threaded
Open this post in threaded view
|

Re: Erlang OTP 23.0-rc1 is available for testing

Roberto Aloi-6
Hi Karl,

Yes, I’m aware of that work. And in case anyone is wondering what EEP-48 is, here is the original proposal: 
Bright future ahead.

Roberto 

On Tue, 3 Mar 2020 at 18:26, Karl Velicka <[hidden email]> wrote:
Roberto,

I was vaguely aware of EDoc but it's a tool that allows you to generate docs from source, but not embed docs _in_ source. That is, (according to my understanding at least) Elixir's @doc mechanism actually embeds the relevant documentation files in the beam files during compilation. I was interested in Erlang's plans (or lack thereof) for something equivalent.

Kenneth did reply to me off-list with some thoughts on this so I really hope he doesn't mind me sharing them with the list (in case there's more readers wondering the same thing as I):

---------- Forwarded message ---------
From: Kenneth Lundin <[hidden email]>
Date: Fri, 28 Feb 2020 at 07:31
Subject: Re: Erlang OTP 23.0-rc1 is available for testing

edoc is the tool which can handle documentation embedded into the source code and generate documentation for it. Work is going on to
make edoc generate the same format (docchunks ala EEP 48) as from the OTP docs and making it available in the same way from the shell and editors etc.

So you already can embed documentation in the .erl files. 

The exact format in the .erl files might evolve to something more integrated with the language like Elixir, but the first step is to generate the same docchunks from Edoc.

/Kenneth, Erlang/OTP team,  Ericsson

On Fri, 28 Feb 2020 at 18:15, Roberto Aloi <[hidden email]> wrote:
Hi Karl,

Erlang has EDoc (
http://erlang.org/doc/apps/edoc/chapter.html) which allows you to do just that. Or are you referring to something else?

Best,

Roberto

On Fri, 28 Feb 2020 at 06:51, Karl Velicka <[hidden email]> wrote:
Hi Kenneth,

Great to hear about the new release - thank you and the team!

The point about the documentation display functions raises a question though - are there any plans to add a mechanism for embedding documentation within erl source files? Something similar to elixir’s @doc system perhaps?

Thanks,
Karl

On Thu, 27 Feb 2020 at 13:38, Kenneth Lundin <[hidden email]> wrote:

OTP 23 Release Candidate 1

This is the first of three planned release candidates before the OTP 23 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.

Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.

Potential Incompatibilities

  • SSL:
    • Support for SSL 3.0 is completely removed.
    • TLS 1.3 is added to the list of default supported versions.
  • erl_interface: Removed the deprecated parts of erl_interface
    (erl_interface.h and essentially all C functions with prefix erl_).
  • The deprecated erlang:get_stacktrace/0 BIF now returns an empty list instead of a stacktrace.
    erlang:get_stacktrace/0 is scheduled for removal in OTP 24.
  • ...

Highlights

  • A new module erpc in kernel which implements an enhanced subset of the operations provided by the rpc module. Enhanced in the sense that it makes it possible to distinguish between returned value, raised exceptions and other errors. erpc also has better performance and scalability than the original rpc implementation. This by utilizing the newly introduced spawn_request() BIF. Also the rpc module benefits from these improvements by utilizing erpc when possible.
  • Scalability and performance Improvements plus new functionality regarding distributed spawn operations.
  • In binary matching, the size of the segment to be matched is now allowed to be a guard expression (EEP-52)
  • When matching with maps the keys can now be guard expressions (EEP-52).
  • ssh: support for TCP/IP port forwarding, a.k.a tunneling a.k.a as tcp-forward/direct-tcp is implemented. In the OpenSSH client, this corresponds to the options -L and -R.
  • Allow underscores in numeric literals to improve readability. Examples: 123_456_78916#1234_ABCD.
  • New functions in the shell for displaying documentation for Erlang modules, functions and types. The
    functions are:
    • h/1,2,3 -- Print the documentation for a Module:Function/Arity.
    • ht/1,2,3 -- Print the type documentation for a Module:Type/Arity.
      The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.
  • kernel: The module pg with a new implementation of distributed named process groups is introduced. The old module pg2 is deprecated and scheduled for removal in OTP 24.
  • Our tool chain for building the Windows packages is upgraded with new C++ compiler, Java compiler, OpenSSL libraries and wxWidgets versions. We are now using WSL (the Linux Subsystem for Windows when building) which makes it easier to handle the build environment.
  • ...

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

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

Online documentation can be browsed here:
http://erlang.org/documentation/doc-11.0-rc1/doc
The Erlang/OTP source can also be found at GitHub on the official Erlang repository,
https://github.com/erlang/otp