Дифференциальная документация с пикшой
Если я сделаю cabal build
в моей библиотеке, затем измените файл, при следующем запуске cabal build
Мне нужно только перекомпилировать файлы, затронутые изменениями. Я не получаю такое же поведение с cabal haddock
команда: когда я запускаю его после изменения файла, cabal/haddock заканчивает тем, что выбрасывал всю предыдущую работу и начинал с нуля. Это довольно много времени; Есть ли способ получить дифференциальные обновления документации?
Вот дамп командных выпусков, чтобы сгенерировать документацию.
1 ответ
Документация processModules гласит:
Создайте интерфейсы и среду ссылок, проверив список модулей с помощью API GHC и обработав результирующие синтаксические деревья.
И это основная функция haddock
, Таким образом, банкомат ответит на ваш вопрос нет.
cabal build
не помогает cabal haddock
вообще, как haddock
модули проверки типов с различными параметрами (например, __HADDOCK__
Переменная CPP включена)
Создание надежной инкрементальной генерации пикши сложно, так как код позже в графе зависимостей может изменить документацию модулей, предшествующую этой точке: в частности, списки экземпляров. Возможно, можно было бы сбросить интерфейсы модулей.
Глядя на кодprocessModules
первый шаг - это то, что можно сделать постепенно, остальное использует глобальная информация.
Попробуй превратить многословие в максимум т.е. --haddock-options=--verbosity=2
и проверьте, сколько времени тратится между Creating interfaces...
а также Attaching instances...
,