Подтвердить что ты не робот

Как использовать cabal MIN_VERSION_ и другие макросы с ghci?

Когда я использую Cabal различные макросы MIN_VERSION_ в проекте Haskell, как я могу убедиться, что все они правильно определены, когда я не использую cabal, например. при тестировании в GHCi?

4b9b3361

Ответ 1

В настоящее время cabal поддерживает подкоманду cabal repl, которая выполняет всю настройку для вас, поэтому, по крайней мере, для ghci следующее не требуется. Тем не менее:

Команда cabal build создает файл dist/build/autogen/cabal_macros.h, который содержит все необходимые вам определения. Чтобы включить этот файл в вызов ghc, вам понадобятся флаги -optP-include -optPdist/build/autogen/cabal_macros.h.

Для удобства вы можете разместить следующее в файле .ghci в каталоге проекта:

:set -optP-include -optPdist/build/autogen/cabal_macros.h

чтобы вам не приходилось вводить параметры каждый раз, когда вы хотите использовать ghci.

Остерегайтесь, однако: макросы будут определены в соответствии с конфигурацией при последнем запуске cabal build и не будут обновляться при установке новых пакетов или использовании другой версии GHC: настроить и перестроить пакет.

(Благодаря Саймону Хенгелю в списке библиотек для этой мудрости: http://www.haskell.org/pipermail/libraries/2012-September/018491.html).