可以确保在安装GHC 7.8时安装了性能分析库吗?

时间:2014-12-17 23:33:44

标签: haskell profiling ghc haskell-platform

我要在新版本的Ubuntu上安装GHC,我想知道:如何确保为核心库安装了性能分析库(例如textunordered-containers)?

我知道更改了cabal的.config文件中的性能分析选项,但我的理解是这只能确保为我安装的那些软件包安装性能分析库。 (参见下面更新中的斜体文字)。

(由于试图为已安装的GHC软件包追溯安装分析库,我昨晚无意中炸毁了我的Ubuntu vbox。这导致现有软件包无法正常运行,导致我尝试卸载GHC,导致了。 ..KABOOM!)

更新 我已经安装了GHC,现在我正要安装cabal。我已经证实了我的怀疑,我正面对一个鸡蛋和鸡蛋#34;困境:为了获得最初的cabal配置文件(我可以在其中将profiling选项设置为True),我需要安装cabal。但是,在我有机会在cabal配置文件中进行更改之前,安装cabal会导致安装核心软件包(例如,文本,无序容器)。

解决: 根据Daniel Wagner的建议(谢谢!),我对bootstrap.sh脚本文件进行了一些修改(遗憾的是我没有使用旧的cabal或者我会遵循他的其他建议)。作为未来读者的参考,我的bootstrap.sh文件的开头看起来像这样(在更改之后):

#VERBOSE
DEFAULT_CONFIGURE_OPTS="--enable-library-profiling --enable-shared"
EXTRA_CONFIGURE_OPTS=${EXTRA_CONFIGURE_OPTS-$DEFAULT_CONFIGURE_OPTS}
#EXTRA_CONFIGURE_OPTS
#EXTRA_BUILD_OPTS
#EXTRA_INSTALL_OPTS

1 个答案:

答案 0 :(得分:4)

首选解决方案是通过软件包管理器安装cabal-install。如果您的软件包管理器中有旧版本的cabal-install,那么您可以使用旧版本安装具有配置的新版本,甚至可以通过cabal install cabal-install --enable-library-profiling直接在命令行上指定分析。 / p>

如果您计划通过其bootstrap.sh脚本安装cabal-install,则另一种解决方案是使用它为配置提供的环境变量。有四个,标注在bootstrap.sh的顶部;相关的一个是EXTRA_CONFIGURE_OPTS,其内容被传递到每个包的configure命令的Setup步骤。所以这样的事情应该做的伎俩(虽然我还没有测试过):

EXTRA_CONFIGURE_OPTS=--enable-library-profiling ./bootstrap.sh