Major commit to the constraint solver

Friends I've pushed branch wip/new-flatten-skolems-Oct14. (It has some rebasing near the top.) It branches off master some a few days ago; i.e. it is almost completely up to date. Can you try building it? I want to push it to HEAD, but would like some independent validation first. Three things don't validate for me: * Several tests fail with ioManagerWakeup problems: reported as Trac #9722 * ghcirun002 experiences stack overflow in the bytecode interpreter, but so does HEAD: Trac #9741 * I get an odd wibble in safePk01, see this threadhttps://www.haskell.org/pipermail/ghc-devs/2014-November/007065.html with Edward I'd like to push to master soon. Thanks Simon

Hi, Am Montag, den 03.11.2014, 17:28 +0000 schrieb Simon Peyton Jones:
I’ve pushed branch wip/new-flatten-skolems-Oct14. (It has some rebasing near the top.)
It branches off master some a few days ago; i.e. it is almost completely up to date.
Can you try building it? I want to push it to HEAD, but would like some independent validation first.
Travis build branches automatically, and is already trying to build it: https://travis-ci.org/ghc/ghc/builds/39856856 It just finished, but it is not completely happy: Actual stderr output differs from expected: --- /dev/null 2014-11-03 17:30:32.067943898 +0000 +++ ./indexed-types/should_compile/PushedInAsGivens.comp.stderr 2014-11-03 18:11:53.225519481 +0000 @@ -0,0 +1,27 @@ + +PushedInAsGivens.hs:10:31: + 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]’ + +PushedInAsGivens.hs:11:15: + 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) =====> T2715(normal) 3281 of 4140 [0, 0, 0] *** unexpected failure for PushedInAsGivens(normal) Actual stdout output differs from expected: --- ./safeHaskell/check/pkg01/safePkg01.stdout 2014-11-03 17:30:57.327803827 +0000 +++ ./safeHaskell/check/pkg01/safePkg01.run.stdout 2014-11-03 18:12:11.178706914 +0000 @@ -29,17 +29,17 @@ require own pkg trusted: True M_SafePkg6 -package dependencies: array-0.5.0.1@array_<HASH> +package dependencies: array-0.5.0.1 base-4.8.0.0* trusted: trustworthy require own pkg trusted: False M_SafePkg7 -package dependencies: array-0.5.0.1@array_<HASH> +package dependencies: array-0.5.0.1 base-4.8.0.0* trusted: safe require own pkg trusted: False M_SafePkg8 -package dependencies: array-0.5.0.1@array_<HASH> +package dependencies: array-0.5.0.1 base-4.8.0.0 trusted: trustworthy require own pkg trusted: False *** unexpected failure for safePkg01(normal) Is there more you want us to do besides what Travis just did for us? Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org

That's great; I didn't realise that. How can I navigate to the build log. I went to https://travis-ci.org/ghc/ghc/builds clicked on "Branch summary", found my branch, clicked on the link for "617" but it didn't show me the build log that you did. (It did have a red button saying "617 failed". Thanks | -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of | Joachim Breitner | Sent: 03 November 2014 18:18 | To: ghc-devs@haskell.org | Subject: Re: Major commit to the constraint solver | | Hi, | | | Am Montag, den 03.11.2014, 17:28 +0000 schrieb Simon Peyton Jones: | > I’ve pushed branch wip/new-flatten-skolems-Oct14. (It has some | > rebasing near the top.) | > | > It branches off master some a few days ago; i.e. it is almost | > completely up to date. | > | > Can you try building it? I want to push it to HEAD, but would like | > some independent validation first. | | Travis build branches automatically, and is already trying to build | it: | https://travis-ci.org/ghc/ghc/builds/39856856 | | It just finished, but it is not completely happy: | | Actual stderr output differs from expected: | --- /dev/null 2014-11-03 17:30:32.067943898 +0000 | +++ ./indexed-types/should_compile/PushedInAsGivens.comp.stderr 2014- | 11-03 18:11:53.225519481 +0000 | @@ -0,0 +1,27 @@ | + | +PushedInAsGivens.hs:10:31: | + 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]’ | + | +PushedInAsGivens.hs:11:15: | + 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) | =====> T2715(normal) 3281 of 4140 [0, 0, 0] | *** unexpected failure for PushedInAsGivens(normal) | | Actual stdout output differs from expected: | --- ./safeHaskell/check/pkg01/safePkg01.stdout 2014-11-03 | 17:30:57.327803827 +0000 | +++ ./safeHaskell/check/pkg01/safePkg01.run.stdout 2014-11-03 | 18:12:11.178706914 +0000 | @@ -29,17 +29,17 @@ | require own pkg trusted: True | | M_SafePkg6 | -package dependencies: array-0.5.0.1@array_<HASH> | +package dependencies: array-0.5.0.1 base-4.8.0.0* | trusted: trustworthy | require own pkg trusted: False | | M_SafePkg7 | -package dependencies: array-0.5.0.1@array_<HASH> | +package dependencies: array-0.5.0.1 base-4.8.0.0* | trusted: safe | require own pkg trusted: False | | M_SafePkg8 | -package dependencies: array-0.5.0.1@array_<HASH> | +package dependencies: array-0.5.0.1 base-4.8.0.0 | trusted: trustworthy | require own pkg trusted: False | | *** unexpected failure for safePkg01(normal) | | Is there more you want us to do besides what Travis just did for us? | | Greetings, | Joachim | | -- | Joachim “nomeata” Breitner | mail@joachim-breitner.de • http://www.joachim-breitner.de/ | Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F | Debian Developer: nomeata@debian.org

