Стек / Докер /IHaskell странное поведение

У меня есть пакет с кучей файлов *.c и *.cpp, перечисленных внутри c-sources поле *.cabal файл. Мне нужно включить его в проект с IHaskell и некоторыми другими пакетами. Все отлично работает и строит без проблем. stack exec ghci отлично работает, и я могу импортировать модули и выполнить любой код. stack ghci хотя выдает странные ошибки, например:

In file included from <command-line>:10:0: 

/...blabla.../.stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/autogen/cabal_macros.h:157:0:
     note: this is the location of the previous definition
     #define CURRENT_PACKAGE_KEY "blabla"
     ^

А также stack ghci внутри моего пакета жалуется на символы, экспортированные из кода Си. Еще одна странная вещь заключается в том, что символы зависят от порядка exposed-modules в конфигурации, поэтому ошибка исчезнет, ​​если я положу свой модуль *.hs поверх других, но если у меня есть два файла *.hs, импортируемые из одного и того же файла *.c, это не сработает! stack exec jupyter -- console --kernel haskell начинается, но сразу бросает unknown symbol ошибка, если я пытаюсь запустить какой-то код из моего пакета, но всегда один и тот же.

У меня есть образ докера на основе fpco/stack-build, который просто устанавливает jupyter и другие необходимые вещи. я использую lts-3.0 снимок, если это как-то актуально.

Что здесь происходит?

1 ответ

В последнее время было сделано много улучшений для стека ghci, который все еще находится в стадии разработки. Я бы порекомендовал протестировать мастер стека, и если проблема все еще существует, открыв проблему с Github.

Другие вопросы по тегам