I'm using Prep's output (mostly so that it's in ANF) in my full
compilation pipeline, so ideally I would save Prep'd Core in my
.hi-equivalents so that I don't have to rerun Prep on them every time
I use them.

I'll get back to you with some concrete examples of `OtherCon []` vs.
meaningful unfoldings next week.

Merging with my other question about shadowing problems with
`toIface*`, in summary it seems that what I really should be doing, is
compiling up to Tidy, taking the `CoreBinding`s from there and using
`toIfaceBinding` on them to save the definitions.

On Sat, Apr 2, 2022 at 12:53 AM Simon Peyton Jones
<simon.peytonjo...@gmail.com> wrote:
>
> I don't think any top-level Ids should have OtherCon [] unfoldings?  If they 
> do, can you give a repro case?  OtherCon [] unfoldings usually mean "I know 
> this variable is evaluated, but I don't know what its value is.  E.g
>    data T = MkT !a !a
>   f (MkT x y) = ...
>
> here x and y have OtherCon [] unfoldings. They are definitely not bottom!
>
> You may want stronger invariants on the output of CorePrep than we have 
> hitherto sought.  Can you explain what they are?  And why you want the output 
> of CorePrep not CoreTidy?
>
> Thanks
>
> Simon
>
> On Fri, 1 Apr 2022 at 09:13, ÉRDI Gergő <ge...@erdi.hu> wrote:
>>
>> Hi,
>>
>> I'm CC-ing the Clash mailing list because I believe they should have
>> encountered the same problem (and perhaps have found a solution to it
>> already!).
>>
>> I'm trying to use `.hi` files compiled with `ExposeAllUnfoldings` set to
>> reconstruct full Core bindings for further processing. By and large, this
>> works, but I get tripped up on identifiers whose unfolding is only given
>> as `OtherCon []`. It is unclear to me what is causing this -- some of them
>> are recursive bindings while others are not.
>>
>> The problem, of course, is that if all I know about an identifier is that
>> it is `OtherCon []`, that doesn't allow me to restore its definition. So
>> is there a way to tell GHC to put "full" unfoldings everywhere in
>> `ExposeAllUnfoldings` mode?
>>
>> Thanks,
>>         Gergo
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs@haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to