我如何告诉stack构建我的可执行文件及其所有依赖项-prof?
只需将它添加到ghc-options了在.cabal文件是不够的,因为它只是试图生成可执行文件与启用分析其失败.
我正在尝试按照此处列出的说明重新安装我的Haskell库并启用性能分析
但是,每当cabal尝试重新安装其中一个库时,我都会收到以下消息:
LibraryNameHere.hs:1:1:
Could not find module `Prelude'
Perhaps you haven't installed the profiling libraries for package `base'?
Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)
当我尝试重新base启动并启用性能分析时,我收到以下消息:
me@machine:~/.cabal/$ cabal install -p base
Resolving dependencies...
All the requested packages are already installed:
base-4.5.0.0
Use --reinstall if you want to reinstall anyway.
me@machine:~/.cabal/$ cabal install --reinstall -p base
Resolving dependencies...
cabal: Could not resolve dependencies:
next goal: base (user goal)
rejecting: base-4.7.0.0, 4.6.0.1, 4.6.0.0, 4.5.1.0, …Run Code Online (Sandbox Code Playgroud) 我希望介绍用Haskell编写的程序.
在编译时,我被告知我没有为某些依赖项(例如criterion)安装和cabal中止分析库.
我没有兴趣分析这些依赖项的部分内容; 调用的代码main甚至不使用它们.
如何在不安装我不需要的分析库的情况下分析我的应用程序,并且不删除所有这些依赖项?
是否可以在不安装分析库的情况下对Haskell程序进行分析?
当我将-prof选项传递给ghc时,我总是得到像这样的错误:
src/MyPKG/FooBlah.lhs:7:7:
Could not find module `Data.Time.Calendar':
Perhaps you haven't installed the profiling libraries for package `time-1.1.4'?
Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)
我知道解决方案是安装库的cabal配置文件版本,但有时这是一个痛苦的屁股(抱歉坏语言).
我认为应该可以对我的程序进行分析,并且没有符号的调用应该????在输出中显示为类似的东西.
可能重复:
Cabal在需要分析库时不安装依赖项?
情况就是这样.我想安装\重新包装一个有一些新的选项或标志(例如我添加library-profiling: True的~/.cabal/config).
cabal install --reinstall A
Run Code Online (Sandbox Code Playgroud)
软件包A取决于软件包B,它安装时不支持该选项.这就是为什么(如果我理解正确的话)告诉我:
Could not find module `B':
Perhaps you haven't installed the profiling libraries for package `B'?
Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)
所以我需要重新安装包B,然后尝试安装包A:
cabal install --reinstall B
cabal install --reinstall A
Run Code Online (Sandbox Code Playgroud)
我想要的只是告诉cabal我需要重新安装所有依赖于A的软件包.我怎样才能做到这一点?
我正在尝试使用性能分析选项编译我的一个可执行文件.我-prof在cabal文件中添加了选项.当我这样做时,我收到一条消息说
Could not find module ‘Package-X’
Perhaps you haven't installed the profiling libraries for package ‘package-x’?
Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)
我怎么做?我试过cabal install --only-dependency --reinstall,我收到以下回复:
All the requested packages are already installed:
Use --reinstall if you want to reinstall anyway.
Run Code Online (Sandbox Code Playgroud)
我已经用过 --reinstall我该怎么办了?我也试过cabal configure --enable-profiling-libraries......
我是一个Haskell新手,我很遗憾这个程序表现如此糟糕.我尝试在各个地方强制使用严格的变量,但似乎没有什么区别.
这是我的代码(该程序的目的是产生从标准输入找到的输入字节的频率):
{-# LANGUAGE BangPatterns #-}
import Control.Concurrent (forkIO, killThread)
import Control.Concurrent.MVar
import qualified Data.IntMap as IntMap
import Data.IntMap.Strict (IntMap)
import Control.Monad.Fix
import Control.Monad (when)
import qualified Data.Char as Char
import qualified System.IO as IO
import System.IO (hSetBinaryMode, hFlush)
import Data.List as List
import Text.PrettyPrint.Boxes as Boxes
import Text.Printf (printf)
import Data.Function
data BFreq = BFreq Integer (IntMap Integer)
main :: IO ()
main = do
putStrLn "analyze data from stdin"
hSetBinaryMode IO.stdin True
mv <- newEmptyMVar
tid <- forkIO …Run Code Online (Sandbox Code Playgroud)