[GHC] #1853: hpc mix files for Main modules overwrite each other

GHC ghc-devs at haskell.org
Thu Jan 7 16:37:41 UTC 2016


#1853: hpc mix files for Main modules overwrite each other
----------------------------------+--------------------------------------
        Reporter:  guest          |                Owner:
            Type:  bug            |               Status:  new
        Priority:  lowest         |            Milestone:  8.0.1
       Component:  Code Coverage  |              Version:  6.8.1
      Resolution:                 |             Keywords:
Operating System:  Linux          |         Architecture:  x86_64 (amd64)
 Type of failure:  None/Unknown   |            Test Case:
      Blocked By:                 |             Blocking:
 Related Tickets:                 |  Differential Rev(s):
       Wiki Page:                 |
----------------------------------+--------------------------------------

Comment (by ezyang):

 So, in some sense, you are actually completely screwed, because at runtime
 the executable producing Tix files has no idea if it was compiled from
 `Main1.hs` or `Main2.hs`: the symbol names for the two executables live in
 the same namespace, etc.

 There is actually a very cunning way this problem could be fixed:

 1. `-main-is` could be extended to work with modules which are not in the
 `main` package.
 2. Executables could then be compiled while setting `-package-name` to
 something that is not `main`.

 Then the symbol names would be different and you could merge them
 reliably.

 The alternative is that HPC can be told explicitly that a mix file is for
 a specific file name (extending it's model to not be profiling a pile of
 `Module`s, but a pile of `Module`s or files).

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


More information about the ghc-tickets mailing list