Re: How to load & parse an HI (interface) file?

2017-12-02 Thread Brandon Allbery
The problem with the API is it's complex and can break between ghc versions. But --show-iface is even more fragile and prone to break between ghc versions. The history of the plugins package constitutes a record of both kinds of pain. On Sat, Dec 2, 2017 at 9:11 PM, Saurabh Nanda

Re: How to load & parse an HI (interface) file?

2017-12-02 Thread Saurabh Nanda
I _think_ I've found what I need from https://github.com/ghc/ghc/blob/8843a39b3c941b1908a8d839f52bc323f3b45081/compiler/iface/LoadIface.hs#L994-L1002 On Sun, Dec 3, 2017 at 7:41 AM, Saurabh Nanda wrote: > > I would be cautious about using the ghc-api hi file interfaces;

Re: How to load & parse an HI (interface) file?

2017-12-02 Thread Saurabh Nanda
> I would be cautious about using the ghc-api hi file interfaces; hi files turn out to interact with a > lot of low-level parts in complex ways (even to the extent that they're a large part of why ghc > can't parallelize builds itself and attempts to change that have mostly failed). Are you

Re: How to load & parse an HI (interface) file?

2017-12-02 Thread Saurabh Nanda
GHC has a "--show-iface" option which pretty prints the ".hi" file. Not > sure if it works for your use-case but it may be easier to parse the text > displayed by this option. > >From https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/IfaceFiles -- > This textual format is not

Re: How to load & parse an HI (interface) file?

2017-12-02 Thread Brandon Allbery
I would be cautious about using the ghc-api hi file interfaces; hi files turn out to interact with a lot of low-level parts in complex ways (even to the extent that they're a large part of why ghc can't parallelize builds itself and attempts to change that have mostly failed). But if you must do

Re: How to load & parse an HI (interface) file?

2017-12-02 Thread Harendra Kumar
Also, "-ddump-hi" dumps the same information at compile time. -harendra On 3 December 2017 at 01:50, Harendra Kumar wrote: > GHC has a "--show-iface" option which pretty prints the ".hi" file. Not > sure if it works for your use-case but it may be easier to parse the

Re: How to load & parse an HI (interface) file?

2017-12-02 Thread Harendra Kumar
GHC has a "--show-iface" option which pretty prints the ".hi" file. Not sure if it works for your use-case but it may be easier to parse the text displayed by this option. -harendra On 2 December 2017 at 21:29, Saurabh Nanda wrote: > (GHC newbie alert -- is this the

How to load & parse an HI (interface) file?

2017-12-02 Thread Saurabh Nanda
(GHC newbie alert -- is this the right mailing list for these kind of questions?) I"m writing some code to figure out all the instances of particular type-classes and after exploring a lot of options (hlint, haskell-src-exts, annotations, doctests, etc), I realized that the compiler had already