Testsuite failures are barely readable
I'm working on a patch that breaks some tests at the moment, and the errors I'm getting look like this:
Wrong exit code for Ppr014()(expected 0 , actual 2 )
Stderr ( Ppr014 ):
b'Ppr014.hs:16:24: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n16 | , lookup :: Hashable k => k -> hm k v -> Maybe v\n | ^\n\nPpr014.hs:16:29: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n16 | , lookup :: Hashable k => k -> hm k v -> Maybe v\n | ^\n\nPpr014.hs:16:37: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n16 | , lookup :: Hashable k => k -> hm k v -> Maybe v\n | ^\n\nPpr014.hs:16:39: error: Not in scope: type variable \xe2\x80\x98v\xe2\x80\x99\n |\n16 | , lookup :: Hashable k => k -> hm k v -> Maybe v\n | ^\n\nPpr014.hs:16:50: error: Not in scope: type variable \xe2\x80\x98v\xe2\x80\x99\n |\n16 | , lookup :: Hashable k => k -> hm k v -> Maybe v\n | ^\n\nPpr014.hs:17:24: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:17:29: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:17:34: error: Not in scope: type variable \xe2\x80\x98v\xe2\x80\x99\n |\n17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:17:42: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:17:44: error: Not in scope: type variable \xe2\x80\x98v\xe2\x80\x99\n |\n17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:17:52: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:17:54: error: Not in scope: type variable \xe2\x80\x98v\xe2\x80\x99\n |\n17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:18:24: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n18 | , union :: Hashable k => hm k v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:18:32: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n18 | , union :: Hashable k => hm k v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:18:34: error: Not in scope: type variable \xe2\x80\x98v\xe2\x80\x99\n |\n18 | , union :: Hashable k => hm k v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:18:42: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n18 | , union :: Hashable k => hm k v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:18:44: error: Not in scope: type variable \xe2\x80\x98v\xe2\x80\x99\n |\n18 | , union :: Hashable k => hm k v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:18:52: error: Not in scope: type variable \xe2\x80\x98k\xe2\x80\x99\n |\n18 | , union :: Hashable k => hm k v -> hm k v -> hm k v\n | ^\n\nPpr014.hs:18:54: error: Not in scope: type variable \xe2\x80\x98v\xe2\x80\x99\n |\n18 | , union :: Hashable k => hm k v -> hm k v -> hm k v\n | ^\n\nPpr014.ppr.hs:6:24: error:\n Illegal symbol \xe2\x80\x98forall\xe2\x80\x99 in type\n Perhaps you intended to use RankNTypes or a similar language\n extension to enable explicit-forall syntax: forall <tvs>. <type>\n |\n6 | = HashMapM {empty :: forall k v. hm k v,\n | ^^^^^^\ncheck-ppr: Illegal symbol \xe2\x80\x98forall\xe2\x80\x99 in type\nPerhaps you intended to use RankNTypes or a similar language\nextension to enable explicit-forall syntax: forall <tvs>. <type>\n\nmake: *** [Makefile:63: ppr014] Error 1'
b'*** unexpected failure for Ppr014(normal)'
This is very hard to work with.
The fix is to replace safe_print
with print
in testsuite/driver/testlib.py
. Then the error is readable:
Wrong exit code for Ppr014()(expected 0 , actual 2 )
Stderr ( Ppr014 ):
Ppr014.hs:16:24: error: Not in scope: type variable ‘k’
|
16 | , lookup :: Hashable k => k -> hm k v -> Maybe v
| ^
Ppr014.hs:16:29: error: Not in scope: type variable ‘k’
|
16 | , lookup :: Hashable k => k -> hm k v -> Maybe v
| ^
Ppr014.hs:16:37: error: Not in scope: type variable ‘k’
|
16 | , lookup :: Hashable k => k -> hm k v -> Maybe v
| ^
Ppr014.hs:16:39: error: Not in scope: type variable ‘v’
|
16 | , lookup :: Hashable k => k -> hm k v -> Maybe v
| ^
Ppr014.hs:16:50: error: Not in scope: type variable ‘v’
|
16 | , lookup :: Hashable k => k -> hm k v -> Maybe v
| ^
Ppr014.hs:17:24: error: Not in scope: type variable ‘k’
|
17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v
| ^
Ppr014.hs:17:29: error: Not in scope: type variable ‘k’
|
17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v
| ^
Ppr014.hs:17:34: error: Not in scope: type variable ‘v’
|
17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v
| ^
Ppr014.hs:17:42: error: Not in scope: type variable ‘k’
|
17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v
| ^
Ppr014.hs:17:44: error: Not in scope: type variable ‘v’
|
17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v
| ^
Ppr014.hs:17:52: error: Not in scope: type variable ‘k’
|
17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v
| ^
Ppr014.hs:17:54: error: Not in scope: type variable ‘v’
|
17 | , insert :: Hashable k => k -> v -> hm k v -> hm k v
| ^
Ppr014.hs:18:24: error: Not in scope: type variable ‘k’
|
18 | , union :: Hashable k => hm k v -> hm k v -> hm k v
| ^
Ppr014.hs:18:32: error: Not in scope: type variable ‘k’
|
18 | , union :: Hashable k => hm k v -> hm k v -> hm k v
| ^
Ppr014.hs:18:34: error: Not in scope: type variable ‘v’
|
18 | , union :: Hashable k => hm k v -> hm k v -> hm k v
| ^
Ppr014.hs:18:42: error: Not in scope: type variable ‘k’
|
18 | , union :: Hashable k => hm k v -> hm k v -> hm k v
| ^
Ppr014.hs:18:44: error: Not in scope: type variable ‘v’
|
18 | , union :: Hashable k => hm k v -> hm k v -> hm k v
| ^
Ppr014.hs:18:52: error: Not in scope: type variable ‘k’
|
18 | , union :: Hashable k => hm k v -> hm k v -> hm k v
| ^
Ppr014.hs:18:54: error: Not in scope: type variable ‘v’
|
18 | , union :: Hashable k => hm k v -> hm k v -> hm k v
| ^
Ppr014.ppr.hs:6:24: error:
Illegal symbol ‘forall’ in type
Perhaps you intended to use RankNTypes or a similar language
extension to enable explicit-forall syntax: forall <tvs>. <type>
|
6 | = HashMapM {empty :: forall k v. hm k v,
| ^^^^^^
check-ppr: Illegal symbol ‘forall’ in type
Perhaps you intended to use RankNTypes or a similar language
extension to enable explicit-forall syntax: forall <tvs>. <type>
make: *** [Makefile:63: ppr014] Error 1
*** unexpected failure for Ppr014(normal)
The culprit is probably 01b15b83.
My locale
output, in case it matters:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=