[GHC] #9454: Unregisterized builds failing due to multiple uniques assigned to same FastString

GHC ghc-devs at haskell.org
Sun Aug 17 22:43:28 UTC 2014


#9454: Unregisterized builds failing due to multiple uniques assigned to same
FastString
-------------------------------------+-------------------------------------
       Reporter:  ezyang             |                   Owner:  ezyang
           Type:  bug                |                  Status:  new
       Priority:  high               |               Milestone:
      Component:  Compiler           |                 Version:  7.9
       Keywords:                     |        Operating System:
   Architecture:  Unknown/Multiple   |  Unknown/Multiple
     Difficulty:  Unknown            |         Type of failure:  Incorrect
     Blocked By:                     |  result at runtime
Related Tickets:                     |               Test Case:
                                     |                Blocking:
                                     |  Differential Revisions:
-------------------------------------+-------------------------------------
 When compiling with `--enable-unregisterised`, we get this failure:

 {{{
 "inplace/bin/ghc-stage1" -hisuf hi -osuf  o -hcsuf hc -static  -H32m -O
 -this-package-key conta_4P4
 dHnD3A89EkvERxmaFmd -hide-all-packages -i -ilibraries/containers/.
 -ilibraries/containers/dist-install
 /build -ilibraries/containers/dist-install/build/autogen
 -Ilibraries/containers/dist-install/build -Il
 ibraries/containers/dist-install/build/autogen
 -Ilibraries/containers/include    -optP-include -optPli
 braries/containers/dist-install/build/autogen/cabal_macros.h -package-key
 array_H3W2D8UaI9TKGEhUuQHax2
  -package-key base_DiPQ1siqG3SBjHauL3L03p -package-key
 deeps_L0rJEVU1Zgn8x0Qs5aTOsU -package-key ghcpr
 _BE58KUgBe9ELCsPXiJ1Q2r -O2 -Wall -XHaskell98 -XRoleAnnotations -O2  -no-
 user-package-db -rtsopts
  -odir libraries/containers/dist-install/build -hidir libraries/containers
 /dist-install/build -stubdir
  libraries/containers/dist-install/build  -dynamic-too -c
 libraries/containers/./Data/StrictPair.hs -o
  libraries/containers/dist-install/build/Data/StrictPair.o -dyno
 libraries/containers/dist-install/bui
 ld/Data/StrictPair.dyn_o
 <command line>: unknown package: deepseq-1.3.0.2
 }}}

 The reason why GHC is unable to find the package is because, as it turns
 out, the Unique that was used to store the key in a map is different from
 the Unique associated with the FastString that we're doing the lookup
 with.

 The bug only shows up with ghc-stage1 is compiled with optimizations.

 Bisecting revealed that this commit was to blame:

 {{{
 commit 66218d15b7c27a4a38992003bd761f60bae84b1f
 Author: Edward Z. Yang <ezyang at cs.stanford.edu>
 Date:   Fri Jul 18 14:48:47 2014 +0100

     Package keys (for linking/type equality) separated from package IDs.
 }}}

 However, looking at the commit, there is nothing that would obviously
 cause this problem, so maybe it is tickling a preexisting bug.

 Bisection script:

 {{{
 #!/bin/sh
 make clean
 git submodule update
 perl boot
 ./configure --enable-unregisterised
 make -j11 libraries/containers/dist-install/build/Data/StrictPair.o
 }}}

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


More information about the ghc-tickets mailing list