#7540: Panic on type inference with vectorised parallel arrays
-------------------------------+--------------------------------------------
Reporter:  tinctorius          |          Owner:                  
    Type:  bug                 |         Status:  new             
Priority:  normal              |      Component:  Compiler        
 Version:  7.6.1               |       Keywords:                  
      Os:  Unknown/Multiple    |   Architecture:  Unknown/Multiple
 Failure:  Compile-time crash  |      Blockedby:                  
Blocking:                      |        Related:                  
-------------------------------+--------------------------------------------
 {{{
 #!hs
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE ParallelArrays #-}
 module Y where

 import Data.Array.Parallel

 #ifndef BUG
 func :: Bool -> [: [: a :] :]
 #endif
 func True = [: [: :] :]
 func False = [: j | j <- func True :]
 }}}

 Result of `ghc --make -fvectorise Y.hs`:
 {{{
 [1 of 1] Compiling Y                ( C:\tmp\Y.hs, C:\tmp\Y.o )
 exprType TYPE [:a{tv b} [tv]:]
 exprType TYPE a{tv b} [tv]
 exprType TYPE [:a{tv b} [tv]:]
 exprType TYPE a{tv b} [tv]
 exprType TYPE [:a{tv b} [tv]:]
 exprType TYPE a{tv b} [tv]
 exprType TYPE [:a{tv b} [tv]:]
 exprType TYPE a{tv b} [tv]
 Warning: vectorisation failure: identityConv: quantified type changes
 under vectorisation
   Could NOT call vectorised from original version Y.func
 }}}

 Result of `ghc --make -fvectorise -DBUG Y.hs`:
 {{{
 [1 of 1] Compiling Y                ( C:\tmp\Y.hs, C:\tmp\Y.o )
 exprType TYPE [:t{tv a30W} [tv]:]
 exprType TYPE t{tv a30W} [tv]
 exprType TYPE [:t{tv a30W} [tv]:]
 exprType TYPE t{tv a30W} [tv]
 exprType TYPE [:t{tv a30W} [tv]:]
 exprType TYPE t{tv a30W} [tv]
 exprType TYPE [:t{tv a30W} [tv]:]
 exprType TYPE t{tv a30W} [tv]
 Warning: vectorisation failure: identityConv: quantified type changes
 under vectorisation
   Could NOT call vectorised from original version func
 exprType TYPE t{tv a30W} [tv]
 Warning: vectorisation failure: identityConv: quantified type changes
 under vectorisation
   Could NOT call vectorised from original version Y.func
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.6.1 for x86_64-unknown-mingw32):
         nameModule func1{v r3ap}

 Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
 }}}

 And so I did.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7540>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to