On 27/09/2010, at 10:06 , Joćo Paulo Pizani Flor wrote:

The code I've written (two files) for this example is in the following pastebins:

DPHVecMul.hs:  http://paste.org/pastebin/view/22899
Main.hs:  http://paste.org/pastebin/view/22900

I've compiled successfully both files and linked them, exactly as described in the Wiki. But when I run the resulting executable, the following error shows up:

"dotp: Prelude.undefined"

It's seems (from the tests I've done) that the call to the function fromPArrayP of the module Data.Parallel.Array.Prelude results always in undefined. In fact, I've taken a look at the function definition in the docs, and in fact it always returns undefined. It doesn't make ANY SENSE to me :P

Has someone been able to successfully compile and run this example code?? If so, what am I doing wrong? Is there some obvious error I'm incurring in? :D

It's because you didn't add {-# OPTIONS -fvectorise #-} when compiling the DPHVectMul.hs module. The GHC vectoriser rewrites calls to fromPArrayP to the real implementations in its back-end library, but if the vectoriser doesn't run you get the default implementation which is just "undefined". I agree its an atrocious error message. It should have a real one in the head / GHC 7.0

Ben.