Haskell中的Control.Parallel编译问题

问题描述 投票:11回答:3

编译器每次都在抱怨并行Haskell的不同示例应用程序;带有此消息:

Could not find module `Control.Parallel.Strategies'

ghc编译器命令:

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

与简单相同

ghc -O2 --make -threaded parFib.hs

我俯瞰什么细节?我是否缺少一些PATH变量。

导入看起来可能像这样:

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

欢呼声

haskell functional-programming compiler-errors parallel-processing ghc
3个回答
18
投票

您必须从Hackage安装parallel软件包。在大多数理智的设置中,这应该像键入一样简单

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

在命令提示符下。


1
投票

就像丹尼尔说的那样,您需要并行包装。但是,如果您希望使用系统的程序包管理器(某些人认为您是should),则可以。

注意,至少在Fedora仓库中,您需要ghc-parallel-devel,而不仅仅是ghc-parallel来构建。

#yum install ghc-parallel-devel

0
投票

出于可见性原因,我正在添加新的答案(而不是评论)。

[尝试了Daniel的答案后,无论是import Control.Parallel还是编译器,我仍然都无法执行ghci。 install命令返回如下警告消息:

➜  ~ 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.

最终解决问题的是:

cabal install --lib parallel
© www.soinside.com 2019 - 2024. All rights reserved.