Skip to content

-dump-hi includes more information that --show-iface

Given a file:

main = print 1

If you compile and show the interface with:

$ ghc -ddump-to-file -ddump-hi Main.hs
$ ghc --show-iface Main.hi > Main.show-iface

I would expect Main.dump-hi (created by the first line) and Main.show-iface (created by the second line) to contain roughly the same contents. However, the second form of dumping only shows a subset of the first. As an example:

  • Main.dump-hi contains import -/ base-4.12.0.0:Prelude 80c668cb99fbafebd524c5e897f8c982
  • Main.show-iface contains import -/ Prelude 80c668cb99fbafebd524c5e897f8c982

Importantly (and for what I'm trying to do, frustratingly) the second form lacks the package name. I would have expected both versions to be roughly the same. I use the information from the .hi files in Weeder. In old versions I relied on the fact Stack passed -ddump-hi. Now that it doesn't I want to manually dump the .hi files after the fact, which is not as easy as I hoped.

GHC 8.6.5 x86_64 on Windows.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information