16 votes

Problème de compilation de Control.Parallel en Haskell

Le compilateur se plaint à chaque fois sur différents exemples d'applications Haskell parallèles ; avec ce message :

Could not find module `Control.Parallel.Strategies'

La commande du compilateur ghc :

ghc -threaded -i/sudo/dir/par-modules/3 -cpp -DEVAL_STRATEGIES -eventlog --make parFib.hs

Même chose pour les plus simples

ghc -O2 --make -threaded parFib.hs

Quel détail ai-je négligé ? Est-ce qu'il me manque une variable PATH ?

Les importations peuvent ressembler à ceci :

module Main where
import System
#  if defined(EVAL_STRATEGIES)
import Control.Parallel
import Control.Parallel.Strategies
#endif

Cheers

21voto

Daniel Wagner Points 38831

Vous devez installer le parallèle de Hackage. Dans la plupart des configurations saines, cela devrait être aussi simple que de taper

cabal install parallel # note: not sudo cabal install parallel!

à l'invite de commande.

3voto

Slobodan Ilic Points 166

J'ajoute une nouvelle réponse (au lieu d'un commentaire) pour des raisons de visibilité.

Après avoir essayé la réponse de Daniel, je n'étais toujours pas capable de faire import Control.Parallel ni de ghci ni avec le compilateur. La commande install a renvoyé un message d'avertissement comme celui-ci :

➜  ~ cabal install parallel
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: parallel. Perhaps you want to use --lib to install libraries instead.

Ce qui a finalement résolu le problème était :

cabal install --lib parallel

1voto

Comme Daniel l'a dit, vous aurez besoin du paquet parallèle. Toutefois, si vous préférez utiliser le gestionnaire de paquets de votre système (ce que certaines personnes pensent qu'il faut devrait ), vous pouvez.

Notez que, au moins dans les dépôts Fedora, vous aurez besoin de ghc-parallel-devel, et pas seulement de ghc-parallel pour construire.

#yum install ghc-parallel-devel

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X