Commit 37b3646c authored by Simon Peyton Jones's avatar Simon Peyton Jones

Testsuite wibbles from constraint-solver improvements

parent 832f8db2
T4179.hs:26:16:
Couldn't match type ‘A2 (x (A2 (FCon x) -> A3 (FCon x)))’
with ‘A2 (FCon x)’
NB: ‘A2’ is a type function, and may not be injective
Couldn't match type ‘A3 (x (A2 (FCon x) -> A3 (FCon x)))’
with ‘A3 (FCon x)’
NB: ‘A3’ is a type function, and may not be injective
Expected type: x (A2 (FCon x) -> A3 (FCon x))
-> A2 (FCon x) -> A3 (FCon x)
Actual type: x (A2 (FCon x) -> A3 (FCon x))
......
T7729.hs:36:14:
Couldn't match type ‘BasePrimMonad (Rand m)’
with ‘t0 (BasePrimMonad (Rand m))’
The type variable ‘t0’ is ambiguous
Expected type: t0 (BasePrimMonad (Rand m)) a -> Rand m a
Actual type: BasePrimMonad (Rand m) a -> Rand m a
Relevant bindings include
liftPrim :: BasePrimMonad (Rand m) a -> Rand m a
(bound at T7729.hs:36:3)
In the first argument of ‘(.)’, namely ‘liftPrim’
In the expression: liftPrim . lift
T7729.hs:36:14:
Couldn't match type ‘t0 (BasePrimMonad m)’ with ‘BasePrimMonad m’
The type variable ‘t0’ is ambiguous
Expected type: t0 (BasePrimMonad m) a -> Rand m a
Actual type: BasePrimMonad (Rand m) a -> Rand m a
Relevant bindings include
liftPrim :: BasePrimMonad (Rand m) a -> Rand m a
(bound at T7729.hs:36:3)
In the first argument of ‘(.)’, namely ‘liftPrim’
In the expression: liftPrim . lift
T7729a.hs:36:26:
Couldn't match type ‘BasePrimMonad (Rand m)’
with ‘t0 (BasePrimMonad (Rand m))’
Couldn't match type ‘BasePrimMonad m’ with ‘t0 (BasePrimMonad m)’
The type variable ‘t0’ is ambiguous
Expected type: BasePrimMonad (Rand m) a
Actual type: t0 (BasePrimMonad (Rand m)) a
Actual type: t0 (BasePrimMonad m) a
Relevant bindings include
x :: BasePrimMonad (Rand m) a (bound at T7729a.hs:36:12)
liftPrim :: BasePrimMonad (Rand m) a -> Rand m a
......
T9662.hs:47:8:
Couldn't match type ‘k’ with ‘Int
T9662.hs:49:7:
Couldn't match type ‘k’ with ‘n
‘k’ is a rigid type variable bound by
the type signature for
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
at T9662.hs:44:9
Expected type: Exp (((sh :. k) :. m) :. n)
-> Exp (((sh :. m) :. n) :. k)
Actual type: Exp
(Tuple (((Atom a0 :. Atom Int) :. Atom Int) :. Atom Int))
-> Exp
(Plain (((Unlifted (Atom a0) :. Exp Int) :. Exp Int) :. Exp Int))
‘n’ is a rigid type variable bound by
the type signature for
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
at T9662.hs:44:9
Expected type: Exp (((sh :. m) :. n) :. k)
-> Exp (((sh :. k) :. m) :. n)
Actual type: Exp (((sh :. k) :. m) :. n)
-> Exp (((sh :. k) :. m) :. n)
Relevant bindings include
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
(bound at T9662.hs:45:1)
In the first argument of ‘backpermute’, namely
‘(modify
(atom :. atom :. atom :. atom)
(\ (sh :. k :. m :. n) -> (sh :. m :. n :. k)))’
In the second argument of ‘backpermute’, namely ‘id’
In the expression:
backpermute
(modify
......@@ -27,27 +27,27 @@ T9662.hs:47:8:
(\ (sh :. k :. m :. n) -> (sh :. m :. n :. k)))
id
T9662.hs:47:8:
Couldn't match type ‘m’ with ‘Int
T9662.hs:49:7:
Couldn't match type ‘m’ with ‘k
‘m’ is a rigid type variable bound by
the type signature for
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
at T9662.hs:44:9
Expected type: Exp (((sh :. k) :. m) :. n)
-> Exp (((sh :. m) :. n) :. k)
Actual type: Exp
(Tuple (((Atom a0 :. Atom Int) :. Atom Int) :. Atom Int))
-> Exp
(Plain (((Unlifted (Atom a0) :. Exp Int) :. Exp Int) :. Exp Int))
‘k’ is a rigid type variable bound by
the type signature for
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
at T9662.hs:44:9
Expected type: Exp (((sh :. m) :. n) :. k)
-> Exp (((sh :. k) :. m) :. n)
Actual type: Exp (((sh :. k) :. m) :. n)
-> Exp (((sh :. k) :. m) :. n)
Relevant bindings include
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
(bound at T9662.hs:45:1)
In the first argument of ‘backpermute’, namely
‘(modify
(atom :. atom :. atom :. atom)
(\ (sh :. k :. m :. n) -> (sh :. m :. n :. k)))’
In the second argument of ‘backpermute’, namely ‘id’
In the expression:
backpermute
(modify
......@@ -55,27 +55,27 @@ T9662.hs:47:8:
(\ (sh :. k :. m :. n) -> (sh :. m :. n :. k)))
id
T9662.hs:47:8:
Couldn't match type ‘n’ with ‘Int
T9662.hs:49:7:
Couldn't match type ‘n’ with ‘m
‘n’ is a rigid type variable bound by
the type signature for
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
at T9662.hs:44:9
Expected type: Exp (((sh :. k) :. m) :. n)
-> Exp (((sh :. m) :. n) :. k)
Actual type: Exp
(Tuple (((Atom a0 :. Atom Int) :. Atom Int) :. Atom Int))
-> Exp
(Plain (((Unlifted (Atom a0) :. Exp Int) :. Exp Int) :. Exp Int))
‘m’ is a rigid type variable bound by
the type signature for
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
at T9662.hs:44:9
Expected type: Exp (((sh :. m) :. n) :. k)
-> Exp (((sh :. k) :. m) :. n)
Actual type: Exp (((sh :. k) :. m) :. n)
-> Exp (((sh :. k) :. m) :. n)
Relevant bindings include
test :: Shape (((sh :. k) :. m) :. n)
-> Shape (((sh :. m) :. n) :. k)
(bound at T9662.hs:45:1)
In the first argument of ‘backpermute’, namely
‘(modify
(atom :. atom :. atom :. atom)
(\ (sh :. k :. m :. n) -> (sh :. m :. n :. k)))’
In the second argument of ‘backpermute’, namely ‘id’
In the expression:
backpermute
(modify
......
......@@ -52,7 +52,8 @@ T5837.hs:8:6:
(TF
(TF
(TF
a)))))))))))))))))))))))))))))))))))))))))))))))))
(TF
a))))))))))))))))))))))))))))))))))))))))))))))))))
~ (TF
(TF
(TF
......@@ -104,7 +105,8 @@ T5837.hs:8:6:
(TF
(TF
(TF
a)))))))))))))))))))))))))))))))))))))))))))))))))),
(TF
a))))))))))))))))))))))))))))))))))))))))))))))))))),
TF
(TF
(TF
......@@ -156,7 +158,8 @@ T5837.hs:8:6:
(TF
(TF
(TF
Int)))))))))))))))))))))))))))))))))))))))))))))))))))
(TF
Int))))))))))))))))))))))))))))))))))))))))))))))))))))
In the ambiguity check for the type signature for ‘t’:
t :: forall a. (a ~ TF (a, Int)) => Int
In the type signature for ‘t’: t :: (a ~ TF (a, Int)) => Int
......@@ -259,19 +259,20 @@ test('T3064',
# 2014-01-22: 162457940 (x86/Linux)
# 2014-12-01: 162457940 (Windows)
(wordsize(64), 385145080, 5)]),
(wordsize(64), 363103840, 5)]),
# (amd64/Linux) (28/06/2011): 73259544
# (amd64/Linux) (07/02/2013): 224798696
# (amd64/Linux) (02/08/2013): 236404384, increase from roles
# (amd64/Linux) (11/09/2013): 290165632, increase from AMP warnings
# (amd64/Linux) (22/11/2013): 308300448, GND via Coercible and counters for constraints solving
# (amd64/Linux) (02/12/2013): 329795912, Coercible refactor
# (amd64/Linux) (02/12/2013): 329795912, Coercible refactor
# (amd64/Linux) (11/02/2014): 308422280, optimize Coercions in simpleOptExpr
# (amd64/Linux) (23/05/2014): 324022680, unknown cause
# (amd64/Linux) (2014-07-17): 332702112, general round of updates
# (amd64/Linux) (2014-08-29): 313638592, w/w for INLINABLE things
# (amd64/Linux) (09/09/2014): 407416464, AMP changes (larger interfaces, more loading)
# (amd64/Linux) (14/09/2014): 385145080, BPP changes (more NoImplicitPrelude in base)
# (amd64/Linux) (10/12/2014): 363103840, improvements in constraint solver
###################################
# deactivated for now, as this metric became too volatile recently
......@@ -314,7 +315,7 @@ test('T5030',
# previous: 196457520
# 2012-10-08: 259547660 (x86/Linux, new codegen)
# 2013-11-21: 198573456 (x86 Windows, 64 bit machine)
(wordsize(64), 340969128, 10)]),
(wordsize(64), 449042120, 10)]),
# Previously 530000000 (+/- 10%)
# 17/1/13: 602993184 (x86_64/Linux)
# (new demand analyser)
......@@ -328,6 +329,8 @@ test('T5030',
# general round of updates
# 2014-09-10 385152728 post-AMP-cleanup
# 2014-12-08 340969128 constraint solver perf improvements (esp kick-out)
# 2014-12-10 449042120 constraint solver got worse again; more agressive solving
# of family-applications leads to less sharing, I think
only_ways(['normal'])
],
......@@ -399,7 +402,7 @@ test('T5321Fun',
# 2012-10-08: 344416344 x86/Linux
# (increase due to new codegen)
# 2014-09-03: 299656164 (specialisation and inlining)
(wordsize(64), 541287000, 10)])
(wordsize(64), 408110888, 10)])
# prev: 585521080
# 29/08/2012: 713385808 # (increase due to new codegen)
# 15/05/2013: 628341952 # (reason for decrease unknown)
......@@ -407,6 +410,7 @@ test('T5321Fun',
# 12/05/2014: 614409344 # (specialisation and inlining changes)
# 10/09/2014: 601629032 # post-AMP-cleanup
# 06/11/2014: 541287000 # Simon's flat-skol changes to the constraint solver
# 10/12/2014: 408110888 # Improvements in constraint solver
],
compile,[''])
......@@ -443,7 +447,8 @@ test('T5642',
# sample from x86/Linux
# prev: 650000000
# 2014-09-03: 753045568
(wordsize(64), 1536924976, 10)])
(wordsize(64), 1282916024, 10)])
# prev: 1300000000
# 2014-07-17: 1358833928 (general round of updates)
# 2014-08-07: 1402242360 (caused by 1fc60ea)
......@@ -453,6 +458,7 @@ test('T5642',
# are ultimately discarded by trimAutoRules
# It's a bizarre program with LOTS of data types)
# 2014-09-10: 1536924976 post-AMP-cleanup
# 2014-12-10: 1282916024 Improvements in constraints solver
],
compile,['-O'])
......
......@@ -6,5 +6,8 @@ import Data.Proxy
type family SomeFun (n :: Nat)
-- See the Trac ticket; whether this suceeds or fails is distintly random
-- Currently it succeeds
ti7 :: (x <= y, y <= x) => Proxy (SomeFun x) -> Proxy y -> ()
ti7 _ _ = ()
T9708.hs:9:8:
Could not deduce (SomeFun y ~ SomeFun x)
from the context (x <= y, y <= x)
bound by the type signature for
ti7 :: (x <= y, y <= x) => Proxy (SomeFun x) -> Proxy y -> ()
at T9708.hs:9:8-61
NB: ‘SomeFun’ is a type function, and may not be injective
Expected type: Proxy (SomeFun x) -> Proxy y -> ()
Actual type: Proxy (SomeFun y) -> Proxy y -> ()
In the ambiguity check for the type signature for ‘ti7’:
ti7 :: forall (x :: Nat) (y :: Nat).
(x <= y, y <= x) =>
Proxy (SomeFun x) -> Proxy y -> ()
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
In the type signature for ‘ti7’:
ti7 :: (x <= y, y <= x) => Proxy (SomeFun x) -> Proxy y -> ()
......@@ -424,7 +424,7 @@ test('T8856', normal, compile, [''])
test('T9569a', normal, compile, [''])
test('T9117', normal, compile, [''])
test('T9117_2', expect_broken('9117'), compile, [''])
test('T9708', normal, compile_fail, [''])
test('T9708', normal, compile, [''])
test('T9404', normal, compile, [''])
test('T9404b', normal, compile, [''])
test('T7220', normal, compile, [''])
......
......@@ -2,9 +2,9 @@
ContextStack2.hs:8:6:
Type function application stack overflow; size = 11
Use -ftype-function-depth=N to increase stack size to N
TF (TF (TF (TF (TF (TF (TF (TF (TF (TF a)))))))))
~ (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF a)))))))))),
TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF Int)))))))))))
TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF a))))))))))
~ (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF a))))))))))),
TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF Int))))))))))))
In the ambiguity check for the type signature for ‘t’:
t :: forall a. (a ~ TF (a, Int)) => Int
In the type signature for ‘t’: t :: (a ~ TF (a, Int)) => Int
FrozenErrorTests.hs:12:12:
Couldn't match type ‘Int’ with ‘Bool’
Inaccessible code in
a pattern with constructor
MkT3 :: forall a. (a ~ Bool) => T a,
in a case alternative
In the pattern: MkT3
In a case alternative: MkT3 -> ()
In the expression: case x of { MkT3 -> () }
FrozenErrorTests.hs:26:9:
Occurs check: cannot construct the infinite type: a ~ [a]
Expected type: [a]
Actual type: F a Bool
Relevant bindings include
test1 :: a (bound at FrozenErrorTests.hs:26:1)
In the expression: goo1 False undefined
In an equation for ‘test1’: test1 = goo1 False undefined
FrozenErrorTests.hs:29:15:
Couldn't match type ‘Int’ with ‘[Int]’
Expected type: [[Int]]
Actual type: F [Int] Bool
In the first argument of ‘goo2’, namely ‘(goo1 False undefined)’
In the expression: goo2 (goo1 False undefined)
In an equation for ‘test2’: test2 = goo2 (goo1 False undefined)
FrozenErrorTests.hs:30:9:
Couldn't match type ‘[Int]’ with ‘Int’
Expected type: [[Int]]
Actual type: F [Int] Bool
In the expression: goo1 False (goo2 undefined)
In an equation for ‘test3’: test3 = goo1 False (goo2 undefined)
FrozenErrorTests.hs:45:15:
Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’
Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c)
Actual type: F (T2 (T2 c c) c) Bool
Relevant bindings include
test4 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:45:1)
In the first argument of ‘goo4’, namely ‘(goo3 False undefined)’
In the expression: goo4 (goo3 False undefined)
In an equation for ‘test4’: test4 = goo4 (goo3 False undefined)
FrozenErrorTests.hs:46:9:
Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’
Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c)
Actual type: F (T2 (T2 c c) c) Bool
Relevant bindings include
test5 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:46:1)
In the expression: goo3 False (goo4 undefined)
In an equation for ‘test5’: test5 = goo3 False (goo4 undefined)
FrozenErrorTests.hs:12:12:
Couldn't match type ‘Int’ with ‘Bool’
Inaccessible code in
a pattern with constructor
MkT3 :: forall a. (a ~ Bool) => T a,
in a case alternative
In the pattern: MkT3
In a case alternative: MkT3 -> ()
In the expression: case x of { MkT3 -> () }
FrozenErrorTests.hs:26:9:
Occurs check: cannot construct the infinite type: a ~ [a]
Expected type: [a]
Actual type: F a Bool
Relevant bindings include
test1 :: a (bound at FrozenErrorTests.hs:26:1)
In the expression: goo1 False undefined
In an equation for ‘test1’: test1 = goo1 False undefined
FrozenErrorTests.hs:29:15:
Couldn't match type ‘[Int]’ with ‘Int
Expected type: [[Int]]
Actual type: F [Int] Bool
In the first argument of ‘goo2’, namely ‘(goo1 False undefined)’
In the expression: goo2 (goo1 False undefined)
In an equation for ‘test2’: test2 = goo2 (goo1 False undefined)
FrozenErrorTests.hs:30:9:
Couldn't match type ‘[Int]’ with ‘Int’
Expected type: [[Int]]
Actual type: F [Int] Bool
In the expression: goo1 False (goo2 undefined)
In an equation for ‘test3’: test3 = goo1 False (goo2 undefined)
FrozenErrorTests.hs:45:15:
Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’
Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c)
Actual type: F (T2 (T2 c c) c) Bool
Relevant bindings include
test4 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:45:1)
In the first argument of ‘goo4’, namely ‘(goo3 False undefined)’
In the expression: goo4 (goo3 False undefined)
In an equation for ‘test4’: test4 = goo4 (goo3 False undefined)
FrozenErrorTests.hs:46:9:
Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’
Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c)
Actual type: F (T2 (T2 c c) c) Bool
Relevant bindings include
test5 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:46:1)
In the expression: goo3 False (goo4 undefined)
In an equation for ‘test5’: test5 = goo3 False (goo4 undefined)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment