www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20444] New: Make __DATE__ in dlang reproducible using

https://issues.dlang.org/show_bug.cgi?id=20444

          Issue ID: 20444
           Summary: Make __DATE__ in dlang reproducible using
                    SOURCE_DATE_EPOCH
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: jelle vdwaa.nl

The reproducible builds project is working on achieving bit for bit identical
builds on for example two different systems. To prove that the same source can
be used on two different machines to create an identical build. Timestamps lead
to unreproducibility by use of __DATE__ or __TIME__, other compilers such as
GCC support SOURCE_DATE_EPOCH which makes the build reproducible by using that
epoch timestamp value as value for the __DATE__.

It would be nice to see the D compiler also support SOURCE_DATE_EPOCH so that
__DATE__ and __TIME__ does not need to be removed from source code to make
builds reproducible. 

More about reproducible builds can be found here:
https://reproducible-builds.org/ and about SOURCE_DATE_EPOCH
https://reproducible-builds.org/docs/source-date-epoch/

GCC references:
https://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html
https://wiki.debian.org/ReproducibleBuilds/TimestampsFromCPPMacros

--
Dec 12 2019