Подтвердить что ты не робот

Опция GHC -ddump-splices - Шаблон Haskell

Я следую книге Есода, в которой говорится:

Но с помощью опции GDC -ddump-сращивания GHC мы можем получить немедленную посмотрите на сгенерированный код. Его сильно очищенная версия:

Как мне это сделать? Я попытался скомпилировать свой файл с ghc -XTemplateHaskell -ddump-splices Page.hs, который оставляет каталог следующим образом:

Page Page.hi Page.hs Page.hs~ Page.o

Однако ни один из этих файлов не содержит промежуточный код, сгенерированный Template Haskell.

http://www.yesodweb.com/book/basics

4b9b3361

Ответ 1

В то же время поведение изменилось, и флаг -ddump-to-file в дополнение к флагом -ddump-splices заставляет сплайсы записываться в файл, см. Раздел 9.26 текущей документации (GHC 8.2.1) для более подробной информации.


В более старых версиях GHC (я не проверял, в какой версии изменилось поведение), -ddump-splices работал по-другому:

Опция -ddump-splices заставляет GHC сбрасывать сращивания на stderr. К сожалению, флаг -ddump-to-file не влияет на сращивания (я не знаю, имеет ли это более глубокие причины или просто является надзором), поэтому вам нужно захватить вывод stderr для сохранения сращиваний для последующего исследования,

ghc -XTemplateHaskell -ddump-splices Page.hs 2> Page.dump-splices

на достаточно bash -подобных оболочках.