Mam program napisany w Haskell i przeznaczony do kompilacji z GHC. Program bardzo dobrze skaluje się na wielu rdzeniach, dlatego bardzo ważne jest umożliwienie wielowątkowości. W moim pliku .cabal
dodałem ghc-options: -O3 -threaded
do połączenia z gwintowanym środowiskiem wykonawczym. Problem polega na tym, że przy takim podejściu użytkownik musiałby uruchomić program pod numerem foo +RTS -N
, co wydaje się nieco zagadkowe i mało przyjazne dla użytkownika.Budowanie z flagami wykonawczymi przy użyciu cabal i ghc
Jak mogę odróżnić cabal/ghc, aby te flagi środowiska wykonawczego były niewidoczne dla użytkownika? Przeczytałem o --with-rtsopts
, ale GHC (7.0.3) po prostu wypluwa unrecognized flag
kiedy próbuję go użyć.
Dziękuję, pomogło mi to! Próbowałem także włączyć flagę '-g1' z' -with-rtsopts = "- N-g1" ', ale otrzymałem" nierozpoznaną flagę: -g1 ". Zarówno '-N', jak i' -g1' działają poprawnie oddzielnie. –
@Viktor Dahl: Myślę, że przyczyną problemu są cytaty. Spróbuj użyć pojedynczych cudzysłowów lub wielu linii '-with-rtsopts'. Jeśli to rozwiąże, to prawdopodobnie jest to błąd ghc (lub błąd dokumentacji). –
Pojedyncze cytaty nie rozwiązały go, ale użyłem dwóch '-with-rtsopts'. –