<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Kenneth, on Mar 24 there was an update to macOS Catalina, bringing it to version 10.15.4, and also to XCode, bringing it to version 11.4. I updated both yesterday. Under those versions, I've found that the git tag OTP-23.0-rc2 fails to build due to the use of the -Wl,-no_weak_imports linker flag. This flag is introduced in erts/<a href="http://configure.in">configure.in</a>: <a href="https://github.com/erlang/otp/blob/master/erts/configure.in#L943-L957">https://github.com/erlang/otp/blob/master/erts/configure.in#L943-L957</a> and the error from using it in the build is:</div><div dir="ltr"><br></div><div dir="ltr"><div dir="ltr"><div dir="ltr"> LD<span class="gmail-Apple-tab-span" style="white-space:pre">        </span>/usr/local/src/otp/bin/x86_64-apple-darwin19.4.0/beam.smp</div><div dir="ltr">ld: weak import of symbol '___darwin_check_fd_set_overflow' not supported because of option: -no_weak_imports for architecture x86_64</div><div dir="ltr">clang: error: linker command failed with exit code 1 (use -v to see invocation)</div><div dir="ltr"><br></div></div></div><div dir="ltr">If I comment out that case statement to prevent the use of that option, the problem goes away and everything builds correctly. Note that tag OTP-23.0-rc1, which built ok when it was released, now also fails the same way with these updates.</div><div dir="ltr"><br></div><div>--steve</div><div><br></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 25, 2020 at 10:25 AM Kenneth Lundin <<a href="mailto:kenneth@erlang.org">kenneth@erlang.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);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-width:1px;border-bottom-style:solid;border-bottom-color: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 2</h2><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px">This is the second 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;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px">Erlang/OTP 23 is a new major release with new features, improvements as well as a few incompatibilities.</p><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><ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px"><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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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><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 (rc2)</h3><ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px"><li style="box-sizing:border-box"><span style="box-sizing:border-box;font-weight:600">ssh</span>:<ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:0px"><li style="box-sizing:border-box">OpenSSH 6.5 introduced a new file representation of<br style="box-sizing:border-box">keys called <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">openssh-key-v1</code>. This is now supported with the exception of<br style="box-sizing:border-box">handling encrypted keys.</li><li style="box-sizing:border-box;margin-top:0.25em">Algorithm configuration could now be done in a .config file.<br style="box-sizing:border-box">This is useful for example to enable an algorithm that<br style="box-sizing:border-box">is disabled by default without need to change the code.</li></ul></li><li style="box-sizing:border-box;margin-top:0.25em"><span style="box-sizing:border-box;font-weight:600">ssl</span>:<ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:0px"><li style="box-sizing:border-box">Support for the middlebox compatibility mode makes the TLS 1.3 handshake<br style="box-sizing:border-box">look more like a TLS 1.2 handshake and increases the chance of successfully<br style="box-sizing:border-box">establishing TLS 1.3 connections through legacy middleboxes.</li><li style="box-sizing:border-box;margin-top:0.25em">Add support for key exchange with Edward curves and PSS-RSA padding in<br style="box-sizing:border-box">signature verification</li></ul></li><li style="box-sizing:border-box;margin-top:0.25em">The possibility to run Erlang distribution without<br style="box-sizing:border-box">relying on EPMD has been extended. To achieve this a<br style="box-sizing:border-box">couple of new options to the inet distribution has been<br style="box-sizing:border-box">added.<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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">-dist_listen false</code> Setup the distribution<br style="box-sizing:border-box">channel, but do not listen for incoming connection.</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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">-erl_epmd_port Port</code> Configure a default port that<br style="box-sizing:border-box">the built-in EPMD client should return.</li><li style="box-sizing:border-box;margin-top:0.25em">...</li></ul></li><li style="box-sizing:border-box;margin-top:0.25em">A first EXPERIMENTAL <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">socket</code> backend to<br style="box-sizing:border-box"><code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">gen_tcp</code> and <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">inet</code> has been implemented. <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">gen_udp</code> and <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">gen_sctp</code> will follow.<br style="box-sizing:border-box">Putting <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">{inet_backend, socket}</code> as first option to <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">listen()</code> or <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">connect()</code> makes it easy to try this for<br style="box-sizing:border-box">existing code</li></ul><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 (rc1)</h3><ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px"><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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px">123_456_789</code>, <code style="box-sizing:border-box;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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:13.6px;padding:0.2em 0.4em;margin:0px;background-color:rgba(27,31,35,0.05);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-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;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px">For more details see<br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_src_23.0-rc2.readme" rel="nofollow" style="box-sizing:border-box;color:rgb(3,102,214);text-decoration-line:none" target="_blank">http://erlang.org/download/otp_src_23.0-rc2.readme</a></p><p style="box-sizing:border-box;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px">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-rc2.exe" rel="nofollow" style="box-sizing:border-box;color:rgb(3,102,214);text-decoration-line:none" target="_blank">http://erlang.org/download/otp_win32_23.0-rc2.exe</a><br style="box-sizing:border-box"><a href="http://erlang.org/download/otp_win64_23.0-rc2.exe" rel="nofollow" style="box-sizing:border-box;color:rgb(3,102,214);text-decoration-line:none" target="_blank">http://erlang.org/download/otp_win64_23.0-rc2.exe</a></p><p style="box-sizing:border-box;margin-top:0px;color:rgb(36,41,46);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;margin-bottom:0px">Online documentation can be browsed here:<br style="box-sizing:border-box"><a href="http://erlang.org/documentation/doc-11.0-rc2/doc" rel="nofollow" style="box-sizing:border-box;color:rgb(3,102,214);text-decoration-line:none" target="_blank">http://erlang.org/documentation/doc-11.0-rc2/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;color:rgb(3,102,214);text-decoration-line:none" target="_blank">https://github.com/erlang/otp</a></p></div>
</blockquote></div>