Сборка с флагами времени выполнения с использованием Cabal и GHC - PullRequest
29 голосов
/ 28 июня 2011

У меня есть программа, написанная на Haskell и предназначенная для компиляции с GHC.Программа очень хорошо масштабируется на нескольких ядрах, поэтому поддержка многопоточности очень важна.В моем файле .cabal я добавил ghc-options: -O3 -threaded для связи с многопоточным временем выполнения.Проблема заключается в том, что при таком подходе пользователю нужно будет запустить программу с foo +RTS -N, что кажется немного загадочным и не очень удобным для пользователя.

Как я могу сказать cabal / ghc, чтобы эти флаги времени выполнения невидимо включалисьпользователю?Я читал о --with-rtsopts, но GHC (7.0.3) просто выплевывает unrecognized flag, когда я пытаюсь его использовать.

1 Ответ

28 голосов
/ 28 июня 2011

Флаг -with-rtsopts, а не --with-rtsopts, поэтому вы должны добавить -with-rtsopts=-N в поле ghc-options. Справочник флагов GHC.

Обратите внимание, что для этого также потребуется связь с поддержкой времени выполнения путем добавления -rtsopts к опциям ghc.

...