Dirk,

Glasgow parallel Haskell (GpH) doesn't work with GHC 4.04, 
but will real soon: (in 4.06 I believe). More info on GpH, 
including the mailing list can be found on 

http://www.cee.hw.ac.uk/~dsg/gph/

Phil

> -----Original Message-----
> From: Dirk Nowotka TUCS [mailto:[EMAIL PROTECTED]]
> Sent: None
> To: [EMAIL PROTECTED]
> Subject: ghc -parallel ...
> 
> 
> Hi,
> 
> I've been trying to compile a toy example with GHC's parallel option.
> 
> The `impossible' happened ...
> 
> How do I get the parallel machinery working?
> 
> Best,
>       Dirk
> 
> 
> Here is the verbose compiler report:
> (the program code follows after that)
> 
> droog:~/Hacks/haskell/Equations/src/test> ghc -parallel
> -i/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/concurrent
> :/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/std -v
> parFact.hs
> The Glorious Glasgow Haskell Compilation System, version 4.04, patchlevel 1
> 
> Effective command line: -parallel
> -i/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/concurrent
> :/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/std -v
> ghc: unrecognised option: -fstack-check
> 
> Ineffective C pre-processor:
>         echo '{-# LINE 1 "parFact.hs" -}' > /tmp/ghc21755.cpp && cat
> parFact.hs >> /tmp/ghc21755.cpp
> 
> real        0.0
> user        0.0
> sys         0.0
> ghc:compile:Output file parFact.o doesn't exist
> ghc:compile:Interface file parFact.hi doesn't exist
> ghc:recompile:Input file parFact.hs newer than parFact.o
> 
> Haskell compiler:
>         /softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/hsc
> /tmp/ghc21755.cpp  -fparallel -fignore-interface-pragmas
> -fomit-interface-pragmas -fsimplify [ -finline-phase2
> -fmax-simplifier-iterations4 ]   -fwarn-overlapping-patterns
> -fwarn-missing-methods -fwarn-duplicate-exports -fhi-version=404 -static
> -himap=/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/concu
> rrent%.hi:/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/st
> d%.hi:.%.hi:/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/imports/
> concurrent%.mp_hi:/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4.04/im
> ports/concurrent%.mp_hi:/softa/zeus/prg/fptools/lib/sparc-sun-solaris2/ghc-4
> .04/imports/std%.mp_hi    -v -hifile=/tmp/ghc21755.hi -C=/tmp/ghc21755.hc
> -F=/tmp/ghc21755_stb.c -FH=/tmp/ghc21755_stb.h +RTS -H6000000 -K1000000
> Glasgow Haskell Compiler, version 4.04, for Haskell 98, compiled by GHC
> version 4.04
> 
> panic! (the `impossible' happened):
>         closureCodeBody:arg_regs
> 
> Please report it as a compiler bug to [EMAIL PROTECTED]
> 
> 
> 
> real        2.5
> user        2.3
> sys         0.1
> deleting... /tmp/ghc21755.cpp /tmp/ghc21755.hi /tmp/ghc21755.hc
> /tmp/ghc21755_stb.c /tmp/ghc21755_stb.h
> 
> rm -f /tmp/ghc21755*
> 
> 
> 
> 
> parFact.hs:
> 
> module Main(main) where
> 
> import IO
> import Parallel
> 
> pfc :: Int -> Int -> Int -> Int
> pfc x y c
>   | y - x > c = f1 `par` (f2 `seq` (f1+f2))
>   | x == y    = x
>   | otherwise = pf x m + pf (m+1) y
>   where
>     m  = (x+y) `div` 2
>     f1 = pfc x m c
>     f2 = pfc (m+1) y c
> 
> pf :: Int -> Int -> Int
> pf x y
>   | x < y     = pf x m + pf (m+1) y
>   | otherwise = x
>   where
>     m = (x+y) `div` 2
> 
> parfact x c = pfc 1 x c
> 
> mk_num  :: String -> Int
> mk_num s = (fst . head) (reads s :: [(Int,String)])
> 
> main = do putStr "argument 1: "
>           arg1 <- getLine
>           putStr "argument 2: "
>           arg2 <- getLine
>           putStrLn (show (parfact (mk_num arg1) (mk_num arg2)))
> 

--------------------------------------------------
Phil Trinder
Department of Computing and Electrical Engineering
Heriot Watt University
Riccarton
Edinburgh, EH14 4AS

E-mail: [EMAIL PROTECTED]
Teleph: +44 (0)131 451 3435
Depart: +44 (0)131 451 3328
Fasmly: +44 (0)131 451 3327
Intrnt: www:http://www.cee.hw.ac.uk/~trinder

Reply via email to