Стек / Докер /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.