<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<br>
<div class="moz-cite-prefix">On 05/27/2018 11:31 AM, Eric S. Raymond
via devel wrote:<br>
</div>
<blockquote type="cite"
cite="mid:20180527163108.622C53A42D4@snark.thyrsus.com">
<pre wrap="">
* GOPREP: Clear the path to moving the codebase to Go. We haven't committed
to doing this yet, but the odds on that happening someday look high enough
that I think it is good to already be factoring it into our planning.
</pre>
</blockquote>
<br>
Though it is known to some I have not mentioned this publicly until
now; the De-globalization / Structification project's goal is to
make the codebase easier to port over to Go if the time comes. The
project has spawned a check of when variables are getting
initialized, which also helps with GOPREP.<br>
<br>
<blockquote type="cite"
cite="mid:20180527163108.622C53A42D4@snark.thyrsus.com">
<pre wrap="">4. Returning to code simplification, every simplification helps with
GOPREP. This one more so than most because it will dramatically
reduce the spread of platform-dependent code paths we have to map to
Go if and when it comes time to do that.
</pre>
</blockquote>
[...]<br>
<br>
<blockquote type="cite"
cite="mid:20180527163108.622C53A42D4@snark.thyrsus.com">
<pre wrap="">Reasons for GOPREP:
Go means (1) no more buffer-overrun attacks, ever, (2) no more memory-leak
issues, ever, (3) *vast* code simplification (LOC might easily drop 50%), (4)
greatly improved maintainability of what remains.
</pre>
</blockquote>
<br>
There is also a benefit in that by cutting out lots of
easy-to-screw-up C boilerplate code it dramatically lowers the
barrier to entry for new developers to come in without being in
terror of breaking something.<br>
<br>
<blockquote type="cite"
cite="mid:20180527163108.622C53A42D4@snark.thyrsus.com">
<pre wrap="">GOPREP: Aside from the considerable labor of code translation, there is
only one problem blocking a move to Go. That is how GC stop-the-world
pauses might stall refclock reports.
</pre>
</blockquote>
<br>
[...]<br>
<br>
<blockquote type="cite"
cite="mid:20180527163108.622C53A42D4@snark.thyrsus.com">
<pre wrap="">= DEPENDENCIES =
The logical order to do these things in is: SINGLESOCK first. Then
EVENTS, if we choose to do it. Then NTS. GOPREP isn't a task to be
scheduled (at least not yet) but a set of issues to keep an eye on.
</pre>
</blockquote>
<br>
Fortunately most (all?) of what GOPREP needs before the translation
proper begins is a win even if GOMOVE never happens.<br>
<br>
<br>
<div class="moz-signature">-- <br>
<i>"In the end; what separates a Man, from a Slave? Money? Power?
No. A Man Chooses, a Slave Obeys."</i> -- Andrew Ryan
<p>
<i>"Utopia cannot precede the Utopian.
It will exist the moment we are fit to occupy it."</i> --
Sophia Lamb
</p>
<p>
I work for the <a href="https://icei.org/">Internet Civil
Engineering Institute</a>, help us save the Internet from
Entropy!
</p>
</div>
</body>
</html>