В project 3 обучающей Габриэля Гонсалеса по строительству Haskell проектов с Никс, он пишет:Использование шухер построить Haskell проект без разъемных объектных файлов
По умолчанию эти библиотеки скомпилированы с
-fsplit-objs
флагом GHC, чтобы дать возможность разделения объекта файлов, что уменьшает размер библиотеки, но увеличивает время компиляции. Это еще одна причина, по которой я рекомендую создавать корневой проект с помощью cabal во время разработки, потому что по умолчанию cabal не будет компилироваться с разделенными объектами и, следовательно, будет работать быстрее. Однако-fsplit-objs
является хорошим стандартом, когда Nix создает проект, поэтому вам не нужно изменять этот параметр.
Что не упомянуто, как сделать nix для сборки вашего проекта haskell без -fsplit-objs
. В моем случае у меня есть базовый проект (построенный с помощью GHC), проект frontend (построенный с помощью GHCJS) и общий проект (построенный с обоими). Перестройки общего проекта несколько распространены, поэтому возможность отключения -fsplit-objs
сэкономит мне много времени на сборку.