Cabal

2014-04-08 28 views
6

ile yürütülebilir bir uygulama profili Güncel yeni ism değiştirme işlemlerinden sonra, bir yürütülebilir dosyanın nasıl işleneceği konusunda kafam karıştı.Cabal

[email protected]$ grep prof ~/.cabal/config 
library-profiling: True 
executable-profiling: True 

Ama profilleme ile benim yürütülebilir çalıştırmayı denerseniz, ben baypas cabal çalışırsanız

[email protected]$ cabal run realtra-benchmark +RTS -p 
cabal: the flag -p requires the program to be built with -prof 
cabal: 
cabal: Usage: <prog> <args> [+RTS <rtsopts> | -RTS <args>] ... --RTS <args> 
<snip> 

aynı yanıt almak ... olsun: ~/.cabal/config, ben profil etkin: ./dist/dist-sandbox-c8599c64/build/realtra-benchmark/realtra-benchmark +RTS -p. Ben onlar benim yapılandırma dosyasında sen olduğun şu bayrakları eklemek zorunda olmamalıdır anlamaya

[email protected]$ cabal build --ghc-options=-Werror && cabal test && cabal install 
./realtra.cabal has been changed. Re-configuring with most recently used 
options. If this fails, please run configure manually. 
Resolving dependencies... 
Configuring creatur-realtra-1.0.8... 
Warning: 'ghc-options: -prof' is not necessary and will lead to problems when 
used on a library. Use the configure flag --enable-library-profiling and/or 
--enable-executable-profiling. 

ama: Elbette

, benim Cabal dosyasında GHC-Options: için -prof işaretini ekleyerek işe yaramaz her ihtimale karşı, ben deneyin:

[email protected]$ cabal configure --enable-executable-profiling --enable-library-profiling 
Resolving dependencies... 
Configuring creatur-realtra-1.0.8... 
[email protected]$ cabal build --ghc-options=-Werror && cabal test && cabal install 
<snip> 
[email protected]$ cabal run realtra-benchmark +RTS -p 
cabal: the flag -p requires the program to be built with -prof 
cabal: 
cabal: Usage: <prog> <args> [+RTS <rtsopts> | -RTS <args>] ... --RTS <args> 
<snip> 

Neyi eksik?

+0

Bunu denediniz mi: 'cabal run realtra-benchmark + RTS -p -RTS' – Sibi

+1

' -RTS' bayrağı yalnızca çalışma zamanı olmayan bayraklarla takip ettiğinizde gerekir. Ama sadece emin olmak için, şimdi '-RTS' ile denedim ve aynı hatayı aldım. – mhwombat

+2

'cabal run realtra-benchmark'ı deneyin - + RTS -p'. Benim tahminim, + RTS'nin 'cabal' çalıştırıcısının kendisinin argümanı olarak yorumlanması. –

cevap

7

Sorun, +RTS -p bit'in kendisi, kendisi için cabal yürütülebilir dosyasının argümanları olarak yorumlanmasıdır. Bu bağımsız değişkenleri realtra-benchmark yürütülebilir dosyasına iletmek için cabal run realtra-benchmark -- +RTS -p kullanın. Genelde, cabal run (en az this issue sabit olana kadar) kullanırken iletilmek istediğiniz argümanlardan önce her zaman çift çizgi koymalısınız.