GHC issueshttps://gitlab.haskell.org/ghc/ghc/-/issues2019-07-07T18:51:24Zhttps://gitlab.haskell.org/ghc/ghc/-/issues/7091DPH Matrix product memory usage2019-07-07T18:51:24ZmblancoDPH Matrix product memory usageThis report is from the post at Haskell-cafe "DPH matrix product", I'm reporting it here so developers can define if it's a bug or not and its priority.
On a (I think) standar implementation of matrix product on DPH I notice an excessiv...This report is from the post at Haskell-cafe "DPH matrix product", I'm reporting it here so developers can define if it's a bug or not and its priority.
On a (I think) standar implementation of matrix product on DPH I notice an excessive use of system memory.
At execution time, on matrices of size 300\*300 the program does finish (although it is very slow), but on 600\*600 it consumes GBs of RAM until the process is aborted.
This is the system information:
- Ubuntu 12.04 32-bit
- Intel® Core™2 Duo CPU T5270 @ 1.40GHz × 2
- 2.9 GiB RAM
GHC version:
- GHC 7.4.1
DPH libraries:
- dph-base-0.6.1.1
- (dph-lifted-base-0.6.1.1)
- (dph-lifted-vseg-0.6.1.2)
- (dph-prim-interface-0.6.1.1)
- (dph-prim-par-0.6.1.1)
- (dph-prim-seq-0.6.1.1)
Compilation flags:
I'm using two combinations of flags, taken from different sources. In both cases results are identical:
- From https://github.com/ghc/packages-dph: -rtsopts -threaded -fllvm -optlo-O3 -Odph -fcpr-off -fno-liberate-case -package dph-lifted-vseg
- From dph-examples: -rtsopts -threaded -fllvm -Odph -package dph-lifted-vseg -fcpr-off -fno-liberate-case -fsimpl-tick-factor=1000
Execution flags:
+RTS -N
Tests:
- Computing the product of two 400\*400 matrices takes 6.037993 seconds.
- Computing the product of two 600\*600 matrices yields "out of memory (requested 1728053248 bytes)".
DPH code:
```
{-# LANGUAGE ParallelArrays, ParallelListComp #-}
{-# OPTIONS -fvectorise #-}
module DPH_mmult_wrapper (matMult_wrapper, Matrix_wrapper) where
import qualified Prelude
import Data.Array.Parallel
import Data.Array.Parallel.Prelude.Double as D
import Data.Array.Parallel.Prelude.Int as I
type MMultType = Double
type Matrix = [:[:MMultType:]:]
type MVector = [:MMultType:]
type Matrix_wrapper = PArray (PArray MMultType)
-- matMult_wrapper assumes mB is already transposed
{-# NOINLINE matMult_wrapper #-}
matMult_wrapper :: Matrix_wrapper -> Matrix_wrapper -> Matrix_wrapper
matMult_wrapper mA mB = toPArrayP (mapP toPArrayP (matMult (fromNestedPArrayP mA) (fromNestedPArrayP mB)))
matMult :: Matrix -> Matrix -> Matrix
matMult mA mB = mapP (\row -> mapP (\col -> dotp row col) mB) mA
dotp :: MVector -> MVector -> MMultType
dotp row col = D.sumP (zipWithP (D.*) row col)
```
I'm reporting this as I think it is the kind of problems intended to be solved in the last definition of the internal DPH structure (the one from "Work Efficient Higher-Order Vectorisation" paper).
If there is any information missing, please comment and I will update the report.
Thanks.7.8.1benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/5070dph and new code generator don't play nicely with each other2019-07-07T18:57:01ZEdward Z. Yangdph and new code generator don't play nicely with each otherI'm looking at the current failure of DPH with the new code generator,
which is a bit different from what I've dealt with before. The bug appears
to be in the compiled libraries code, and I can tickle it with the
following minimized exam...I'm looking at the current failure of DPH with the new code generator,
which is a bit different from what I've dealt with before. The bug appears
to be in the compiled libraries code, and I can tickle it with the
following minimized example:
```
{-# LANGUAGE ParallelArrays #-}
{-# OPTIONS -fvectorise #-}
module PrimesVect where
import Data.Array.Parallel.Prelude
import qualified Prelude
f :: PArray Bool
f = toPArrayP f'
f' :: [:Bool:]
f' = [: True | _ <- singletonP True, g emptyP:]
g :: [:Bool:] -> Bool
g ps = andP [: True | _ <- ps:]
```
and a runner:
```
import qualified Data.Array.Parallel.PArray as P
import PrimesVect
main = print (P.toList f)
```
I expect to get \[True\], but instead I get:
```
dph-primespj-fast: libraries/vector/Data/Vector/Generic.hs:369 (slice): invalid slice (0,1,0)
dph-primespj-fast: thread blocked indefinitely in an MVar operation
```
Now, in the situation that the library code is broken, I'd usually try to inline
all of the library code and then pare that down into something manageable. Unfortunately,
DPH is pretty closely tied to the compiler, so I don't see an easy way to do that.
So I'm not really sure how to go about debugging this.
Note that we can't work on this bug until #5065 is resolved, since these tests are currently failing for unrelated reasons.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.0.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | #5065 |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[5065],"summary":"dph and new code generator don't play nicely with each other","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.0.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"I'm looking at the current failure of DPH with the new code generator,\r\nwhich is a bit different from what I've dealt with before. The bug appears\r\nto be in the compiled libraries code, and I can tickle it with the\r\nfollowing minimized example:\r\n\r\n{{{\r\n {-# LANGUAGE ParallelArrays #-}\r\n {-# OPTIONS -fvectorise #-}\r\n module PrimesVect where\r\n\r\n import Data.Array.Parallel.Prelude\r\n import qualified Prelude \r\n \r\n f :: PArray Bool \r\n f = toPArrayP f'\r\n\r\n f' :: [:Bool:]\r\n f' = [: True | _ <- singletonP True, g emptyP:]\r\n\r\n g :: [:Bool:] -> Bool\r\n g ps = andP [: True | _ <- ps:]\r\n}}}\r\n\r\nand a runner:\r\n\r\n{{{\r\n import qualified Data.Array.Parallel.PArray as P\r\n import PrimesVect\r\n\r\n main = print (P.toList f)\r\n}}}\r\n\r\nI expect to get [True], but instead I get:\r\n\r\n{{{\r\n dph-primespj-fast: libraries/vector/Data/Vector/Generic.hs:369 (slice): invalid slice (0,1,0)\r\n dph-primespj-fast: thread blocked indefinitely in an MVar operation\r\n}}}\r\n\r\nNow, in the situation that the library code is broken, I'd usually try to inline\r\nall of the library code and then pare that down into something manageable. Unfortunately,\r\nDPH is pretty closely tied to the compiler, so I don't see an easy way to do that.\r\nSo I'm not really sure how to go about debugging this.\r\n\r\nNote that we can't work on this bug until #5065 is resolved, since these tests are currently failing for unrelated reasons.","type_of_failure":"OtherFailure","blocking":[]} -->7.8.1benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/5613dph-diophantine-fast(normal) fails2019-07-07T18:54:22ZIan Lynagh <igloo@earth.li>dph-diophantine-fast(normal) fails```
====> Scanning ./dph-diophantine.T
=====> dph-diophantine-fast(normal) 2 of 2 [0, 0, 0]
cd . && '/home/ian/ghc/git/ghc/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -f...```
====> Scanning ./dph-diophantine.T
=====> dph-diophantine-fast(normal) 2 of 2 [0, 0, 0]
cd . && '/home/ian/ghc/git/ghc/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fno-ghci-history --make -o dph-diophantine-fast Main -O -fno-enable-rewrite-rules -fdph-par >dph-diophantine-fast.comp.stderr 2>&1
Compile failed (status 256) errors were:
[1 of 2] Compiling DiophantineVect ( DiophantineVect.hs, DiophantineVect.o )
Warning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]
Could NOT call vectorised from original version series
Warning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]
Could NOT call vectorised from original version primes
Warning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]
Could NOT call vectorised from original version xx
Warning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]
Could NOT call vectorised from original version ds_d2ph
Warning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]
Could NOT call vectorised from original version is
Warning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]
Could NOT call vectorised from original version ds_d2pl
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 7.3.20111108 for x86_64-unknown-linux):
nameModule series{v a2jC}
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
*** unexpected failure for dph-diophantine-fast(normal)
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | high |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"dph-diophantine-fast(normal) fails","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"7.4.1","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"benl"},"version":"7.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{\r\n====> Scanning ./dph-diophantine.T\r\n=====> dph-diophantine-fast(normal) 2 of 2 [0, 0, 0]\r\ncd . && '/home/ian/ghc/git/ghc/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fno-ghci-history --make -o dph-diophantine-fast Main -O -fno-enable-rewrite-rules -fdph-par >dph-diophantine-fast.comp.stderr 2>&1\r\nCompile failed (status 256) errors were:\r\n[1 of 2] Compiling DiophantineVect ( DiophantineVect.hs, DiophantineVect.o )\r\nWarning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]\r\n Could NOT call vectorised from original version series\r\nWarning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]\r\n Could NOT call vectorised from original version primes\r\nWarning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]\r\n Could NOT call vectorised from original version xx\r\nWarning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]\r\n Could NOT call vectorised from original version ds_d2ph\r\nWarning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]\r\n Could NOT call vectorised from original version is\r\nWarning: vectorisation failure: identityConvTyCon: type constructor contains parallel arrays [::]\r\n Could NOT call vectorised from original version ds_d2pl\r\nghc-stage2: panic! (the 'impossible' happened)\r\n (GHC version 7.3.20111108 for x86_64-unknown-linux):\r\n nameModule series{v a2jC}\r\n\r\nPlease report this as a GHC bug: http://www.haskell.org/ghc/reportabug\r\n\r\n\r\n*** unexpected failure for dph-diophantine-fast(normal)\r\n}}}\r\n","type_of_failure":"OtherFailure","blocking":[]} -->7.4.1Manuel M T ChakravartyManuel M T Chakravartyhttps://gitlab.haskell.org/ghc/ghc/-/issues/5438Wrong result for element check2019-07-07T18:55:15Zdaniel.is.fischerWrong result for element checkOn the [beginners](http://haskell.org/pipermail/beginners/2011-August/008422.html) list, Luca Ciciriello reported that
```
{-# LANGUAGE PArr #-}
{-# OPTIONS -fdph-seq #-}
module Main where
import Control.Parallel
import GHC.PArr
parA...On the [beginners](http://haskell.org/pipermail/beginners/2011-August/008422.html) list, Luca Ciciriello reported that
```
{-# LANGUAGE PArr #-}
{-# OPTIONS -fdph-seq #-}
module Main where
import Control.Parallel
import GHC.PArr
parArr :: [:String:]
parArr = [: "1", "2", "3", "4" :]
isElement :: String -> Bool
isElement x = x `elemP` parArr
main :: IO ()
main = do
putStrLn $ (show . isElement) "5"
```
prints True. Obviously it should print False. I've replicated the behaviour with 7.0.4 and 6.10.4 on 64-bit linux (Luca tested on Mac and Windows).
As far as I can tell, elemP no longer exists in dph, so I had to modify to test with HEAD, and
```
{-# LANGUAGE ParallelArrays #-}
{-# OPTIONS -fdph-seq #-}
module Main where
import GHC.PArr
import Data.Array.Parallel
parArr :: [:String:]
parArr = [: "1", "2", "3", "4" :]
isElement :: String -> Bool
isElement x = x `elemP1` parArr
where
elemP1 :: Eq a => a -> [:a:] -> Bool
elemP1 v ar = lengthP (filterP (== v) ar) /= 0
main :: IO ()
main = do
putStrLn $ (show . isElement) "5"
```
also prints True with HEAD, but prints False with 6.10.4 and 7.0.4 (with the necessary modifications, !ParallelArrays -\> PArr, don't import Data.Array.Parallel).
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.0.4 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Wrong result for element check","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.0.4","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"On the [http://haskell.org/pipermail/beginners/2011-August/008422.html beginners] list, Luca Ciciriello reported that\r\n{{{\r\n{-# LANGUAGE PArr #-}\r\n{-# OPTIONS -fdph-seq #-}\r\n\r\nmodule Main where\r\n\r\nimport Control.Parallel\r\nimport GHC.PArr\r\n\r\nparArr :: [:String:]\r\nparArr = [: \"1\", \"2\", \"3\", \"4\" :]\r\n\r\nisElement :: String -> Bool\r\nisElement x = x `elemP` parArr\r\n\r\nmain :: IO ()\r\nmain = do\r\n putStrLn $ (show . isElement) \"5\"\r\n}}}\r\nprints True. Obviously it should print False. I've replicated the behaviour with 7.0.4 and 6.10.4 on 64-bit linux (Luca tested on Mac and Windows).\r\n\r\nAs far as I can tell, elemP no longer exists in dph, so I had to modify to test with HEAD, and\r\n{{{\r\n{-# LANGUAGE ParallelArrays #-}\r\n{-# OPTIONS -fdph-seq #-}\r\n\r\nmodule Main where\r\n\r\nimport GHC.PArr\r\nimport Data.Array.Parallel\r\n\r\nparArr :: [:String:]\r\nparArr = [: \"1\", \"2\", \"3\", \"4\" :]\r\n\r\nisElement :: String -> Bool\r\nisElement x = x `elemP1` parArr\r\n where\r\n elemP1 :: Eq a => a -> [:a:] -> Bool\r\n elemP1 v ar = lengthP (filterP (== v) ar) /= 0\r\n\r\nmain :: IO ()\r\nmain = do\r\n putStrLn $ (show . isElement) \"5\"\r\n}}}\r\nalso prints True with HEAD, but prints False with 6.10.4 and 7.0.4 (with the necessary modifications, !ParallelArrays -> PArr, don't import Data.Array.Parallel).","type_of_failure":"OtherFailure","blocking":[]} -->7.4.1benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/5065dph tests failing2019-07-07T18:57:02ZIan Lynagh <igloo@earth.li>dph tests failingThese dph tests have been failing in validate for a while:
```
dph-diophantine-fast(normal)
dph-primespj-fast(normal)
dph-quickhull-fast(normal)
dph-words-fast(normal)
```
<details><summary>Trac metadata</summary>
| Trac f...These dph tests have been failing in validate for a while:
```
dph-diophantine-fast(normal)
dph-primespj-fast(normal)
dph-quickhull-fast(normal)
dph-words-fast(normal)
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"dph tests failing","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"These dph tests have been failing in validate for a while:\r\n{{{\r\n dph-diophantine-fast(normal)\r\n dph-primespj-fast(normal)\r\n dph-quickhull-fast(normal)\r\n dph-words-fast(normal)\r\n}}}\r\n","type_of_failure":"OtherFailure","blocking":[]} -->7.2.1benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/8559Compiling dph-lifted fails with "NoSpecConstr" not in scope2019-07-07T18:44:30ZPeter Trommlerptrommler@acm.orgCompiling dph-lifted fails with "NoSpecConstr" not in scopeBuilding ghc-7.7.20131120 fails with this on powerpc64 Linux:
```
"inplace/bin/ghc-stage2" -hisuf hi -osuf o -hcsuf hc -static -H32m -O -package-name dph-lifted-copy-0.8.0.1 -hide-all-packages -i -ilibraries/dph/dph-lifted-copy/. -...Building ghc-7.7.20131120 fails with this on powerpc64 Linux:
```
"inplace/bin/ghc-stage2" -hisuf hi -osuf o -hcsuf hc -static -H32m -O -package-name dph-lifted-copy-0.8.0.1 -hide-all-packages -i -ilibraries/dph/dph-lifted-copy/. -ilibraries/dph/dph-lifted-copy/dist-install/build -ilibraries/dph/dph-lifted-copy/dist-install/build/autogen -Ilibraries/dph/dph-lifted-copy/dist-install/build -Ilibraries/dph/dph-lifted-copy/dist-install/build/autogen -Ilibraries/dph/dph-lifted-copy/. -optP-include -optPlibraries/dph/dph-lifted-copy/dist-install/build/autogen/cabal_macros.h -package array-0.5.0.0 -package base-4.7.0.0 -package dph-base-0.8.0.1 -package dph-prim-par-0.8.0.1 -package ghc-7.7.20131115 -package random-1.0.1.1 -package template-haskell-2.9.0.0 -package vector-0.10.9.1 -Odph -funbox-strict-fields -fcpr-off -fno-warn-orphans -fno-warn-missing-signatures -XHaskell98 -XTypeFamilies -XGADTs -XRankNTypes -XBangPatterns -XMagicHash -XUnboxedTuples -XTypeOperators -O2 -no-user-package-db -rtsopts -odir libraries/dph/dph-lifted-copy/dist-install/build -hidir libraries/dph/dph-lifted-copy/dist-install/build -stubdir libraries/dph/dph-lifted-copy/dist-install/build -c libraries/dph/dph-lifted-copy/./Data/Array/Parallel/PArray/PData.hs -o libraries/dph/dph-lifted-copy/dist-install/build/Data/Array/Parallel/PArray/PData.o
[23775s]
[23775s] libraries/dph/dph-lifted-copy/Data/Array/Parallel/PArray/PData.hs:49:20:
[23775s] Not in scope: data constructor `NoSpecConstr'
[23775s] make[1]: *** [libraries/dph/dph-lifted-copy/dist-install/build/Data/Array/Parallel/PArray/PData.o] Error 1
[23775s] make: *** [all] Error 2
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.7 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Compiling dph-lifted fails with \"NoSpecConstr\" not in scope","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.7","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Building ghc-7.7.20131120 fails with this on powerpc64 Linux:\r\n\r\n{{{\r\n\"inplace/bin/ghc-stage2\" -hisuf hi -osuf o -hcsuf hc -static -H32m -O -package-name dph-lifted-copy-0.8.0.1 -hide-all-packages -i -ilibraries/dph/dph-lifted-copy/. -ilibraries/dph/dph-lifted-copy/dist-install/build -ilibraries/dph/dph-lifted-copy/dist-install/build/autogen -Ilibraries/dph/dph-lifted-copy/dist-install/build -Ilibraries/dph/dph-lifted-copy/dist-install/build/autogen -Ilibraries/dph/dph-lifted-copy/. -optP-include -optPlibraries/dph/dph-lifted-copy/dist-install/build/autogen/cabal_macros.h -package array-0.5.0.0 -package base-4.7.0.0 -package dph-base-0.8.0.1 -package dph-prim-par-0.8.0.1 -package ghc-7.7.20131115 -package random-1.0.1.1 -package template-haskell-2.9.0.0 -package vector-0.10.9.1 -Odph -funbox-strict-fields -fcpr-off -fno-warn-orphans -fno-warn-missing-signatures -XHaskell98 -XTypeFamilies -XGADTs -XRankNTypes -XBangPatterns -XMagicHash -XUnboxedTuples -XTypeOperators -O2 -no-user-package-db -rtsopts -odir libraries/dph/dph-lifted-copy/dist-install/build -hidir libraries/dph/dph-lifted-copy/dist-install/build -stubdir libraries/dph/dph-lifted-copy/dist-install/build -c libraries/dph/dph-lifted-copy/./Data/Array/Parallel/PArray/PData.hs -o libraries/dph/dph-lifted-copy/dist-install/build/Data/Array/Parallel/PArray/PData.o \r\n[23775s] \r\n[23775s] libraries/dph/dph-lifted-copy/Data/Array/Parallel/PArray/PData.hs:49:20:\r\n[23775s] Not in scope: data constructor `NoSpecConstr'\r\n[23775s] make[1]: *** [libraries/dph/dph-lifted-copy/dist-install/build/Data/Array/Parallel/PArray/PData.o] Error 1\r\n[23775s] make: *** [all] Error 2\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->https://gitlab.haskell.org/ghc/ghc/-/issues/8023dph-examples binaries don't use all CPUs2023-12-01T14:11:24ZLethalmandph-examples binaries don't use all CPUsHi,
I've run dph-spectral-quicksort 3000000 +RTS -N6 of dph-examples-0.7.0.5 but it doesn't seem to use all the 6 hyperthreads. You can see the system monitor attached.
Same goes for the other quickhull-vector example.
ghc --version
The...Hi,
I've run dph-spectral-quicksort 3000000 +RTS -N6 of dph-examples-0.7.0.5 but it doesn't seem to use all the 6 hyperthreads. You can see the system monitor attached.
Same goes for the other quickhull-vector example.
ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
llvm-config-3.0 --version
1. 0
What am I possibly doing wrong?
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.6.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | benl |
| Operating system | |
| Architecture | Unknown/Multiple |
</details>
<!-- {"blocked_by":[],"summary":"dph-examples binaries don't use all CPUs","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.6.3","keywords":[],"differentials":[],"test_case":"","architecture":"Unknown/Multiple","cc":["benl"],"type":"Bug","description":"Hi,\r\nI've run dph-spectral-quicksort 3000000 +RTS -N6 of dph-examples-0.7.0.5 but it doesn't seem to use all the 6 hyperthreads. You can see the system monitor attached.\r\nSame goes for the other quickhull-vector example.\r\n\r\nghc --version\r\nThe Glorious Glasgow Haskell Compilation System, version 7.6.3\r\n\r\nllvm-config-3.0 --version\r\n3.0\r\n\r\nWhat am I possibly doing wrong?","type_of_failure":"OtherFailure","blocking":[]} -->https://gitlab.haskell.org/ghc/ghc/-/issues/7098GHC 7.4.1 reports an internal error and core dumps while using DPH2023-12-01T14:10:50ZPrasannaGHC 7.4.1 reports an internal error and core dumps while using DPHWhile compiling a DPH program I got the following error,
```
Main: internal error: allocGroup: requested zero blocks
(GHC version 7.4.1 for i386_unknown_linux)
Please report this as a GHC bug: http://www.haskell.org/ghc/reporta...While compiling a DPH program I got the following error,
```
Main: internal error: allocGroup: requested zero blocks
(GHC version 7.4.1 for i386_unknown_linux)
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Aborted (core dumped)
```
I have attached the code files that I was using.benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/6080dph-classes-vseg-fast fails: Vectorisation error2019-07-07T18:52:17ZIan Lynagh <igloo@earth.li>dph-classes-vseg-fast fails: Vectorisation error```
cd ./dph/classes && '/home/ian/ghc/git/ghc/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fno-ghci-history --make -o dph-classes-vseg-fast Main -O -fno-enable-rewrite...```
cd ./dph/classes && '/home/ian/ghc/git/ghc/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fno-ghci-history --make -o dph-classes-vseg-fast Main -O -fno-enable-rewrite-rules -package dph-lifted-vseg >dph-classes-vseg-fast.comp.stderr 2>&1
Compile failed (status 256) errors were:
[1 of 2] Compiling DefsVect ( DefsVect.hs, DefsVect.o )
*** Vectorisation error ***
Can't vectorise expression (vectExpr) GHC.Classes.== @ a $dEq x x
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.5 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"dph-classes-vseg-fast fails: Vectorisation error","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"7.6.1","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"benl"},"version":"7.5","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{\r\ncd ./dph/classes && '/home/ian/ghc/git/ghc/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fno-ghci-history --make -o dph-classes-vseg-fast Main -O -fno-enable-rewrite-rules -package dph-lifted-vseg >dph-classes-vseg-fast.comp.stderr 2>&1\r\nCompile failed (status 256) errors were:\r\n[1 of 2] Compiling DefsVect ( DefsVect.hs, DefsVect.o )\r\n*** Vectorisation error ***\r\n Can't vectorise expression (vectExpr) GHC.Classes.== @ a $dEq x x\r\n}}}\r\n","type_of_failure":"OtherFailure","blocking":[]} -->7.6.1Manuel M T ChakravartyManuel M T Chakravartyhttps://gitlab.haskell.org/ghc/ghc/-/issues/6004dph-lifted-vseg package doesn't provide Data.Array.Parallel.Prelude.Float module2023-12-01T14:08:09Zshelarcy@capella.freemail.ne.jpdph-lifted-vseg package doesn't provide Data.Array.Parallel.Prelude.Float moduledph-lifted-copy package and old dph-par package provide Data.Array.Parallel.Prelude.Float module.
- http://hackage.haskell.org/package/dph-lifted-copy
- http://hackage.haskell.org/package/dph-par
But dph-lifted-vseg package doesn't pro...dph-lifted-copy package and old dph-par package provide Data.Array.Parallel.Prelude.Float module.
- http://hackage.haskell.org/package/dph-lifted-copy
- http://hackage.haskell.org/package/dph-par
But dph-lifted-vseg package doesn't provide Data.Array.Parallel.Prelude.Float module, now.
- http://hackage.haskell.org/package/dph-lifted-vseg-0.6.1.2
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.4.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"dph-lifted-vseg package doesn't provide Data.Array.Parallel.Prelude.Float module","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.4.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"dph-lifted-copy package and old dph-par package provide Data.Array.Parallel.Prelude.Float module.\r\n\r\n * http://hackage.haskell.org/package/dph-lifted-copy\r\n * http://hackage.haskell.org/package/dph-par\r\n\r\nBut dph-lifted-vseg package doesn't provide Data.Array.Parallel.Prelude.Float module, now.\r\n\r\n * http://hackage.haskell.org/package/dph-lifted-vseg-0.6.1.2","type_of_failure":"OtherFailure","blocking":[]} -->⊥benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/5840Extend the supported environment sizes of vectorised closures2023-12-01T14:07:56Zmukesh.tiwariExtend the supported environment sizes of vectorised closures```
ghc: panic! (the 'impossible' happened)
(GHC version 7.2.1 for i386-apple-darwin):
VectMonad.lookupFamInst: not found:
dph-par:Data.Array.Parallel.PArray.PData.PData{tc r4u}
(ghc-prim:GHC.Types.Int{(w) tc 3J},
gh...```
ghc: panic! (the 'impossible' happened)
(GHC version 7.2.1 for i386-apple-darwin):
VectMonad.lookupFamInst: not found:
dph-par:Data.Array.Parallel.PArray.PData.PData{tc r4u}
(ghc-prim:GHC.Types.Int{(w) tc 3J},
ghc-prim:GHC.Types.Int{(w) tc 3J},
dph-par:Data.Array.Parallel.PArray.Base.PArray{tc r1}
(ghc-prim:GHC.Types.Int{(w) tc 3J},
ghc-prim:GHC.Types.Int{(w) tc 3J},
ghc-prim:GHC.Types.Double{(w) tc 3u}),
ghc-prim:GHC.Types.Int{(w) tc 3J},
ghc-prim:GHC.Types.Int{(w) tc 3J}
dph-par:Data.Array.Parallel.Lifted.Closure.:->{tc r2} (ghc-prim:GHC.Types.Int{(w) tc 3J}
dph-par:Data.Array.Parallel.Lifted.Closure.:->{tc r2} ghc-prim:GHC.Types.Int{(w) tc 3J}),
ghc-prim:GHC.Types.Int{(w) tc 3J})
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
```⊥Manuel M T ChakravartyManuel M T Chakravartyhttps://gitlab.haskell.org/ghc/ghc/-/issues/5817dph-diophantine-copy-opt fails2019-07-07T18:53:28ZIan Lynagh <igloo@earth.li>dph-diophantine-copy-opt fails```
=====> dph-diophantine-copy-opt(normal) 278 of 3198 [0, 0, 0]
cd ./dph/diophantine && '/home/ian/ghc/git/ghc/bindisttest/install dir/bin/ghc' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fn...```
=====> dph-diophantine-copy-opt(normal) 278 of 3198 [0, 0, 0]
cd ./dph/diophantine && '/home/ian/ghc/git/ghc/bindisttest/install dir/bin/ghc' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fno-ghci-history --make -o dph-diophantine-copy-opt Main -Odph -package dph-lifted-copy >dph-diophantine-copy-opt.comp.stderr 2>&1
cd ./dph/diophantine && ./dph-diophantine-copy-opt </dev/null >dph-diophantine-copy-opt.run.stdout 2>dph-diophantine-copy-opt.run.stderr
Wrong exit code (expected 0 , actual 1 )
Stdout:
(1260,[2,2,1,1,0])
(1260,[2,2,1,1,0])
Stderr:
dph-diophantine-copy-opt: libraries/vector/Data/Vector/Generic.hs:395 (slice): invalid slice (0,68,34)
dph-diophantine-copy-opt: thread blocked indefinitely in an MVar operation
*** unexpected failure for dph-diophantine-copy-opt(normal)
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.5 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"dph-diophantine-copy-opt fails","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"benl"},"version":"7.5","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"{{{\r\n=====> dph-diophantine-copy-opt(normal) 278 of 3198 [0, 0, 0]\r\ncd ./dph/diophantine && '/home/ian/ghc/git/ghc/bindisttest/install dir/bin/ghc' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-conf -rtsopts -fno-ghci-history --make -o dph-diophantine-copy-opt Main -Odph -package dph-lifted-copy >dph-diophantine-copy-opt.comp.stderr 2>&1\r\ncd ./dph/diophantine && ./dph-diophantine-copy-opt </dev/null >dph-diophantine-copy-opt.run.stdout 2>dph-diophantine-copy-opt.run.stderr\r\nWrong exit code (expected 0 , actual 1 )\r\nStdout:\r\n(1260,[2,2,1,1,0])\r\n(1260,[2,2,1,1,0])\r\n\r\nStderr:\r\ndph-diophantine-copy-opt: libraries/vector/Data/Vector/Generic.hs:395 (slice): invalid slice (0,68,34)\r\ndph-diophantine-copy-opt: thread blocked indefinitely in an MVar operation\r\n\r\n*** unexpected failure for dph-diophantine-copy-opt(normal)\r\n}}}\r\n","type_of_failure":"OtherFailure","blocking":[]} -->7.4.2benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/5807DPH library functions don't work without -fvectorise.2023-12-01T14:07:08ZbenlDPH library functions don't work without -fvectorise.Mukesh Tiwari reports:
```
ghci>import Data.Array.Parallel
ghci>import Data.Array.Parallel.PArray
ghci>let u = Data.Array.Parallel.PArray.fromList [ 1 .. 10 ]
ghci>:t u
u :: PArray Double
ghci>u
fromList<PArray> [1.0,2.0,3.0,4.0,5.0,6....Mukesh Tiwari reports:
```
ghci>import Data.Array.Parallel
ghci>import Data.Array.Parallel.PArray
ghci>let u = Data.Array.Parallel.PArray.fromList [ 1 .. 10 ]
ghci>:t u
u :: PArray Double
ghci>u
fromList<PArray> [1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0]
ghci>let v = Data.Array.Parallel.fromPArrayP u
ghci>:t v
v :: [:Double:]
ghci>lengthP v
0
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.2.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"lengthP returns bad result","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"benl"},"version":"7.2.2","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"\r\nMukesh Tiwari reports:\r\n\r\n{{{\r\nghci>import Data.Array.Parallel\r\nghci>import Data.Array.Parallel.PArray \r\nghci>let u = Data.Array.Parallel.PArray.fromList [ 1 .. 10 ]\r\nghci>:t u\r\nu :: PArray Double\r\nghci>u\r\nfromList<PArray> [1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0]\r\nghci>let v = Data.Array.Parallel.fromPArrayP u\r\nghci>:t v\r\nv :: [:Double:]\r\nghci>lengthP v\r\n0\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->⊥benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/5702Can't vectorise pattern matching on numeric literals2023-12-01T14:06:55ZManuel M T ChakravartyCan't vectorise pattern matching on numeric literalsTrying to vectorise
```
toBool :: Int -> Bool
toBool 0 = False
toBool _ = True
```
we get
```
*** Vectorisation error ***
Can't vectorise expression GHC.Prim.Int#
```
<details><summary>Trac metadata</summary>
| Trac field ...Trying to vectorise
```
toBool :: Int -> Bool
toBool 0 = False
toBool _ = True
```
we get
```
*** Vectorisation error ***
Can't vectorise expression GHC.Prim.Int#
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Can't vectorise pattern matching on numeric literals","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"chak"},"version":"7.3","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"Trying to vectorise\r\n{{{\r\ntoBool :: Int -> Bool\r\ntoBool 0 = False\r\ntoBool _ = True\r\n}}}\r\nwe get\r\n{{{\r\n*** Vectorisation error ***\r\n Can't vectorise expression GHC.Prim.Int#\r\n}}}","type_of_failure":"OtherFailure","blocking":[]} -->⊥Manuel M T ChakravartyManuel M T Chakravartyhttps://gitlab.haskell.org/ghc/ghc/-/issues/5470The DPH library needs to support PData and PRepr instances for more than 15-t...2023-12-01T14:06:24ZManuel M T ChakravartyThe DPH library needs to support PData and PRepr instances for more than 15-tuplesCurrently, `Data.Array.Parallel.PArray.PDataInstances` only generates tuple instances up to 6-tuple. This is not sufficient as these instances are used for environments of closures by the vectoriser — i.e., once a closures has more than ...Currently, `Data.Array.Parallel.PArray.PDataInstances` only generates tuple instances up to 6-tuple. This is not sufficient as these instances are used for environments of closures by the vectoriser — i.e., once a closures has more than 15 free variables, the compiler fails with `VectMonad.lookupFamInst: not found`.⊥Manuel M T ChakravartyManuel M T Chakravartyhttps://gitlab.haskell.org/ghc/ghc/-/issues/5076No instance Show [: Int :] in dph-diophantine-opt2019-07-07T18:57:00Zdaniel.is.fischerNo instance Show [: Int :] in dph-diophantine-optThe test dph-diophantine-opt failed with
```
Compile failed (status 256) errors were:
[1 of 2] Compiling DiophantineVect ( DiophantineVect.hs, DiophantineVect.o )
[2 of 2] Compiling Main ( Main.hs, Main.o )
Main.hs:40:9:
...The test dph-diophantine-opt failed with
```
Compile failed (status 256) errors were:
[1 of 2] Compiling DiophantineVect ( DiophantineVect.hs, DiophantineVect.o )
[2 of 2] Compiling Main ( Main.hs, Main.o )
Main.hs:40:9:
No instance for (Show [:Int:])
arising from a use of `print'
Possible fix: add an instance declaration for (Show [:Int:])
In the expression: print solution3
In the expression:
do { print solution1;
print solution2;
print solution3 }
In an equation for `main':
main
= do { print solution1;
print solution2;
print solution3 }
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"No instance Show [: Int :] in dph-diophantine-opt","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"The test dph-diophantine-opt failed with\r\n{{{\r\nCompile failed (status 256) errors were:\r\n[1 of 2] Compiling DiophantineVect ( DiophantineVect.hs, DiophantineVect.o )\r\n[2 of 2] Compiling Main ( Main.hs, Main.o )\r\n\r\nMain.hs:40:9:\r\n No instance for (Show [:Int:])\r\n arising from a use of `print'\r\n Possible fix: add an instance declaration for (Show [:Int:])\r\n In the expression: print solution3\r\n In the expression:\r\n do { print solution1;\r\n print solution2;\r\n print solution3 }\r\n In an equation for `main':\r\n main\r\n = do { print solution1;\r\n print solution2;\r\n print solution3 }\r\n}}}\r\n","type_of_failure":"OtherFailure","blocking":[]} -->7.2.1Manuel M T ChakravartyManuel M T Chakravartyhttps://gitlab.haskell.org/ghc/ghc/-/issues/4990DPH (desugarer) causes GHC compilation to fail2019-07-07T18:57:27ZnschDPH (desugarer) causes GHC compilation to failWhen trying to build current head, we get the following error:
```
"inplace/bin/ghc-stage2" -H32m -O -package-name dph-seq-0.5 -hide-all-packages -i -ilibraries/dph/dph-seq/../dph-common -ilibraries/dph/dph-seq/dist-install/build -...When trying to build current head, we get the following error:
```
"inplace/bin/ghc-stage2" -H32m -O -package-name dph-seq-0.5 -hide-all-packages -i -ilibraries/dph/dph-seq/../dph-common -ilibraries/dph/dph-seq/dist-install/build -ilibraries/dph/dph-seq/dist-install/build/autogen -Ilibraries/dph/dph-seq/dist-install/build -Ilibraries/dph/dph-seq/dist-install/build/autogen -Ilibraries/dph/dph-seq/. -optP-include -optPlibraries/dph/dph-seq/dist-install/build/autogen/cabal_macros.h -package array-0.3.0.2 -package base-4.3.1.0 -package dph-base-0.5 -package dph-prim-seq-0.5 -package ghc-7.1.20110209 -package ghc-prim-0.2.0.0 -package random-1.0.0.3 -package template-haskell-2.5.0.0 -Odph -funbox-strict-fields -fcpr-off -fdph-this -package-name dph-seq -XHaskell98 -XTypeFamilies -XGADTs -XRankNTypes -XBangPatterns -XMagicHash -XUnboxedTuples -XTypeOperators -O2 -XGenerics -no-user-package-conf -rtsopts -odir libraries/dph/dph-seq/dist-install/build -hidir libraries/dph/dph-seq/dist-install/build -stubdir libraries/dph/dph-seq/dist-install/build -hisuf hi -osuf o -hcsuf hc -c libraries/dph/dph-seq/../dph-common/Data/Array/Parallel.hs -o libraries/dph/dph-seq/dist-install/build/Data/Array/Parallel.o
GHC error in desugarer lookup in dph-seq:Data.Array.Parallel:
Can't find interface-file declaration for variable GHC.PArr.emptyP
Probable cause: bug in .hi-boot file, or inconsistent .hi file
Use -ddump-if-trace to get an idea of which file caused the error
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 7.1.20110209 for i386-unknown-linux):
initDs IOEnv failure
```
This bug has been confirmed and reproduced on at least 3 completly different machines (mac, linux and windows platforms, different versions of ghc/gcc etc.).
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 7.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"DPH (desugarer) causes GHC compilation to fail","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Bug","description":"When trying to build current head, we get the following error:\r\n\r\n{{{\r\n\"inplace/bin/ghc-stage2\" -H32m -O -package-name dph-seq-0.5 -hide-all-packages -i -ilibraries/dph/dph-seq/../dph-common -ilibraries/dph/dph-seq/dist-install/build -ilibraries/dph/dph-seq/dist-install/build/autogen -Ilibraries/dph/dph-seq/dist-install/build -Ilibraries/dph/dph-seq/dist-install/build/autogen -Ilibraries/dph/dph-seq/. -optP-include -optPlibraries/dph/dph-seq/dist-install/build/autogen/cabal_macros.h -package array-0.3.0.2 -package base-4.3.1.0 -package dph-base-0.5 -package dph-prim-seq-0.5 -package ghc-7.1.20110209 -package ghc-prim-0.2.0.0 -package random-1.0.0.3 -package template-haskell-2.5.0.0 -Odph -funbox-strict-fields -fcpr-off -fdph-this -package-name dph-seq -XHaskell98 -XTypeFamilies -XGADTs -XRankNTypes -XBangPatterns -XMagicHash -XUnboxedTuples -XTypeOperators -O2 -XGenerics -no-user-package-conf -rtsopts -odir libraries/dph/dph-seq/dist-install/build -hidir libraries/dph/dph-seq/dist-install/build -stubdir libraries/dph/dph-seq/dist-install/build -hisuf hi -osuf o -hcsuf hc -c libraries/dph/dph-seq/../dph-common/Data/Array/Parallel.hs -o libraries/dph/dph-seq/dist-install/build/Data/Array/Parallel.o\r\nGHC error in desugarer lookup in dph-seq:Data.Array.Parallel:\r\n Can't find interface-file declaration for variable GHC.PArr.emptyP\r\n Probable cause: bug in .hi-boot file, or inconsistent .hi file\r\n Use -ddump-if-trace to get an idea of which file caused the error\r\nghc-stage2: panic! (the 'impossible' happened)\r\n (GHC version 7.1.20110209 for i386-unknown-linux):\r\n initDs IOEnv failure\r\n}}}\r\n\r\nThis bug has been confirmed and reproduced on at least 3 completly different machines (mac, linux and windows platforms, different versions of ghc/gcc etc.).","type_of_failure":"OtherFailure","blocking":[]} -->https://gitlab.haskell.org/ghc/ghc/-/issues/4438Rename and register the "PArr" language extension when it is judged to be ready2019-07-07T18:59:00ZduncanRename and register the "PArr" language extension when it is judged to be readyLanguage extensions used in distributed packages need to be registered in `Language.Haskell.Extension` (which currently lives in the Cabal lib).
When the DPH hackers think that the `PArr` extension is ready for public consumption then t...Language extensions used in distributed packages need to be registered in `Language.Haskell.Extension` (which currently lives in the Cabal lib).
When the DPH hackers think that the `PArr` extension is ready for public consumption then they should register it. It will need to be renamed to something more descriptive, see the `Language.Haskell.Extension` module for examples. The style is to use full words. Perhaps `ParallelArrays` would be an appropriate choice.
Currently the `PArr` extension is the only GHC extension that is deliberately not registered (there are others that are accidentally not registered). It is listed as an exception in the testsuite test that checks for GHC extensions that are accidentally not registered. See ticket #4437.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | |
| Type | Task |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Rename and register the \"PArr\" language extension when it is judged to be ready","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"Task","description":"Language extensions used in distributed packages need to be registered in `Language.Haskell.Extension` (which currently lives in the Cabal lib).\r\n\r\nWhen the DPH hackers think that the `PArr` extension is ready for public consumption then they should register it. It will need to be renamed to something more descriptive, see the `Language.Haskell.Extension` module for examples. The style is to use full words. Perhaps `ParallelArrays` would be an appropriate choice.\r\n\r\nCurrently the `PArr` extension is the only GHC extension that is deliberately not registered (there are others that are accidentally not registered). It is listed as an exception in the testsuite test that checks for GHC extensions that are accidentally not registered. See ticket #4437.","type_of_failure":"OtherFailure","blocking":[]} -->benlbenlhttps://gitlab.haskell.org/ghc/ghc/-/issues/3577Complete support for Data Parallel Haskell2023-12-01T14:04:11Zrl@cse.unsw.edu.auComplete support for Data Parallel HaskellI'm going to open this as a placeholder for all the things the vectoriser can't do yet.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| V...I'm going to open this as a placeholder for all the things the vectoriser can't do yet.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 6.13 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Complete support for Data Parallel Haskell","status":"New","operating_system":"","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"OwnedBy","contents":"rl"},"version":"6.13","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"I'm going to open this as a placeholder for all the things the vectoriser can't do yet.","type_of_failure":"OtherFailure","blocking":[]} -->rl@cse.unsw.edu.aurl@cse.unsw.edu.auhttps://gitlab.haskell.org/ghc/ghc/-/issues/3555Vectorisation error with negative Double const2019-07-07T19:03:22ZamsVectorisation error with negative Double constNegative Double constants cause an error in parallel comprehensions. This function
> negs xs = \[: -1.0 \| x \<- xs :\]
doesn't make it through the compiler; this
> negs xs = \[: (0.0 - 1.0) \| x \<- xs :\]
does.
The error text is
...Negative Double constants cause an error in parallel comprehensions. This function
> negs xs = \[: -1.0 \| x \<- xs :\]
doesn't make it through the compiler; this
> negs xs = \[: (0.0 - 1.0) \| x \<- xs :\]
does.
The error text is
- \*\* Vectorisation error \*\*\*
Tycon not vectorised: GHC.Num.T:Num
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | --------------------- |
| Version | 6.10.4 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Data Parallel Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown/Multiple |
| Architecture | Unknown/Multiple |
</details>
<!-- {"blocked_by":[],"summary":"Vectorisation error with negative Double const","status":"New","operating_system":"Unknown/Multiple","component":"Data Parallel Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"6.10.4","keywords":[],"differentials":[],"test_case":"","architecture":"Unknown/Multiple","cc":[""],"type":"Bug","description":"Negative Double constants cause an error in parallel comprehensions. This function\r\n\r\n negs xs = [: -1.0 | x <- xs :]\r\n\r\ndoesn't make it through the compiler; this\r\n\r\n negs xs = [: (0.0 - 1.0) | x <- xs :]\r\n\r\ndoes.\r\n\r\nThe error text is\r\n\r\n*** Vectorisation error ***\r\n Tycon not vectorised: GHC.Num.T:Num\r\n ","type_of_failure":"OtherFailure","blocking":[]} -->rl@cse.unsw.edu.aurl@cse.unsw.edu.au