[GHC] #4012: Compilation results are not deterministic

GHC ghc-devs at haskell.org
Tue Sep 2 12:01:19 UTC 2014


#4012: Compilation results are not deterministic
-------------------------------------+-------------------------------------
              Reporter:  kili        |            Owner:
                  Type:  bug         |           Status:  new
              Priority:  normal      |        Milestone:  7.10.1
             Component:  Compiler    |          Version:  6.12.2
            Resolution:              |         Keywords:
      Operating System:              |     Architecture:  Unknown/Multiple
  Unknown/Multiple                   |       Difficulty:  Difficult (2-5
       Type of failure:  Other       |  days)
             Test Case:              |       Blocked By:
              Blocking:              |  Related Tickets:
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by nh2):

 @simonmar: Then I shall leave this ticket to issues concerning (1), and
 create a separate one for byte-identical compilation.

 Why would you want byte-identical compilation (or, how Debian calls it,
 "reproducible builds")? There are a few reasons (3 is the key point for me
 right now):

 1. Distributions want it (see
 https://wiki.debian.org/ReproducibleBuilds#Why_do_we_want_reproducible_builds.3F)
 2. It allows users of open source projects (e.g. Tor, TrueCrypt had famous
 efforts in this direction) to verify that the binary they downloaded
 really is built from the unmodified source
 3.  It gives recompilation avoidance in build systems outside of GHC. If
 the binary you just produced is byte-identical to what was already there,
 you can stop (e.g. don't need to run tests in CI etc.).

 And finally, a more-belief-than-evidence-supported point:

 5. It will improve binary distributions of cabal packages and similar
 things. For example, I would like to build a Haskell equivalent to
 `ccache`, and having byte-identical output for the same input would make
 that much easier.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/4012#comment:56>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list