Как использовать «cabal-dev ghci» с неглобальным (пользовательским?) Пакетом без песочницы?

Я пробую cabal -dev для проекта, над которым я работаю; проект представляет собой библиотеку, и cabal-dev отлично справляется с созданием его изолированной версии - но у меня проблемы с частью моего рабочего процесса ...

У меня есть сценарий, scratch.hs , который (до cabal-dev ) я загружал в ghci для проверки. Содержимое scratch.hs со временем меняется в зависимости от того, над какой функцией я работаю, конечно. scratch.hs не является частью кодовой базы библиотеки, это просто мое личное рабочее пространство, пока я над ним работаю.

Теперь, чтобы получить сеанс ghci с загруженной песочницей, я могу просто cabal-dev ghci , а затем загрузить scratch.hs в что. Проблема в том, что это (намеренно и разумно) исключает мою базу данных пользовательских пакетов, поэтому, если scratch.hs ссылается на модули из пакетов, которых нет в моей библиотеке build-зависимо ( что небезосновательно - в конце концов, это не часть библиотеки), эти пакеты не видны, поэтому я получаю сообщение об ошибке, например:

scripts/scratch.hs:8:8:
    Could not find module `Data.Aeson.Generic':
      It is a member of the hidden package `aeson-0.3.2.11'.
      Perhaps you need to add `aeson' to the build-depends in your .cabal file.
      Use -v to see a list of the files searched for.
Failed, modules loaded: none.

где, в данном случае, scratch.hs хочет для импорта Data.Aeson.Generic , но aeson не входит в мою библиотеку build-зависимо (вполне правильно), но есть в моей базе данных пользовательских пакетов.

Так как я могу это обойти? Я могу представить ответы в любой из этих категорий, но, возможно, есть категории, которые я пропустил:

  1. Способ (выборочно) использовать пакеты из моей базы данных пользовательских пакетов в сочетании с песочницей, созданной cabal-dev . (Возможно, откатил мой собственный сценарий стиля cabal-dev ghci ?)

  2. Предложение о том, как улучшить мой рабочий процесс, чтобы проблема просто исчезла.

Я знаю, что могу просто установить пакет глобально, но я не хочу таким образом загрязнять мою глобальную базу данных пакетов (и cabal-dev явно не одобряет этого).

Большое спасибо за все советы.

8
задан gimboland 15 September 2011 в 14:08
поделиться