Hi, Am Dienstag, den 04.11.2014, 08:44 +0000 schrieb Simon Peyton Jones:
That's great; I didn't realise that.
How can I navigate to the build log. I went to https://travis-ci.org/ghc/ghc/builds clicked on "Branch summary", found my branch, clicked on the link for "617" but it didn't show me the build log that you did. (It did have a red button saying "617 failed".
We build everything twice, once with -DDEBUG and once without. Therefore, at the bottom of the page you were looking at (presumably https://travis-ci.org/ghc/ghc/builds/39856856), there are two links named 617.1 and 617.2. These take you to the build log, e.g. https://travis-ci.org/ghc/ghc/jobs/39856857 But: Travis tries to prettify the logs using plenty of JavaScript, this will easily bring your browser to its knees. So the trick is: After following the link, and while the page is loading, in the top right corner look for the square with the three horizontal lines. This link takes to to a text-only view of the logs, e.g. https://s3.amazonaws.com/archive.travis-ci.org/jobs/39856857/log.txt (The latter is mentioned on https://ghc.haskell.org/trac/ghc/wiki/Travis, but maybe not very visible. I could add a paragraph describing the steps to reach the logs.) By the way, you can usually find your branch on the Build History (https://travis-ci.org/ghc/ghc/builds) directly, if it has been built recently. The column „Commit“ mentions the branch its on. Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org

Aha. Yes, I did click on one of those links, and my browser was fine: but the displayed log was simply truncated at 10,000 lines, which removed all the interesting stuff. Moving the tip to the top, just under "What does it do?", and giving a bit more navigation info, would be a good plan. thanks Simon | -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of | Joachim Breitner | Sent: 04 November 2014 08:55 | To: ghc-devs@haskell.org | Subject: Re: Major commit to the constraint solver | | Hi, | | | Am Dienstag, den 04.11.2014, 08:44 +0000 schrieb Simon Peyton Jones: | > That's great; I didn't realise that. | > | > How can I navigate to the build log. I went to | > https://travis-ci.org/ghc/ghc/builds | > clicked on "Branch summary", found my branch, clicked on the link | for | > "617" but it didn't show me the build log that you did. (It did | have | > a red button saying "617 failed". | | We build everything twice, once with -DDEBUG and once without. | Therefore, at the bottom of the page you were looking at (presumably | https://travis-ci.org/ghc/ghc/builds/39856856), | there are two links named 617.1 and 617.2. These take you to the build | log, e.g. https://travis-ci.org/ghc/ghc/jobs/39856857 | | But: Travis tries to prettify the logs using plenty of JavaScript, | this will easily bring your browser to its knees. So the trick is: | After following the link, and while the page is loading, in the top | right corner look for the square with the three horizontal lines. This | link takes to to a text-only view of the logs, e.g. | https://s3.amazonaws.com/archive.travis-ci.org/jobs/39856857/log.txt | | (The latter is mentioned on | https://ghc.haskell.org/trac/ghc/wiki/Travis, but maybe not very | visible. I could add a paragraph describing the steps to reach the | logs.) | | By the way, you can usually find your branch on the Build History | (https://travis-ci.org/ghc/ghc/builds) directly, if it has been built | recently. The column „Commit“ mentions the branch its on. | | Greetings, | Joachim | | | | -- | Joachim “nomeata” Breitner | mail@joachim-breitner.de • http://www.joachim-breitner.de/ | Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F | Debian Developer: nomeata@debian.org

Hi, Am Dienstag, den 04.11.2014, 09:41 +0000 schrieb Simon Peyton Jones:
Moving the tip to the top, just under "What does it do?", and giving a bit more navigation info, would be a good plan.
done: https://ghc.haskell.org/trac/ghc/wiki/Travis#Whatdoesitdo Writing good Wiki pages is much harder than writing compiler code... :-) Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org

Excerpts from Simon Peyton Jones's message of 2014-11-03 09:28:49 -0800:
* I get an odd wibble in safePk01, see this threadhttps://www.haskell.org/pipermail/ghc-devs/2014-November/007065.html 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

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 )
Stdout:
install1:
bin
lib
install2:
bin
lib
Stderr:
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/cabal06.run.stdout 2014-11-03 20:00:56.000000000 -0500
@@ -1,7 +1,7 @@
Does the first instance of q depend on p-1.0?
-1
+ 1
Does the second instance of q depend on p-1.0?
-1
+ 1
Configuring r-1.0...
Configuring r-1.0...
10
*** 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 @@
+
+PushedInAsGivens.hs:10:31:
+ 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]’
+
+PushedInAsGivens.hs:11:15:
+ 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.
Richard
On Nov 3, 2014, at 4:23 PM, "Edward Z. Yang"
Excerpts from Simon Peyton Jones's message of 2014-11-03 09:28:49 -0800:
* I get an odd wibble in safePk01, see this threadhttps://www.haskell.org/pipermail/ghc-devs/2014-November/007065.html 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@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

On Mon, Nov 3, 2014 at 8:11 PM, Richard Eisenberg
Stderr: 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
Apple got rid of gnutar, it's now libarchive tar. -- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
participants (5)
-
Brandon Allbery
-
Edward Z. Yang
-
Joachim Breitner
-
Richard Eisenberg
-
Simon Peyton Jones