<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<div>
<div id="x_compose-container" itemscope="" itemtype="https://schema.org/EmailMessage" style="direction:ltr">
<span itemprop="creator" itemscope="" itemtype="https://schema.org/Organization"><span itemprop="name"></span></span>
<div>
<div style="direction:ltr">I'd like the IR or C to be deterministic</div>
<div style="direction:ltr">and that is under our control.</div>
<div><br>
</div>
<div style="direction:ltr">I'd like the assembly / object / executable to be deterministic too but we can't really control that.</div>
<div><br>
</div>
<div style="direction:ltr">Determinism allows caching. </div>
<div><br>
</div>
<div class="x_acompli_signature">- Jay</div>
</div>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> M3devel <m3devel-bounces@elegosoft.com> on behalf of Rodney M. Bates <rodney_bates@lcwb.coop><br>
<b>Sent:</b> Wednesday, July 5, 2017 9:13:53 AM<br>
<b>To:</b> m3devel@elegosoft.com<br>
<b>Subject:</b> Re: [M3devel] Fw: [M3commit] [modula3/cm3] 0d5954: reduce-target-variation</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText"><br>
<br>
On 07/04/2017 02:08 AM, Jay K wrote:<br>
> I'd really like an *option* to make builds far more "deterministic" and "consistent" and "repeatable" from machine to machine, maybe similar-target to similar-target (OpenBSD/x86==Linux/x86==NetBSD/x86==Solaris/x86).<br>
><br>
><br>
> That is: I want the default to have full paths all over the place, but an option to reduce paths to something the same across all machines.<br>
><br>
><br>
> I want the C backend to by default have a bunch of line numbers to aid debugging, but an option (same option) to omit them.<br>
><br>
><br>
> Paths like Compiler.ThisFIle, if they have any slashes, should probably just always be forward.<br>
><br>
> This might break some workflows around copy/paste them into file.open dialogs on Windows though.<br>
><br>
> Much of Windows supports forward slashes, and much does not.<br>
><br>
><br>
> Maybe "-very-deterministic". Yes this is half joke -- deterministic is thought to be a boolean, and everything should be deterministic, but the definition of deterministic is actually unclear.<br>
><br>
><br>
> The "target" in reduce-target-variation isn't clearly the right name for this.<br>
><br>
> Maybe just reduce-variation or reduce-noise or more-reproducible.<br>
><br>
><br>
> This is a step toward a distribution form that isn't target-specific.<br>
><br>
> One run of the C backend could generate something redistributable to all or many targets.<br>
<br>
In this case, we would be taking it on faith that the final C compiler didn't introduce any<br>
nondeterminism that we cared about.  But perhaps determinism in our own code is all we are<br>
concerned with.<br>
<br>
><br>
><br>
>  - Jay<br>
><br>
><br>
><br>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
> *From:* M3commit <m3commit-bounces@elegosoft.com> on behalf of GitHub <noreply@github.com><br>
> *Sent:* Tuesday, July 4, 2017 6:21 AM<br>
> *To:* m3commit@elegosoft.com<br>
> *Subject:* [M3commit] [modula3/cm3] 0d5954: reduce-target-variation<br>
><br>
>   Branch: refs/heads/reduce-target-variation<br>
>   Home:   <a href="https://github.com/modula3/cm3">https://github.com/modula3/cm3</a><br>
> <<a href="https://github.com/modula3/cm3">https://github.com/modula3/cm3</a>><br>
>        <br>
> GitHub - modula3/cm3: Critical Mass Modula-3 <<a href="https://github.com/modula3/cm3">https://github.com/modula3/cm3</a>><br>
> github.com<br>
> cm3 - Critical Mass Modula-3 ... Clone with HTTPS Use Git or checkout with SVN using the web URL.<br>
><br>
><br>
><br>
>   Commit: 0d59546d11641afe3772b73f226c2e90b960d7fc<br>
>       <a href="https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc">
https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc</a><br>
> <<a href="https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc">https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc</a>><br>
>        <br>
> reduce-target-variation · modula3/cm3@0d59546 <<a href="https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc">https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc</a>><br>
> github.com<br>
> cm3 - Critical Mass Modula-3<br>
><br>
><br>
><br>
>   Author: jaykrell <jay.krell@cornell.edu><br>
>   Date:   2017-07-03 (Mon, 03 Jul 2017)<br>
><br>
>   Changed paths:<br>
>     M m3-sys/cm3/src/Main.m3<br>
>     M m3-sys/cm3/src/Makefile.m3<br>
>     M m3-sys/cminstall/src/config-no-install/cm3cfg.common<br>
>     M m3-sys/m3back/src/M3C.m3<br>
>     M m3-sys/m3cc/gcc-4.7/gcc/dbxout.c<br>
>     M m3-sys/m3cc/gcc-4.7/gcc/dwarf2out.c<br>
>     M m3-sys/m3cc/gcc-4.7/gcc/toplev.c<br>
>     M m3-sys/m3cc/gcc-4.7/gcc/toplev.h<br>
>     M m3-sys/m3cc/gcc/gcc/m3cg/lang.opt<br>
>     M m3-sys/m3cc/gcc/gcc/m3cg/parse.c<br>
>     M m3-sys/m3front/src/misc/Coverage.m3<br>
>     M m3-sys/m3front/src/misc/Host.i3<br>
>     M m3-sys/m3front/src/misc/Host.m3<br>
>     M m3-sys/m3front/src/misc/M3Header.m3<br>
>     M m3-sys/m3front/src/misc/Scanner.m3<br>
>     M m3-sys/m3front/src/values/Module.m3<br>
>     M m3-sys/m3middle/src/Target.i3<br>
>     M scripts/python/pylib.py<br>
><br>
>   Log Message:<br>
>   -----------<br>
>   reduce-target-variation<br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> M3devel mailing list<br>
> M3devel@elegosoft.com<br>
> <a href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel">https://m3lists.elegosoft.com/mailman/listinfo/m3devel</a><br>
><br>
<br>
-- <br>
Rodney Bates<br>
rodney.m.bates@acm.org<br>
_______________________________________________<br>
M3devel mailing list<br>
M3devel@elegosoft.com<br>
<a href="https://m3lists.elegosoft.com/mailman/listinfo/m3devel">https://m3lists.elegosoft.com/mailman/listinfo/m3devel</a><br>
</div>
</span></font>
</body>
</html>