[M3devel] Fw: [M3commit] [modula3/cm3] 0d5954: reduce-target-variation
Rodney M. Bates
rodney_bates at lcwb.coop
Thu Jul 6 17:23:02 CEST 2017
All agreed.
On 07/05/2017 06:53 PM, Jay K wrote:
> 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
--
Rodney Bates
rodney.m.bates at acm.org
More information about the M3devel
mailing list