heads up: GHC gets a new constraint solver (again)

Daniel Fischer daniel.is.fischer at googlemail.com
Wed Nov 16 21:36:14 CET 2011


On Wednesday 16 November 2011, 19:22:53, Dimitrios Vytiniotis wrote:
> Friends,
> 
> After a very busy period of hard work with Simon, we've re-engineered
> GHCs constraint solver and I just pushed a big patch on master along
> with modifications in the testsuite.
> 
> The new constraint solver is based on the existing in its core ideas but
> is shorter, much cuter, and for many programs much faster (for others
> performance is roughly the same)
> 
> If you had a program that was taking very long to compile in the past,
> we'd be very interested to see how this reengineered constraint solver
> performs on it. Same if you spot problems or notable regressions.

Seems to be a clear win for T5030:

bytes allocated 943772224 is less than minimum allowed 1200000000
If this is because you have improved GHC, please
update the test so that GHC doesn't regress again
*** unexpected failure for T5030(normal)

:D

But due to its greater efficiency, it's dangerous in cases like 
SkolemOccursLoop.
It seems the new solver gets as far with a context-stack of N as the old 
got with a context-stack of 2N+1 there.
When, like in SkolemOccursLoop, the context grows exponentially in size, 
you're running out of memory even with a relatively small context-stack.

Cheers,
Daniel



More information about the Glasgow-haskell-users mailing list