[GHC] #10952: Use IPids instead of package keys in HPC tix files

GHC ghc-devs at haskell.org
Fri Oct 9 05:09:45 UTC 2015


#10952: Use IPids instead of package keys in HPC tix files
-------------------------------------+-------------------------------------
           Reporter:  mgsloan        |             Owner:
               Type:  bug            |            Status:  new
           Priority:  low            |         Milestone:
          Component:  Code Coverage  |           Version:  7.10.2
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |
-------------------------------------+-------------------------------------
 With GHC 7.10.2, HPC module names are stored in the format
 "package_key/Module.Name", rather than "package_id/Module.Name".  In
 stack, we restrict the coverage results to just the library modules by
 using the "--include" flag.  For GHC 7.10, this means I need to ask ghc-
 pkg what the package key is in order to figure out what to pass in for "--
 include" (see this issue:
 https://github.com/commercialhaskell/stack/issues/785).

 I thought this was done correctly, but now I'm seeing some cases where
 coverage is reporting (0/0) due to the wrong package key being passed
 in...  I think I need to run the ghc-pkg query with the package's ipid
 rather than name..  So, I need to have the correct ipid somewhere, in
 order to run ghc-pkg describe, parse its results to find out what the
 package key is, and then finally pass this in as a CLI argument.  The hpc
 program's CLI is already woefully error-prone (see
 https://ghc.haskell.org/trac/ghc/ticket/10951), but this makes it plain
 hellish.

 Is there a better way to do what I need to do here?

 I think the right approach to resolving this is to put the full ipid in
 the HPC files.  Then, the hpc program should be modified to allow "--
 include" argument to take multiple package identification formats - ipid,
 package identifier, or package name.

 If the full package name was included, I could at least do some custom tix
 file munging based on just the package name.  As things stand, the only
 way I can meaningfully operate on tix files is if I have the correct
 package key.

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


More information about the ghc-tickets mailing list