Major commit to the constraint solver

Richard Eisenberg eir at
Tue Nov 4 01:11:14 UTC 2014

I've done a validate on my Mac. Here is the output (indented), with comments (outdented):

   ../../libraries/base/tests/IO  hReady002 [bad stderr] (normal)

Succeeded on a later run

   cabal/cabal01                  cabal01 [bad exit code] (normal)

Wrong exit code (expected 0 , actual 2 )

tar: --format: Cannot stat: No such file or directory
tar: ustar: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors.
make[2]: *** [cabal01] Error 1

*** unexpected failure for cabal01(normal)

   cabal/cabal06                  cabal06 [bad stdout] (normal)

Actual stdout output differs from expected:
--- ./cabal06/cabal06.stdout	2014-11-03 13:23:21.000000000 -0500
+++ ./cabal06/	2014-11-03 20:00:56.000000000 -0500
@@ -1,7 +1,7 @@
 Does the first instance of q depend on p-1.0?
+       1
 Does the second instance of q depend on p-1.0?
+       1
 Configuring r-1.0...
 Configuring r-1.0...
*** unexpected failure for cabal06(normal)

   driver/objc                    objc-hi [exit code non-0] (normal)
   driver/objc                    objcpp-hi [exit code non-0] (normal)
   driver/sigof02                 sigof02dmt [bad stderr] (normal)

These three are almost certainly not related to your work.

   indexed-types/should_compile   PushedInAsGivens [stderr mismatch] (normal)

Actual stderr output differs from expected:
--- /dev/null	2014-11-03 20:06:19.000000000 -0500
+++ ./PushedInAsGivens.comp.stderr	2014-11-03 20:06:21.000000000 -0500
@@ -0,0 +1,27 @@
+    Couldn't match expected type ‘a1’ with actual type ‘a’
+      because type variable ‘a1’ would escape its scope
+    This (rigid, skolem) type variable is bound by
+      the type signature for foo :: (F Int ~ [a1]) => a1 -> Int
+      at PushedInAsGivens.hs:9:20-44
+    Relevant bindings include
+      x :: a1 (bound at PushedInAsGivens.hs:10:17)
+      foo :: a1 -> Int (bound at PushedInAsGivens.hs:10:13)
+      y :: a (bound at PushedInAsGivens.hs:9:5)
+      bar :: a -> (a, Int) (bound at PushedInAsGivens.hs:9:1)
+    In the expression: y
+    In the first argument of ‘length’, namely ‘[x, y]’
+    Couldn't match expected type ‘[a]’ with actual type ‘F Int’
+    Relevant bindings include
+      y :: a (bound at PushedInAsGivens.hs:9:5)
+      bar :: a -> (a, Int) (bound at PushedInAsGivens.hs:9:1)
+    In the expression: foo y
+    In the expression: (y, foo y)
+    In the expression:
+      let
+        foo :: (F Int ~ [a]) => a -> Int
+        foo x = length [...]
+      in (y, foo y)
*** unexpected failure for PushedInAsGivens(normal)

   llvm/should_compile            T5486 [stderr mismatch] (optllvm)
   llvm/should_compile            T5681 [stderr mismatch] (optllvm)
   llvm/should_compile            T7571 [stderr mismatch] (optllvm)

These seem to be some clang misconfiguration.

   perf/compiler                  T4801 [stat too good] (normal)
   perf/compiler                  T5631 [stat not good enough] (normal)
   rts                            T5435_dyn_asm [bad stdout] (normal)

These three have been failing on and off for a while.

   safeHaskell/check/pkg01        safePkg01 [bad stdout] (normal)

Edward addressed this one, I believe.

So, it seems the one real hit is the one you were expecting -- that's good. Unfortunately, we also see that validation on a Mac doesn't work so well these days. My experience is that there's usually a few failing tests, but not nearly this many. Perhaps it's a sign of the success of the Travis/Harbormaster validation runs that folks aren't validating at home, lessening the pressure to keep clean validation on a variety of platforms.

Anyway, I hope this is helpful.


On Nov 3, 2014, at 4:23 PM, "Edward Z. Yang" <ezyang at> wrote:

> Excerpts from Simon Peyton Jones's message of 2014-11-03 09:28:49 -0800:
>> *         I get an odd wibble in safePk01, see this thread<> with Edward
> Hello Simon,
> Here's what you should do for the safePkg01 wibble:
>    1. Apply the attached patch to your tree (this will
>       break the tests temporarily.)
>    2. Accept the new output for safePkg01 which no longer has
>       the package keys in it.
>    3. Remove the noramliseArrayPackageKey goop from all.T
> I could do the changes myself but it's your branch so I don't want to
> touch it unduly.
> BTW, here is why your change removed the package keys: --show-iface
> previously pretty-printed as if -dppr-debug was always on.  You touched
> this code so that --show-iface only prints in debug style if you
> actually asked for -dppr-debug; this changed the output of these tests.
> Edward
> <0001-Tweak-Safe-Haskell-test-to-show-iface-with-large-col.patch>_______________________________________________
> ghc-devs mailing list
> ghc-devs at

More information about the ghc-devs mailing list