2017-02-22 10 views
1

В project 3 обучающей Габриэля Гонсалеса по строительству Haskell проектов с Никс, он пишет:Использование шухер построить Haskell проект без разъемных объектных файлов

По умолчанию эти библиотеки скомпилированы с -fsplit-objs флагом GHC, чтобы дать возможность разделения объекта файлов, что уменьшает размер библиотеки, но увеличивает время компиляции. Это еще одна причина, по которой я рекомендую создавать корневой проект с помощью cabal во время разработки, потому что по умолчанию cabal не будет компилироваться с разделенными объектами и, следовательно, будет работать быстрее. Однако -fsplit-objs является хорошим стандартом, когда Nix создает проект, поэтому вам не нужно изменять этот параметр.

Что не упомянуто, как сделать nix для сборки вашего проекта haskell без -fsplit-objs. В моем случае у меня есть базовый проект (построенный с помощью GHC), проект frontend (построенный с помощью GHCJS) и общий проект (построенный с обоими). Перестройки общего проекта несколько распространены, поэтому возможность отключения -fsplit-objs сэкономит мне много времени на сборку.

ответ

0

Я думаю, вы хотите enableDeadCodeElimination=false в своем mkDerivation.

Смежные вопросы