<div><div dir="auto">Hi Kenneth,</div></div><div dir="auto"><br></div><div dir="auto">Great to hear about the new release - thank you and the team!</div><div dir="auto"><br></div><div dir="auto">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?</div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto">Karl</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 27 Feb 2020 at 13:38, Kenneth Lundin <<a href="mailto:kenneth@erlang.org">kenneth@erlang.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><h2 style="box-sizing:border-box;margin-bottom:16px;line-height:1.25;padding-bottom:0.3em;border-bottom:1px solid rgb(234,236,239);color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";margin-top:0px">OTP 23 Release Candidate 1</h2><h2 style="box-sizing:border-box;margin-bottom:16px;line-height:1.25;padding-bottom:0.3em;border-bottom:1px solid rgb(234,236,239);color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";margin-top:0px"><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;font-size:14px;font-weight:400">This is the first of three planned release candidates before the OTP 23 release.<br style="box-sizing:border-box">The intention with this release is to get feedback from our users. <span style="box-sizing:border-box;font-weight:600">All feedback is welcome</span>, even if it is only to say that it works for you.</p><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;font-size:14px;font-weight:400">Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.</p></h2><h3 style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;font-size:1.25em;line-height:1.25;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">Potential Incompatibilities</h3><h2 style="box-sizing:border-box;margin-bottom:16px;line-height:1.25;padding-bottom:0.3em;border-bottom:1px solid rgb(234,236,239);color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";margin-top:0px"><ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;font-size:14px;font-weight:400"><li style="box-sizing:border-box">SSL:<ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:0px"><li style="box-sizing:border-box">Support for SSL 3.0 is completely removed.</li><li style="box-sizing:border-box;margin-top:0.25em">TLS 1.3 is added to the list of default supported versions.</li></ul></li><li style="box-sizing:border-box;margin-top:0.25em"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erl_interface</code>: Removed the deprecated parts of <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erl_interface</code><br style="box-sizing:border-box">(<code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erl_interface.h</code> and essentially all C functions with prefix <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erl_</code>).</li><li style="box-sizing:border-box;margin-top:0.25em">The deprecated <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erlang:get_stacktrace/0</code> BIF now returns an empty list instead of a stacktrace.<br style="box-sizing:border-box"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erlang:get_stacktrace/0</code> is scheduled for removal in OTP 24.</li><li style="box-sizing:border-box;margin-top:0.25em">...</li></ul></h2><h3 style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;font-size:1.25em;line-height:1.25;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"">Highlights</h3><h2 style="box-sizing:border-box;margin-bottom:16px;line-height:1.25;padding-bottom:0.3em;border-bottom:1px solid rgb(234,236,239);color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";margin-top:0px"><ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;font-size:14px;font-weight:400"><li style="box-sizing:border-box">A new module <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erpc</code> in kernel which implements an enhanced subset of the operations provided by the <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">rpc</code> module. Enhanced in the sense that it makes it possible to distinguish between returned value, raised exceptions and other errors. <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erpc</code> also has better performance and scalability than the original <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">rpc</code> implementation. This by utilizing the newly introduced <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">spawn_request()</code> BIF. Also the <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">rpc</code> module benefits from these improvements by utilizing <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">erpc</code> when possible.</li><li style="box-sizing:border-box;margin-top:0.25em">Scalability and performance Improvements plus new functionality regarding distributed spawn operations.</li><li style="box-sizing:border-box;margin-top:0.25em">In binary matching, the size of the segment to be matched is now allowed to be a guard expression (EEP-52)</li><li style="box-sizing:border-box;margin-top:0.25em">When matching with maps the keys can now be guard expressions (EEP-52).</li><li style="box-sizing:border-box;margin-top:0.25em">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.</li><li style="box-sizing:border-box;margin-top:0.25em">Allow underscores in numeric literals to improve readability. Examples: <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">123_456_789</code>, <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">16#1234_ABCD</code>.</li><li style="box-sizing:border-box;margin-top:0.25em">New functions in the shell for displaying documentation for Erlang modules, functions and types. The<br style="box-sizing:border-box">functions are:<ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:0px"><li style="box-sizing:border-box"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">h/1,2,3</code> -- Print the documentation for a <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">Module:Function/Arity</code>.</li><li style="box-sizing:border-box;margin-top:0.25em"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">ht/1,2,3</code> -- Print the type documentation for a <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">Module:Type/Arity</code>.<br style="box-sizing:border-box">The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.</li></ul></li><li style="box-sizing:border-box;margin-top:0.25em">kernel: The module <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">pg</code> with a new implementation of distributed named process groups is introduced. The old module <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:11.9px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-radius:3px">pg2</code> is deprecated and scheduled for removal in OTP 24.</li><li style="box-sizing:border-box;margin-top:0.25em">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.</li><li style="box-sizing:border-box;margin-top:0.25em">...</li></ul><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;font-size:14px;font-weight:400">For more details see<br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_src_23.0-rc1.readme" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none" target="_blank">http://erlang.org/download/otp_src_23.0-rc1.readme</a></p><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;font-size:14px;font-weight:400">Pre built versions for Windows can be fetched here:<br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_win32_23.0-rc1.exe" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none" target="_blank">http://erlang.org/download/otp_win32_23.0-rc1.exe</a><br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_win64_23.0-rc1.exe" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none" target="_blank">http://erlang.org/download/otp_win64_23.0-rc1.exe</a></p><p style="box-sizing:border-box;margin-top:0px;font-size:14px;font-weight:400;margin-bottom:0px">Online documentation can be browsed here:<br style="box-sizing:border-box"><a href="http://erlang.org/documentation/doc-11.0-rc1/doc" rel="nofollow" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none" target="_blank">http://erlang.org/documentation/doc-11.0-rc1/doc</a><br style="box-sizing:border-box">The Erlang/OTP source can also be found at GitHub on the official Erlang repository,<br style="box-sizing:border-box"><a href="https://github.com/erlang/otp" style="box-sizing:border-box;background-color:initial;color:rgb(3,102,214);text-decoration-line:none" target="_blank">https://github.com/erlang/otp</a></p></h2></div>
</blockquote></div></div>