Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Matthew Pickering
This is precisely the problem I was worried about in April. https://mail.haskell.org/pipermail/ghc-devs/2019-April/017493.html Any fix should ensure adding a test to make sure it doesn't happen again. Cheers, Matt On Mon, Sep 16, 2019 at 10:38 PM Shayne Fletcher via ghc-devs wrote: > > Hi Seb

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Sebastian Graf
Hmm. The issue of build parallelism is kind-of orthogonal to .hs-boot files/circular imports. The impact of .hs-boot files on build parallelism depends on their announced imports; at least in my semantic model of them (which might be incorrect) they just break cycles. The degree of parallelism is

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Sebastian Graf
Shayne, out of curiosity, could you find out which of the three modules DsMonad, FamInst and TcSimplify lead to the blowup? If it's not too much of a hassle, that is. These are the only imports of PmOracle that aren't already exported from ghc-lib-parser. Cheers, Sebastian Am Mo., 16. Sept. 2019

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Shayne Fletcher via ghc-devs
Seeing what I can do. On Tue, Sep 17, 2019 at 10:31 AM Sebastian Graf wrote: > Shayne, > > out of curiosity, could you find out which of the three modules DsMonad, > FamInst and TcSimplify lead to the blowup? If it's not too much of a > hassle, that is. > These are the only imports of PmOracle t

Fwd: Why do Constraint Tuple data constructors exist?

2019-09-17 Thread Joe Crayne
My question arrised in the following context: ``` module ForEachHelper where import Data.Kind import GHC.TypeLits type family ForEach (c :: k -> Constraint) (xs :: [k]) :: Constraint where ForEach c '[] = () ForEach c (x:xs) = (c x, ForEach c xs) type family Replicate n x where Repl

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Shayne Fletcher via ghc-devs
Getting you some raw data to look at but first results indicate at least that `DsMonad` is pulling in `nativeGen`, `llvmGen`, `stgToCmm`, `simplCore`, `hieFile` and so on. On Tue, Sep 17, 2019 at 12:05 PM Shayne Fletcher wrote: > Seeing what I can do. > > On Tue, Sep 17, 2019 at 10:31 AM Sebasti

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Shayne Fletcher via ghc-devs
Excellent work Sebastian. I confirm that the situation is resolved by https://gitlab.haskell.org/ghc/ghc/merge_requests/1743. On Mon, Sep 16, 2019 at 5:23 PM Sebastian Graf wrote: > Hi Shayne, > > Sorry to hear that! We didn't consider modularity at all and I would be > happy to try to refactor

Re: Why do Constraint Tuple data constructors exist?

2019-09-17 Thread Edward Kmett
I'm not sure if this is directly relevant to your issues around GHC.Classes.(%,%), but there are some issues with using tuples for Constraints. Namely that they can only be fully applied, and do not exist naked as (,) :: Constraint -> Constraint -> Constraint. With UndecidableInstances, etc. you