1 Контекст
Я участвую в проекте Haskell, который включает в себя множество C-бит и FFI. Поэтому я часто запускаю и перезапускаю команды вроде
$ stack build
$ stack build --force-dirty
$ stack clean
$ rm ./.stack-work
снова и снова, чтобы C-биты были правильно связаны с битами Haskell. Иными словами, иногда все работает только при запуске stack build
, а иногда и нет (в этом случае мне приходится циклически перебирать указанные выше команды, пока мой проект не будет правильно создан).
Это означает, что у меня нет правильного понимания того, как stack
(через ghc
) собирает C-биты перед сборкой бит Haskell. Итак, вот один из вопросов, которые помогут мне начать расстраивать мою путаницу:
2 Вопрос
Есть ли какая-либо заметная разница между запуском stack clean
и удалением содержимого каталога .stack-work
? Существуют ли случаи, когда удаление каталога .stack-work
необходимо в качестве хорошей меры предосторожности, чтобы убедиться, что вы на самом деле выполняете чистую сборку?