Плагины Haskell и песочница клики

Итак, я пытаюсь использовать пакет плагинов для динамической загрузки функции haskell из исходного файла. Исходный файл зависит от пакета foo с модулем Foo.Bar. Я запускаю свой проект в песочнице Cabal, где у меня установлен foo. И моя основная программа, и модуль, который я загружаю с плагинами, зависят от foo. Я всегда получаю одну из следующих двух ошибок:

Когда я установил foo в ~/.cabal, я получаю сообщение об ошибке:

GHCi runtime linker: fatal error: I found a duplicate definition for symbol
  aizmvszmaizmlibzm0zi1_FooziBar_zdfTypeableBazzuds2_closure
whilst processing object file
  /home/joey/.cabal/lib/foo-0.1/ghc-7.6.3/HSfoo-0.1.o
This could be caused by:
  * Loading two different object files which export the same symbol
  * Specifying the same object file twice on the GHCi command line
  * An incorrect `package.conf' entry, causing some object to be
    loaded twice.
GHCi cannot safely continue in this situation.  Exiting now.  Sorry.

Когда он не установлен в ~/.cabal, я получаю стандартную ошибку «модуль не найден». И когда он не установлен в моей песочнице, я получаю ту же ошибку модуля, не найденную при попытке скомпилировать мой основной программный код.

Документация по плагинам в лучшем случае скудна. Любые мысли о том, как решить эту проблему?


person jmite    schedule 21.01.2014    source источник
comment
Было бы полезно, если бы вы привели минимальный пример компиляции.   -  person Thomas M. DuBuisson    schedule 21.01.2014
comment
Я сделаю это завтра. В настоящее время он находится внутри довольно большого проекта yesod, мне нужно извлечь минимальную часть.   -  person jmite    schedule 21.01.2014
comment
У меня возникли проблемы с минимальным примером. Любые идеи?   -  person jmite    schedule 26.01.2014


Ответы (1)


Я получил это, используя System.Plugins.Make, чтобы фактически выполнить компиляцию, вместо того, чтобы полагаться на уже существующие объектные файлы. Не полное решение, не объясняет проблему, но пока это работает для меня.

person jmite    schedule 27.01.2014