ТЕРРИТОРИЯ ХАКЕРА. ТЕРРИТОРИЯ ХАКЕРА. (Вы были предупреждены.)
Флаги вывода
5.13.1. Вывод промежуточных структур компилятора
-
-ddump-to-file -
Приводит к выводу из каждого флага, начинающегося с «-ddump», в файл или файлы. Если вы хотите сохранить весь вывод одного флага в один файл, используйте
-ddump-file-prefix=⟨str⟩(см. описания ниже). В противном случае вывод будет направлен в несколько файлов, включая один для немодульных и несколько для модульных случаев. Суффикс файла вывода зависит от включенного флага, например, вывод из-ddump-simplокажется вprefix.dump-simpl.
-
-ddump-file-prefix=⟨str⟩ -
Устанавливает префикс имён файлов, используемых для вывода отладки. Например,
-ddump-file-prefix=Fooприведет к выводу из-ddump-simplвFoo.dump-simpl.
-
-fdump-with-ways -
- По умолчанию:
-
включено
При компиляции Main.hs с профилированием и без этого флага теперь будут созданы
Main.p.dump-simplиMain.dump-simplвместо перезаписи вывода одного способа выводом другого.
-
-ddump-json -
Этот флаг ранее использовался для генерации вывода диагностики GHC в формате JSON, но устарел. Используйте вместо него
-fdiagnostics-as-json.
-
-dshow-passes -
Выводит имя каждого этапа, время его выполнения и выделенную память по мере его выполнения. Обратите внимание, что это может немного снизить производительность, так как компилятор будет более активно принуждать к результатам этапов, чтобы более точно учитывать их затраты.
Производятся два типа сообщений: те, которые начинаются с
***, обозначают начало фазы компиляции, в то время как те, которые начинаются с!!!, обозначают завершение этапа и сопровождаются статистикой выделения памяти и времени выполнения.
-
-dipe-stats -
Для каждого модуля показываются некоторые простые статистические данные о том, какие таблицы информации содержат информацию IPE, и сколько таблиц информации с информацией IPE имеет каждый тип замыкания. Это полезно, например, для проверки того, что
STACKтаблицы информации опускаются или включаются в карту таблицы информации.
-
-dfaststring-stats -
Показать статистику использования быстрых строк компилятором.
-
-ddump-faststrings -
Вывести всю таблицу быстрых строк по окончании. Подумайте об использовании
-ddump-file-prefix=⟨str⟩для вывода её в файл.
-
-dppr-debug -
Вывод отладки представлен в нескольких «стилях». Например, рассмотрим вывод типов. В стиле «пользователь» (по умолчанию) внутренние представления компилятора о типах представляются в синтаксисе языка Haskell на уровне исходного кода, насколько это возможно. В стиле «отладки» (который является по умолчанию для вывода отладки) типы печатаются с явными forall, а переменные имеют прикреплённый уникальный идентификатор (чтобы вы могли проверить вещи, которые выглядят одинаково, но таковыми не являются). Этот флаг заставляет вывод отладки отображаться в более подробном стиле отладки.
-
-ddump-timings -
Показать статистику выделения памяти и времени выполнения для различных стадий компиляции. Память измеряется в байтах. Время выполнения измеряется в миллисекундах.
GHC — большая программа, состоящая из множества этапов. Вы можете сообщить GHC о выводе информации с различных этапов компиляции, используя флаги -ddump-⟨pass⟩ ниже. Обратите внимание, что некоторые из них склонны генерировать большой объём вывода. Вы можете предотвратить их заполнение стандартного вывода, передавая -ddump-to-file.
5.13.1.1. Фронтенд
Эти флаги выводят различную информацию из фронтенда GHC. Это включает в себя парсер и читатель файлов интерфейса.
-
-ddump-parsed -
Вывести вывод парсера
-
-ddump-parsed-ast -
Вывести вывод парсера как синтаксическое дерево
-
-dkeep-comments -
Включить комментарии в парсер. Полезно в сочетании с
-ddump-parsed-ast.
-
-ddump-if-trace -
Заставить загрузчик интерфейса быть действительно болтливым о том, что он делает.
5.13.1.2. Проверка типов и переименование
Эти флаги выводят различную информацию из модуля проверки типов и переименования GHC.
-
-ddump-tc-trace -
Заставить проверяющий типы быть действительно болтливым о том, что он делает.
-
-ddump-rn-trace -
Заставить переименовыватель быть действительно болтливым о том, что он делает.
-
-ddump-ec-trace -
Заставить проверятель исчерпываемости шаблонов быть действительно болтливым о том, что он делает.
-
-ddump-cs-trace -
Заставить решатель ограничений быть действительно болтливым о том, что он делает.
-
-ddump-rn-stats -
Вывести сводку о том, какой тип информации пришлось получить переименователю.
-
-ddump-rn -
Вывести вывод переименовывателя
-
-ddump-rn-ast -
Вывести вывод переименовывателя как синтаксическое дерево
-
-ddump-tc -
Вывести вывод проверяющего типы. Обратите внимание, что это по умолчанию скрывает много деталей; вы можете рассмотреть возможность использования этого с
-fprint-typechecker-elaboration.
-
-ddump-tc-ast -
Вывести вывод проверяющего типы как синтаксическое дерево
-
-ddump-hie -
Вывести синтаксическое дерево файла hie, если мы генерируем расширенные файлы интерфейса
-
-ddump-splices -
Вывести выражения Template Haskell, которые мы вставляем, и к какому коду Haskell эти выражения приводят.
-
-dth-dec-file -
Вывести расширения всех выражений Template Haskell верхнего уровня в
module.th.hsдля каждого файлаmodule.hs.
-
-ddump-types -
Вывести сигнатуру типа для каждого значения, определённого на верхнем уровне модуля. Список отсортирован в алфавитном порядке. Используя
-dppr-debug, выводится сигнатура типа для всех импортированных и системных вещей; полезно для отладки компилятора.
-
-ddump-deriv -
Вывести производные экземпляры