[M3devel] Fw: [M3commit] [modula3/cm3] 0d5954: reduce-target-variation

Jay K jayk123 at hotmail.com
Thu Jul 6 01:53:10 CEST 2017


I'd like the IR or C to be deterministic
and that is under our control.

I'd like the assembly / object / executable to be deterministic too but we can't really control that.

Determinism allows caching.

- Jay
________________________________
From: M3devel <m3devel-bounces at elegosoft.com> on behalf of Rodney M. Bates <rodney_bates at lcwb.coop>
Sent: Wednesday, July 5, 2017 9:13:53 AM
To: m3devel at elegosoft.com
Subject: Re: [M3devel] Fw: [M3commit] [modula3/cm3] 0d5954: reduce-target-variation



On 07/04/2017 02:08 AM, Jay K wrote:
> 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).
>
>
> 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.
>
>
> 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.
>
>
> Paths like Compiler.ThisFIle, if they have any slashes, should probably just always be forward.
>
> This might break some workflows around copy/paste them into file.open dialogs on Windows though.
>
> Much of Windows supports forward slashes, and much does not.
>
>
> 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.
>
>
> The "target" in reduce-target-variation isn't clearly the right name for this.
>
> Maybe just reduce-variation or reduce-noise or more-reproducible.
>
>
> This is a step toward a distribution form that isn't target-specific.
>
> One run of the C backend could generate something redistributable to all or many targets.

In this case, we would be taking it on faith that the final C compiler didn't introduce any
nondeterminism that we cared about.  But perhaps determinism in our own code is all we are
concerned with.

>
>
>  - Jay
>
>
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> *From:* M3commit <m3commit-bounces at elegosoft.com> on behalf of GitHub <noreply at github.com>
> *Sent:* Tuesday, July 4, 2017 6:21 AM
> *To:* m3commit at elegosoft.com
> *Subject:* [M3commit] [modula3/cm3] 0d5954: reduce-target-variation
>
>   Branch: refs/heads/reduce-target-variation
>   Home:   https://github.com/modula3/cm3
> <https://github.com/modula3/cm3>
>
> GitHub - modula3/cm3: Critical Mass Modula-3 <https://github.com/modula3/cm3>
> github.com
> cm3 - Critical Mass Modula-3 ... Clone with HTTPS Use Git or checkout with SVN using the web URL.
>
>
>
>   Commit: 0d59546d11641afe3772b73f226c2e90b960d7fc
>       https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc
> <https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc>
>
> reduce-target-variation · modula3/cm3 at 0d59546 <https://github.com/modula3/cm3/commit/0d59546d11641afe3772b73f226c2e90b960d7fc>
> github.com
> cm3 - Critical Mass Modula-3
>
>
>
>   Author: jaykrell <jay.krell at cornell.edu>
>   Date:   2017-07-03 (Mon, 03 Jul 2017)
>
>   Changed paths:
>     M m3-sys/cm3/src/Main.m3
>     M m3-sys/cm3/src/Makefile.m3
>     M m3-sys/cminstall/src/config-no-install/cm3cfg.common
>     M m3-sys/m3back/src/M3C.m3
>     M m3-sys/m3cc/gcc-4.7/gcc/dbxout.c
>     M m3-sys/m3cc/gcc-4.7/gcc/dwarf2out.c
>     M m3-sys/m3cc/gcc-4.7/gcc/toplev.c
>     M m3-sys/m3cc/gcc-4.7/gcc/toplev.h
>     M m3-sys/m3cc/gcc/gcc/m3cg/lang.opt
>     M m3-sys/m3cc/gcc/gcc/m3cg/parse.c
>     M m3-sys/m3front/src/misc/Coverage.m3
>     M m3-sys/m3front/src/misc/Host.i3
>     M m3-sys/m3front/src/misc/Host.m3
>     M m3-sys/m3front/src/misc/M3Header.m3
>     M m3-sys/m3front/src/misc/Scanner.m3
>     M m3-sys/m3front/src/values/Module.m3
>     M m3-sys/m3middle/src/Target.i3
>     M scripts/python/pylib.py
>
>   Log Message:
>   -----------
>   reduce-target-variation
>
>
>
>
> _______________________________________________
> M3devel mailing list
> M3devel at elegosoft.com
> https://m3lists.elegosoft.com/mailman/listinfo/m3devel
>

--
Rodney Bates
rodney.m.bates at acm.org
_______________________________________________
M3devel mailing list
M3devel at elegosoft.com
https://m3lists.elegosoft.com/mailman/listinfo/m3devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20170705/377a905e/attachment.html>


More information about the M3devel mailing list