
To build the 'vivid' package (on Hackage) with recent versions of GHC (I believe the problem is with 8.0+, didn't see it before then), I need to compile with -fconstraint-solver-iterations=0. (0 meaning unbounded) However, I noticed today that the GHC docs say "Typically one iteration suffices; so please yell if you find you need to set it higher than the default." The code (in Vivid.SynthDef.FromUA) uses a large amount of type family recursion. Is this not a case where I should be yelling? If I should be, I can provide a smaller repro case. If this is expected, are there techniques for rewriting the code in a way that'll fit under the default number of iterations? I've tried rewriting, making the number of iterations logarithmic instead of linear (e.g. by appending lists instead of cons-ing), but still hit the problem (even with an increased but bounded number of iteration steps). Thanks! Tom

I'd love to see the repo case. with -ddump-simpl-iterations -ddump-simpl-stats you'll see the result after each iteration, and what was done. I bet you get to the point where only one thing happens per iteration and that's bad. Make a ticket! Thanks Simon | -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of | amindfv@gmail.com | Sent: 27 April 2017 16:18 | To: ghc-devs@haskell.org | Subject: Constraint solver iterations | | To build the 'vivid' package (on Hackage) with recent versions of GHC | (I believe the problem is with 8.0+, didn't see it before then), I | need to compile with -fconstraint-solver-iterations=0. (0 meaning | unbounded) | | However, I noticed today that the GHC docs say "Typically one | iteration suffices; so please yell if you find you need to set it | higher than the default." | | The code (in Vivid.SynthDef.FromUA) uses a large amount of type family | recursion. Is this not a case where I should be yelling? If I should | be, I can provide a smaller repro case. | | If this is expected, are there techniques for rewriting the code in a | way that'll fit under the default number of iterations? I've tried | rewriting, making the number of iterations logarithmic instead of | linear (e.g. by appending lists instead of cons-ing), but still hit | the problem (even with an increased but bounded number of iteration | steps). | | Thanks! | Tom | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org | https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.h | askell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc- | devs&data=02%7C01%7Csimonpj%40microsoft.com%7C897af52446cd4b1cefd608d4 | 8d785fa6%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6362889955277201 | 33&sdata=POYwck2lKRtnKCfC%2FNAASG8ZBvm2lFiuFaCCDminogc%3D&reserved=0
participants (2)
-
amindfv@gmail.com
-
Simon Peyton Jones