Spec-Zone.ru › Haskell 9

5.6. Справочник флагов

Этот раздел содержит краткий справочник командных флагов GHC. Для каждого флага также указан его режим/динамический статус (см. Динамические и режимные параметры), и противоположный флаг (если доступен).

5.6.1. Параметры подробности вывода

Подробнее в Параметры подробности вывода

Флаг Описание Тип Обратное значение

-fabstract-refinement-hole-fits

по умолчанию: выключено. Включает/выключает вывод уточнений, где одно или несколько отверстий абстрактны.

динамический

-fno-abstract-refinement-hole-fits

-fdefer-diagnostics

Отложить и сгруппировать сообщения диагностики по уровню серьезности

динамический

-fdiagnostics-as-json

Вывод диагностики в формате Json, заданном схемой JSON

динамический

-fdiagnostics-color=⟨always|auto|never⟩

Использовать цвета в сообщениях об ошибках

динамический

-fdiagnostics-show-caret

Показывать ли фрагменты исходного кода

динамический

-fno-diagnostics-show-caret

-ferror-spans

Выводить полный размах в сообщениях об ошибках

динамический

-fhide-source-paths

скрыть пути к исходному коду модуля и объектам

динамический

-fkeep-going

Продолжать компиляцию при ошибках как можно дальше

динамический

-fmax-refinement-hole-fits=⟨n⟩

по умолчанию: 6. Установить максимальное количество уточнений для отверстий с типом, отображаемых в сообщениях об ошибках типов.

динамический

-fno-max-refinement-hole-fits

-fmax-relevant-binds=⟨n⟩

по умолчанию: 6. Установить максимальное количество связей для отображения в сообщениях об ошибках типов.

динамический

-fno-max-relevant-binds

-fmax-valid-hole-fits=⟨n⟩

по умолчанию: 6. Установить максимальное количество допустимых соответствий отверстий с типом для отображения в сообщениях об ошибках типов.

динамический

-fno-max-valid-hole-fits

-fno-show-valid-hole-fits

Отключает отображение списка допустимых соответствий отверстий с типом в сообщениях об ошибках типов.

динамический

-fno-sort-valid-hole-fits

Отключает сортировку списка допустимых соответствий отверстий с типом в сообщениях об ошибках типов.

динамический

-fsort-valid-hole-fits

-fprint-axiom-incomps

Отобразить несовместимости уравнений в закрытых типах семейств.

динамический

-fno-print-axiom-incomps

-fprint-equality-relations

Различать равенства при печати

динамический

-fno-print-equality-relations

-fprint-error-index-links=⟨always|auto|never⟩

Выводить ли коды диагностики в виде гиперссылок ANSI на Индекс ошибок Haskell.

динамический

-fprint-expanded-synonyms

В сообщениях об ошибках также печатать типы, расширенные синонимами типов.

динамический

-fno-print-expanded-synonyms

-fprint-explicit-coercions

Печатать принуждения в типах

динамический

-fno-print-explicit-coercions

-fprint-explicit-foralls

Печатать явную квантификацию forall в типах. См. также ExplicitForAll

динамический

-fno-print-explicit-foralls

-fprint-explicit-kinds

Печатать явные универсальные квантификаторы и аргументы типов в типах. См. также KindSignatures

динамический

-fno-print-explicit-kinds

-fprint-explicit-runtime-reps

Печатать переменные RuntimeRep и Levity в типах, которые полиморфны относительно представления во время выполнения.

динамический

-fno-print-explicit-runtime-reps

-fprint-potential-instances

отображать все доступные экземпляры в сообщениях об ошибках типов

динамический

-fno-print-potential-instances

-fprint-redundant-promotion-ticks

Печатать лишние метки продвижения DataKinds

динамический

-fno-print-redundant-promotion-ticks

-fprint-typechecker-elaboration

Печатать дополнительную информацию из типовой проверки.

динамический

-fno-print-typechecker-elaboration

-fprint-unicode-syntax

Использовать уникод-синтаксис при печати выражений, типов и видов. См. также UnicodeSyntax

динамический

-fno-print-unicode-syntax

-frefinement-level-hole-fits=⟨n⟩

по умолчанию: выключено. Устанавливает уровень уточнения соответствий отверстий уточнения, где уровень n означает, что будут рассматриваться совпадения отверстий до n отверстий.

динамический

-fno-refinement-level-hole-fits

-freverse-errors

Выводить ошибки в обратном порядке

динамический

-fno-reverse-errors

-fshow-docs-of-hole-fits

Включает/выключает отображение документации к допустимым совпадениям отверстий в выводе.

динамический

-fno-show-docs-of-hole-fits

-fshow-error-context

Показывать ли текстовую информацию о контексте ошибки

динамический

-fno-show-error-context

-fshow-hole-constraints

Отображать ограничения при сообщении об отверстиях с типом.

динамический

-fshow-hole-matches-of-hole-fits

Включает/выключает отображение типа дополнительных отверстий в уточняющих отверстиях.

динамический

-fno-show-hole-matches-of-hole-fits

-fshow-provenance-of-hole-fits

Включает/выключает отображение происхождения допустимых отверстий в выводе.

динамический

-fno-show-provenance-of-hole-fits

-fshow-type-app-of-hole-fits

Включает/отключает отображение применения типа для подходящих вырезов в выводе.

динамически

-fno-show-type-app-of-hole-fits

-fshow-type-app-vars-of-hole-fits

Включает/отключает отображение типов, которые принимают квантифицированные переменные в подходящем вырезе.

динамически

-fno-show-type-app-vars-of-hole-fits

-fshow-type-of-hole-fits

Включает/отключает отображение типа для подходящих вырезов в выводе.

динамически

-fno-show-type-of-hole-fits

-fsort-by-size-hole-fits

Сортировка подходящих вырезов по размеру.

динамически

-fno-sort-by-size-hole-fits

-fsort-by-subsumption-hole-fits

Сортировка подходящих вырезов по подчинению.

динамически

-fno-sort-by-subsumption-hole-fits

-funclutter-valid-hole-fits

Сжатие списка подходящих вырезов, скрывая происхождение и применения типов предложений.

динамически

-Rghc-timing

Сводка статистики времени для GHC (то же, что +RTS -tstderr).

динамически

-v

Режим подробной информации (эквивалентно -v3).

динамически

-v⟨n⟩

установка уровня подробности

динамически

5.6.2. Альтернативные режимы работы

Подробнее см. в Режимах работы

Флаг Описание Тип Обратный

--frontend ⟨module⟩

Запустить GHC с указанным плагином передней части; см. Плагины передней части для получения подробностей.

режим

--help, -?

Отобразить справку

режим

--info

отобразить информацию о компиляторе

режим

--interactive

Интерактивный режим — обычно используется, просто запустив ghci; см. Использование GHCi для получения подробностей.

режим

--make

Скомпилировать многомодульную программу Haskell, автоматически определяя зависимости. Вероятно, будет намного проще и быстрее, чем использовать make; см. Использование ghc --make для получения подробностей.

режим

--numeric-version

отобразить версию GHC (только числовую)

режим

--print-booter-version

отобразить версию компилятора загрузки

режим

--print-build-platform

отобразить платформу, на которой был построен GHC

режим

--print-c-compiler-flags

Флаги компилятора C, используемые для построения GHC

режим

--print-c-compiler-link-flags

Флаги линковщика C, используемые для построения GHC

режим

--print-debug-on

вывести, был ли GHC построен с -DDEBUG

режим

--print-global-package-db

вывести директорию глобальной базы данных пакетов GHC

режим

--print-have-interpreter

вывести, был ли GHC построен с поддержкой интерпретатора

режим

--print-have-native-code-generator

вывести, поддерживает ли целевая платформа NCG

режим

--print-host-platform

вывести хост-платформу GHC

режим

--print-ld-flags

вывести флаги линковщика, используемые для компиляции GHC

режим

--print-leading-underscore

вывести использование ведущих подчеркиваний в именах символов

режим

--print-libdir

вывести директорию библиотек GHC

режим

--print-object-splitting-supported

вывести, поддерживает ли GHC разделение объектов

режим

--print-project-git-commit-id

вывести идентификатор Git-коммита, из которого построен GHC

режим

--print-project-version

вывести версию GHC

режим

--print-rts-ways

вывести, каким способом был построен RTS

режим

--print-stage

вывести stage номер GHC

режим

--print-support-smp

вывести, был ли GHC скомпилирован с поддержкой SMP

режим

--print-tables-next-to-code

вывести, был ли GHC скомпилирован с --enable-tables-next-to-code

режим

--print-target-platform

вывести целевую платформу GHC

режим

--print-unregisterised

вывести, был ли этот GHC построен в режиме без регистрации

режим

--run ⟨file⟩

Запустить программу Haskell.

режим

--show-iface ⟨file⟩

вывести содержимое файла интерфейса.

режим

--show-options

вывести поддерживаемые параметры командной строки

режим

--supported-extensions, --supported-languages

отобразить поддерживаемые расширения языка

режим

--version, -V

вывести версию GHC

режим

-e ⟨expr⟩

Вычислить expr; см. Режим вычисления выражений для получения подробностей.

режим

-M

сгенерировать информацию о зависимостях, пригодную для использования в Makefile; см. Генерация зависимостей для получения подробностей.

режим

-shared

Создать общий объект.

режим

5.6.3. Какие фазы нужно выполнить

Подробнее см. в Режим пакетной компиляции

Флаг Описание Тип Обратный

--merge-objs

Объединить набор объектов в библиотеку GHCi.

режим

-C

Прекратить выполнение после генерации C (файл .hc)

режим

-c

Прекратить выполнение после генерации файла объекта (.o)

режим

-E

Прекратить выполнение после предварительной обработки (файл .hspp)

режим

-F

Включить использование препроцессора (устанавливается с -pgmF ⟨cmd⟩)

динамический

-S

Прекратить выполнение после генерации ассемблерного кода (файл .s)

режим

-x ⟨suffix⟩

Переопределить стандартное поведение для файлов исходного кода

динамический

5.6.4. Перенаправление вывода

Подробнее в Перенаправление вывода компиляции

Флаг Описание Тип Обратный

-dep-makefile ⟨file⟩

Использовать ⟨file⟩ в качестве файла makefile

динамический

-dep-suffix ⟨suffix⟩

Создать зависимости, объявляющие, что файлы с суффиксом .⟨suf⟩⟨osuf⟩ зависят от файлов интерфейса с суффиксом .⟨suf⟩hi

динамический

-dumpdir ⟨dir⟩

перенаправить файлы dump

динамический

-dynhisuf ⟨suffix⟩

установить суффикс для использования в файлах динамического интерфейса

динамический

-dyno ⟨file⟩

установить имя файла динамического вывода

динамический

-dynohi ⟨file⟩

установить имя файла, в который нужно поместить динамический интерфейс

динамический

-dynosuf ⟨suffix⟩

установить суффикс для файла динамического вывода

динамический

-hcsuf ⟨suffix⟩

установить суффикс для промежуточных файлов C

динамический

-hidir ⟨dir⟩

установить каталог для файлов интерфейса

динамический

-hiedir ⟨dir⟩

установить каталог для расширенных файлов интерфейса

динамический

-hiesuf ⟨suffix⟩

установить суффикс для расширенных файлов интерфейса

динамический

-hisuf ⟨suffix⟩

установить суффикс для файлов интерфейса

динамический

-o ⟨file⟩

установить имя файла вывода

динамический

-odir ⟨dir⟩

установить каталог для файлов объектов

динамический

-ohi ⟨file⟩

установить имя файла, в который нужно поместить интерфейс

динамический

-osuf ⟨suffix⟩

установить суффикс для файла вывода

динамический

-outputdir ⟨dir⟩

установить каталог вывода

динамический

-stubdir ⟨dir⟩

перенаправить файлы FFI-заглушек

динамический

5.6.5. Сохранение промежуточных файлов

Подробнее в Сохранение промежуточных файлов

Флаг Описание Тип Обратный

-keep-hc-file, -keep-hc-files

Сохранить промежуточные файлы .hc.

динамический

-keep-hi-files

Сохранить промежуточные файлы .hi (по умолчанию).

динамический

-no-keep-hi-files

-keep-hscpp-file, -keep-hscpp-files

Сохранить промежуточные файлы .hscpp.

динамический

-keep-llvm-file, -keep-llvm-files

Сохранить промежуточные файлы LLVM .ll. Подразумевает -fllvm.

динамический

-keep-o-files

Сохранить промежуточные файлы .o (по умолчанию).

динамический

-no-keep-o-files

-keep-s-file, -keep-s-files

Сохранить промежуточные файлы .s.

динамический

-keep-tmp-files

Сохранить все временные промежуточные файлы.

динамический

5.6.6. Временные файлы

Подробнее в Перенаправление временных файлов

Флаг Описание Тип Обратный

-tmpdir ⟨dir⟩

установить каталог для временных файлов

динамический

5.6.7. Поиск импортов

Подробнее в Путь поиска

Флаг Описание Тип Обратный

-i

Очистить список каталогов импортов

динамический

-i⟨dir⟩[:⟨dir⟩]*

Добавить ⟨dir⟩, ⟨dir2⟩ и т.д. в путь импорта

динамический

5.6.8. Параметры файла интерфейса

Подробнее в Дополнительные параметры, связанные с файлами интерфейса

Флаг Описание Тип Обратный

--show-iface ⟨file⟩

См. Режимы работы.

режим

-ddump-hi

Вывести новый интерфейс в стандартный вывод

динамический

-ddump-hi-diffs

Показать различия по сравнению со старым интерфейсом

динамический

-ddump-minimal-imports

Вывести минимальный набор импортов

динамический

5.6.9. Параметры расширенных файлов интерфейса

Более подробная информация в Параметры, относящиеся к расширенным файлам интерфейса

Флаг Описание Тип Обратное

-fvalidate-ide-info

Выполнить некоторые проверки на корректность расширенных файлов интерфейса

динамический

-fwrite-ide-info

Записать расширенные файлы интерфейса

динамический

5.6.10. Проверка повторной компиляции

Более подробная информация в Проверяющий повторную компиляцию

Флаг Описание Тип Обратное

-exclude-module=⟨file⟩

Рассматривать ⟨file⟩ как "стабильный"; т.е., исключить его из зависимости от него.

динамический

-fforce-recomp

Отключить проверку повторной компиляции. Это подразумевается любым -ddump-X параметром при компиляции одного файла (т.е. при использовании -c).

динамический

-fno-force-recomp

-fignore-hpc-changes

Не перекомпилировать модули только для соответствия изменениям флагов HPC. Это особенно полезно для избежания перекомпиляции при использовании GHCi, и по умолчанию включено для GHCi.

динамический

-fno-ignore-hpc-changes

-fignore-optim-changes

Не перекомпилировать модули только для соответствия изменениям флагов оптимизации. Это особенно полезно для избежания перекомпиляции при использовании GHCi, и по умолчанию включено для GHCi.

динамический

-fno-ignore-optim-changes

-include-cpp-deps

Включить зависимости препроцессора

динамический

-include-pkg-deps

Рассматривать модули, импортированные из пакетов, как нестабильные

динамический

5.6.11. Параметры интерактивного режима

Более подробная информация в Файлы .ghci и .haskeline

Флаг Описание Тип Обратное

-fbreak-on-error

Остановить выполнение при необработанных исключениях и ошибках

динамический

-fno-break-on-error

-fbreak-on-exception

Остановить выполнение при любом сгенерированном исключении

динамический

-fno-break-on-exception

-fbreak-points

Вставить точки останова в отладчике GHCi

динамический

-fno-break-points

-fghci-hist-size=⟨n⟩

Установить количество записей, которые GHCi сохраняет для :history. См. Отладчик GHCi.

динамический

-fghci-leak-check

(Только для отладки) проверка утечек памяти при загрузке новых модулей в GHCi.

динамический

-fno-ghci-leak-check

-fimplicit-import-qualified

Внести в область видимости квалифицированные идентификаторы для каждого загруженного модуля

динамический

-fno-implicit-import-qualified

-flocal-ghci-history

Использовать текущую директорию для файла истории команд GHCi .ghci-history.

динамический

-fno-local-ghci-history

-fno-it

Больше не устанавливать специальную переменную it.

динамический

-fno-no-it

-fprint-bind-result

Включить вывод результатов привязки в GHCi

динамический

-fno-print-bind-result

-fprint-evld-with-show

Инструктировать :print использовать Show экземпляры, где это возможно.

динамический

-fshow-loaded-modules

Отображать имена модулей, загруженных GHCi после команды :load.

динамический

-ghci-script

Читать дополнительные файлы .ghci

динамический

-ignore-dot-ghci

Отключить чтение файлов .ghci

динамический

-no-ignore-dot-ghci

-interactive-print ⟨name⟩

Выбрать функцию для вывода вычисленных выражений в GHCi

динамический

5.6.12. Пакеты

Более подробная информация в Пакеты

Флаг Описание Тип Обратный

-clear-package-db

Очистить стек базы данных пакетов.

динамический

-distrust ⟨pkg⟩

Открыть пакет ⟨pkg⟩ и установить его как недоверенный. См. Безопасный Haskell.

динамический

-distrust-all-packages

По умолчанию не доверять всем пакетам. См. Безопасный Haskell.

динамический

-fpackage-trust

Включить требование Безопасного Haskell доверенного пакета для надёжных модулей.

динамический

-global-package-db

Добавить глобальную базу данных пакетов в стек.

динамический

-hide-all-packages

Скрыть все пакеты по умолчанию

динамический

-hide-package ⟨pkg⟩

Скрыть пакет ⟨pkg⟩

динамический

-ignore-package ⟨pkg⟩

Проигнорировать пакет ⟨pkg⟩

динамический

-no-auto-link-packages

Не автоматически подключать базовые и rts-пакеты.

динамический

-no-global-package-db

Удалить глобальную базу данных пакетов из стека.

динамический

-no-user-package-db

Удалить пользовательскую базу данных пакетов из стека.

динамический

-package ⟨pkg⟩

Открыть пакет ⟨pkg⟩

динамический

-package-db ⟨file⟩

Добавить ⟨file⟩ в стек базы данных пакетов.

динамический

-package-env ⟨file⟩|⟨name⟩

Использовать указанную среду пакетов.

динамический

-package-id ⟨unit-id⟩

Открыть пакет по id ⟨unit-id⟩

динамический

-this-unit-id ⟨unit-id⟩

Компилировать как часть единицы (т.е. пакета) ⟨unit-id⟩

динамический

-trust ⟨pkg⟩

Открыть пакет ⟨pkg⟩ и установить его как доверенный. См. Безопасный Haskell.

динамический

-user-package-db

Добавить пользовательскую базу данных пакетов в стек.

динамический

5.6.13. Параметры языка

Параметры языка можно включить либо с помощью параметра командной строки -Xblah, либо с помощью {-# LANGUAGE blah #-} пragma в самом файле. См. Управление версиями и расширениями.

5.6.14. Предупреждения

Более подробная информация в Предупреждения и проверки корректности

Флаг Описание Тип Обратный

-fenable-th-splice-warnings

Выводить предупреждения для вставок Template Haskell

динамический

-fno-enable-th-splice-warnings

-fhelpful-errors

Предлагать исправления для неправильно написанных имён.

динамический

-fno-helpful-errors

-fmax-pmcheck-models=⟨n⟩

мягкое ограничение на количество параллельных моделей, которые проверятель соответствия шаблонов должен проверять на соответствие фрагменту шаблона

динамический

-fshow-warning-groups

показывать, к какой группе относится выведенное предупреждение.

динамический

-fno-show-warning-groups

-fvia-C

использовать генератор кода C

динамический

-W

включить стандартные предупреждения

динамический

-Wno-extra

-w

отключить все предупреждения

динамический

-Wall

включить почти все предупреждения (подробнее в Предупреждения и проверка на корректность)

динамический

-Wno-all

-Wall-missed-specialisations

выводить предупреждение, когда специализация любой перегруженной функции не удалась.

динамический

-Wno-all-missed-specialisations

-Wall-missed-specializations

псевдоним для -Wall-missed-specialisations

динамический

-Wno-all-missed-specializations

-Wambiguous-fields

выводить предупреждение об неоднозначных селекторах или обновлениях полей

динамический

-Wauto-orphans

(устарело) Не делает ничего

динамический

-Wbadly-staged-types

выводить предупреждение, когда привязка типа используется на неправильной стадии TH.

динамический

-Wno-badly-staged-types

-Wcompat

включать предупреждения о совместимости с будущими версиями (подробнее в Предупреждения и проверка на корректность)

динамический

-Wno-compat

-Wcompat-unqualified-imports

(устарело) Сообщать об импортах базовых библиотек без квалификаторов, которые, по прогнозу, вызовут проблемы совместимости в будущих выпусках.

динамический

-Wno-compat-unqualified-imports

-Wcpp-undef

выводить предупреждение об использовании директивы #if для неопределённых идентификаторов

динамический

-Wdata-kinds-tc

выводить предупреждение, когда типовой или видовой проверятель находит незаконное использование типа или вида без DataKinds

динамический

-Wno-data-kinds-tc

-Wdefault

включить флаги по умолчанию

динамический

-Wno-default

-Wdefaulted-exception-context

выводить предупреждение, когда неявный параметр Control.Exception.Context.ExceptionContext задаётся по умолчанию как Control.Exception.Context.emptyExceptionContext.

динамический

-Wnop-defaulted-exception-context

-Wdeferred-out-of-scope-variables

Сообщать о предупреждениях, когда ошибки переменных за пределами области видимости откладываются до выполнения. См. -fdefer-out-of-scope-variables.

динамический

-Wno-deferred-out-of-scope-variables

-Wdeferred-type-errors

Выводить предупреждения, когда отложенные ошибки типов включены. Этот параметр включен по умолчанию. См. -fdefer-type-errors.

динамический

-Wno-deferred-type-errors

-Wdeprecated-flags

предупреждать об использовании устаревших командных флагов

динамический

-Wno-deprecated-flags

-Wdeprecated-type-abstractions

выводить предупреждение, когда абстракции типов в шаблонах конструкторов используются без включения TypeApplications

динамический

-Wno-deprecated-type-abstractions

-Wdeprecations

выводить предупреждение об использовании функций и типов с устаревшими или предупреждающими предикатами с категорией deprecated.

динамический

-Wno-deprecations

-Wderiving-defaults

предупреждать об использовании по умолчанию вывода, когда используются DeriveAnyClass и GeneralizedNewtypeDeriving

динамический

-Wno-deriving-defaults

-Wderiving-typeable

выводить предупреждение при выводе Typeable

динамический

-Wno-deriving-typeable

-Wdodgy-exports

выводить предупреждение о сомнительных экспортах

динамический

-Wno-dodgy-exports

-Wdodgy-foreign-imports

выводить предупреждение о сомнительных внешних импортах

динамический

-Wno-dodgy-foreign-imports

-Wdodgy-imports

выводить предупреждение о сомнительных импортах

динамический

-Wno-dodgy-imports

-Wduplicate-constraints

предупреждение при дублировании ограничений в сигнатуре типа

динамическое

-Wno-duplicate-constraints

-Wduplicate-exports

предупреждение при многократной экспорте сущности

динамическое

-Wno-duplicate-exports

-Wempty-enumerations

предупреждение об пустых перечислениях

динамическое

-Wno-empty-enumerations

-Werror

сделать предупреждения фатальными

динамическое

-Wwarn

-Weverything

включить все предупреждения, поддерживаемые GHC

динамическое

-w

-Wextended-warnings

предупреждать об использовании функций и типов с прагмами WARNING или DEPRECATED во всех категориях

динамическое

-Wno-extended-warnings

-Wextra

псевдоним для -W

динамическое

-Wno-extra

-Wforall-identifier

(устаревшее) Ничего не делает

динамическое

-Wgadt-mono-local-binds

предупреждать при сопоставлении с образцом GADT без MonoLocalBinds

динамическое

-Wno-gadt-mono-local-binds

-Whi-shadowing

(устаревшее) предупреждение, когда файл .hi в текущей директории затеняет библиотеку

динамическое

-Wno-hi-shadowing

-Widentities

предупреждение об использовании числовых преобразований Prelude, которые, вероятно, являются тождественными (и, следовательно, могут быть опущены)

динамическое

-Wno-identities

-Wimplicit-kind-vars

(устаревшее) предупреждение, когда переменные типов неявно квантуются

динамическое

-Wno-implicit-kind-vars

-Wimplicit-lift

предупреждение об неявном lift в цитатах Template Haskell

динамическое

-Wno-implicit-lift

-Wimplicit-prelude

предупреждение при неявном импорте Prelude

динамическое

-Wno-implicit-prelude

-Wimplicit-rhs-quantification

предупреждение, когда переменные типа в правой части синонима типа неявно квантуются

динамическое

-Wno-implicit-rhs-quantification

-Winaccessible-code

предупреждение о недоступном коде

динамическое

-Wno-inaccessible-code

-Wincomplete-export-warnings

предупреждение, когда о некоторых, но не обо всех экспортах для имени выдаются предупреждения

динамическое

-Wno-incomplete-export-warnings

-Wincomplete-patterns

предупреждение, когда сопоставление с образцом может завершиться неудачей

динамическое

-Wno-incomplete-patterns

-Wincomplete-record-selectors

предупреждение, когда применение селектора записи может завершиться неудачей

динамическое

-Wno-incomplete-record-selectors

-Wincomplete-record-updates

предупреждение, когда обновление записи может завершиться неудачей

динамическое

-Wno-incomplete-record-updates

-Wincomplete-uni-patterns

предупреждение, когда сопоставление с образцом в лямбда-выражении, привязке по образцу или ленивом образце может завершиться неудачей

динамическое

-Wno-incomplete-uni-patterns

-Winconsistent-flags

предупреждение при несовместимости параметров командной строки.

динамическое

-Wno-inconsistent-flags

-Winferred-safe-imports

предупреждение, когда явно модуль Safe Haskell импортирует модуль Safe-Inferred

динамическое

-Wno-inferred-safe-imports

-Winline-rule-shadowing

Предупредить, если правило переписывания может не сработать, потому что функция может быть встроена до того, как правило получит шанс сработать. См. Как правила взаимодействуют с прагмами INLINE/NOINLINE.

динамическое

-Wno-inline-rule-shadowing

-Winvalid-haddock

предупреждать при наличии комментария Haddock в недопустимом положении

динамическое

-Wno-invalid-haddock

-Wloopy-superclass-solve

(устаревшее) предупреждать при создании потенциально циклических доказательств суперклассовых ограничений

динамическое

-Wno-loopy-superclass-solve

-Wmisplaced-pragmas

предупреждать об использовании прагм заголовков файлов в теле модуля

динамическое

-Wno-misplaced-pragmas

-Wmissed-extra-shared-lib

Предупредить, когда GHCi не может загрузить общую библиотеку.

динамическое

-Wno-missed-extra-shared-lib

-Wmissed-specialisations

предупреждать, когда специализация импортированной перегруженной функции терпит неудачу.

динамическое

-Wmissed-specialisations

-Wmissed-specializations

псевдоним для -Wmissed-specialisations

динамическое

-Wno-missed-specializations

-Wmissing-deriving-strategies

предупреждать при использовании производных без указания стратегии производных

динамическое

-Wno-missing-deriving-strategies

-Wmissing-export-lists

предупреждение, если в объявлении модуля не указан явным образом список всех экспортов

динамический

-Wno-missing-export-lists

-Wmissing-exported-pattern-synonym-signatures

предупреждение о синонимах шаблонов без сигнатур, только если они экспортированы

динамический

-Wno-missing-exported-pattern-synonym-signatures

-Wmissing-exported-signatures

предупреждение о функциях верхнего уровня без сигнатур, только если они экспортированы

динамический

-Wno-missing-exported-signatures

-Wmissing-exported-sigs

(устарело) предупреждение о функциях верхнего уровня без сигнатур, только если они экспортированы. имеет приоритет над -Wmissing-signatures

динамический

-Wno-missing-exported-sigs

-Wmissing-fields

предупреждение, если поля записи не инициализированы

динамический

-Wno-missing-fields

-Wmissing-home-modules

предупреждение при обнаружении импортированного домашнего модуля, но не указанного в командной строке. Полезно для cabal, чтобы убедиться, что GHC не возьмёт модули, не указанные ни в exposed-modules, ни в other-modules.

динамический

-Wno-missing-home-modules

-Wmissing-import-lists

предупреждение, если в объявлении импорта не указан явным образом список всех имён, вносимых в область видимости

динамический

-Wno-missing-import-lists

-Wmissing-kind-signatures

предупреждение, если объявления типов не имеют сигнатур типов или CUSK

динамический

-Wno-missing-kind-signatures

-Wmissing-local-signatures

предупреждение о полиморфных локальных связываниях без сигнатур

динамический

-Wno-missing-local-signatures

-Wmissing-local-sigs

(устарело) предупреждение о полиморфных локальных связываниях без сигнатур

динамический

-Wno-missing-local-sigs

-Wmissing-methods

предупреждение, если методы класса не определены

динамический

-Wno-missing-methods

-Wmissing-monadfail-instances

(устарело) Предупреждение, если в блоке do используется неудачный шаблон, у которого нет экземпляра MonadFail.

динамический

-Wno-missing-monadfail-instances

-Wmissing-pattern-synonym-signatures

предупреждение, если синонимы шаблонов не имеют сигнатур типов

динамический

-Wno-missing-pattern-synonym-signatures

-Wmissing-poly-kind-signatures

предупреждение, если выведенное поликиндное тип или объявление класса не имеют сигнатур типов или CUSK

динамический

-Wno-missing-poly-kind-signatures

-Wmissing-role-annotations

предупреждение, если объявления типов не имеют аннотаций ролей

динамический

-Wno-role-annotations-signatures

-Wmissing-safe-haskell-mode

предупреждение, если режим Safe Haskell не указан явно.

динамический

-Wno-missing-safe-haskell-mode

-Wmissing-signatures

предупреждение о функциях верхнего уровня без сигнатур

динамический

-Wno-missing-signatures

-Wmissing-space-after-bang

(устарело) Не делает ничего

динамический

-Wmonomorphism-restriction

предупреждение, если применено ограничение мономорфизма

динамический

-Wno-monomorphism-restriction

-Wname-shadowing

предупреждение о скрытии имён

динамический

-Wno-name-shadowing

-Wnoncanonical-monad-instances

предупреждение, если экземпляры Applicative или Monad имеют неканонические определения return, pure, (>>), или (*>). Для получения более подробной информации см. описание флага в Предупреждения и проверка на корректность.

динамический

-Wno-noncanonical-monad-instances

-Wnoncanonical-monadfail-instances

(устарело) Предупреждение, если экземпляры Monad или MonadFail имеют неканонические определения fail.

динамический

-Wno-noncanonical-monadfail-instances

-Wnoncanonical-monoid-instances

предупреждение, если экземпляры Semigroup или Monoid имеют неканонические определения (<>) или mappend. Для получения более подробной информации см. описание флага в Предупреждения и проверка на корректность.

динамический

-Wno-noncanonical-monoid-instances

-Wnot

(устарело) Псевдоним для -w

динамический

-Woperator-whitespace

предупреждение при использовании префикса, суффикса и тесных инфиксных операторов

динамический

-Wno-operator-whitespace

-Woperator-whitespace-ext-conflict

предупреждение при использовании инфиксных операторов, которые были бы обработаны по-другому, если бы было включено определённое расширение GHC

динамический

-Wno-operator-whitespace-ext-conflict

-Worphans

предупреждение, если модуль содержит дополнительные объявления экземпляров или правила переработки

динамический

-Wno-orphans

-Woverflowed-literals

предупреждение о литералах, которые переполнят свой тип

динамический

-Wno-overflowed-literals

-Woverlapping-patterns

предупреждение о перекрывающихся шаблонах

динамический

-Wno-overlapping-patterns

-Wpartial-fields

предупреждение при определении частичного поля записи.

динамический

-Wno-partial-fields

-Wpartial-type-signatures

предупреждение о пробелах в частичных сигнатурах типов, когда PartialTypeSignatures включен. Не применимо, когда PartialTypeSignatures не включен, в этом случае такие пробелы вызывают ошибки.

динамический

-Wno-partial-type-signatures

-Wprepositive-qualified-module

Отчёт о импортах с «квалифицированным» префиксом.

динамический

-Wno-prepositive-qualified-module

-Wredundant-bang-patterns

Предупреждение о избыточных шаблонах с восклицательными знаками.

динамический

-Wno-redundant-bang-patterns

-Wredundant-constraints

Предупреждать компилятор об избыточных ограничениях в сигнатурах типов.

динамический

-Wno-redundant-constraints

-Wredundant-record-wildcards

Предупреждать об использовании шаблонов-диких карт записей, когда дикая карта не связывает никаких шаблонов.

динамический

-Wno-redundant-record-wildcards

-Wredundant-strictness-flags

Предупреждать об избыточных флагах строгости.

динамический

-Wno-redundant-strictness-flags

-Wsafe

предупреждать, если компилируемый модуль считается безопасным.

динамический

-Wno-safe

-Wsemigroup

(устарело) Предупреждение, когда Monoid не является Semigroup, и о не-Semigroup определениях (<>)

динамический

-Wno-semigroup

-Wsimplifiable-class-constraints

Предупреждать о ограничениях класса в сигнатуре типа, которые могут быть упрощены с помощью объявления экземпляра на верхнем уровне.

динамический

-Wno-simplifiable-class-constraints

-Wstar-binder

предупреждение о связывании оператора типа (*) , несмотря на StarIsType

динамический

-Wno-star-binder

-Wstar-is-type

предупреждение, когда * используется для обозначения Data.Kind.Type

динамический

-Wno-star-is-type

-Wtabs

предупреждение, если в исходном файле есть символы табуляции

динамический

-Wno-tabs

-Wterm-variable-capture

предупреждение, когда неявная квантифицированная переменная типа захватывает имя термина

динамический

-Wtrustworthy-safe

предупреждение, если модуль, который компилируется, помечен как Trustworthy, но вместо этого он мог бы быть помечен как Safe, более информативное ограничение.

динамический

-Wno-safe

-Wtype-defaults

предупреждение при использовании по умолчанию

динамический

-Wno-type-defaults

-Wtype-equality-out-of-scope

предупреждение, когда используется равенство типов a ~ b, хотя оно вне области видимости

динамический

-Wno-type-equality-out-of-scope

-Wtype-equality-requires-operators

предупреждение, когда используется равенство типов a ~ b, хотя оно вне области видимости

динамический

-Wno-type-equality-requires-operators

-Wtyped-holes

Вывод предупреждений, когда ошибка типизированной дырки откладывается до выполнения. См. -fdefer-typed-holes.

динамический

-Wno-typed-holes

-Wunbanged-strict-patterns

предупреждение о привязке шаблона неподнятой переменной, которая не является ни голой, ни отмеченной восклицательным знаком

динамический

-Wno-unbanged-strict-patterns

-Wunicode-bidirectional-format-characters

предупреждение об использовании символов Unicode, управляющих двунаправленным отображением

динамический

-Wunrecognised-pragmas

выводить предупреждение при использовании директив, которые GHC не распознает

динамический

-Wno-unrecognised-pragmas

-Wunrecognised-warning-flags

вывод предупреждения при обнаружении нераспознанного -W... флага в командной строке.

динамический

-Wno-unrecognised-warning-flags

-Wunsafe

предупреждать, если компилируемый модуль считается небезопасным. См. Safe Haskell

динамический

-Wno-unsafe

-Wunsupported-calling-conventions

предупреждение об использовании неподдерживаемой конвенции вызова

динамический

-Wno-unsupported-calling-conventions

-Wunsupported-llvm-version

Выводить предупреждение при использовании -fllvm с недопустимой версией LLVM.

динамический

-Wno-unsupported-llvm-version

-Wunticked-promoted-constructors

предупреждение, если продвинутые конструкторы не помечены

динамический

-Wno-unticked-promoted-constructors

-Wunused-binds

предупреждение о связях, которые не используются. Псевдоним для -Wunused-top-binds, -Wunused-local-binds и -Wunused-pattern-binds

динамический

-Wno-unused-binds

-Wunused-do-bind

предупреждение о связях do, которые, по-видимому, отбрасывают значения типов, отличных от ()

динамический

-Wno-unused-do-bind

-Wunused-foralls

предупреждение о переменных типа в пользовательских forall которые не используются

динамический

-Wno-unused-foralls

-Wunused-imports

предупреждение об ненужных импортах

динамический

-Wno-unused-imports

-Wunused-local-binds

предупреждение о локальных связях, которые не используются

динамический

-Wno-unused-local-binds

-Wunused-matches

предупреждение о переменных в шаблонах, которые не используются

динамический

-Wno-unused-matches

-Wunused-packages

предупреждение, если пакет запрашивается в командной строке, но не нужен.

динамический

-Wno-unused-packages

-Wunused-pattern-binds

предупреждение о связях в соответствии с шаблоном, которые не используются

динамический

-Wno-unused-pattern-binds

-Wunused-record-wildcards

Предупреждение о совпадениях с дикими картами записей, когда ни одна из связанных переменных не используется.

динамический

-Wno-unused-record-wildcards

-Wunused-top-binds

предупреждение о связях верхнего уровня, которые не используются

динамический

-Wno-unused-top-binds

-Wunused-type-patterns

предупреждение об отсутствии использования переменных типа, которые возникают из шаблонов в экземплярах семейств типов и семейств данных

динамический

-Wno-unused-type-patterns

-Wview-pattern-signatures

предупреждение, когда шаблон представления используется с сигнатурой типа без явных скобок

динамический

-Wno-view-pattern-signatures

-Wwarn

сделать предупреждения не фатальными

динамический

-Werror

-Wwarnings-deprecations

выдавать предупреждения об использовании функций и типов, имеющих устаревшие прагмы или прагмы ПРЕДУПРЕЖДЕНИЯ с категорией deprecated. Псевдоним для -Wdeprecations.

динамический

-Wno-warnings-deprecations

-Wwrong-do-bind

предупреждение о связях do, которые, по-видимому, отбрасывают монадические значения, которые вы должны были бы связать вместо этого

динамический

-Wno-wrong-do-bind

-Wx-⟨category⟩

предупреждение об использовании функций и типов, имеющих прагмы ПРЕДУПРЕЖДЕНИЯ с данной категорией

динамический

-Wno-x-⟨category⟩

5.6.15. Уровни оптимизации

Эти параметры более подробно описаны в Оптимизация (улучшение кода).

См. Отдельные оптимизации для списка оптимизаций, включенных на уровнях 1 и 2.

Флаг Описание Тип Обратный

-O, -O1

Включить оптимизации уровня 1

динамический

-O0

-O0

Отключить оптимизации (по умолчанию)

динамический

-O2

Включить оптимизации уровня 2

динамический

-O0

-O⟨n⟩

Любое -On, где n > 2, эквивалентно -O2.

динамический

-O0

5.6.16. Индивидуальные оптимизации

Эти параметры более подробно описаны в -f*: независимые от платформы флаги. Если флаг подразумевается -O тогда он подразумевается и -O2 (если в описании флага не указано иное). Если флаг подразумевается -O0 только тогда флаг не подразумевается -O и -O2.

Флаг Описание Тип Обратное значение

-fasm-shortcutting

Включить сокращение в ассемблере. Подразумевается флагом -O2.

динамический

-fno-asm-shortcutting

-fbinary-blob-threshold=⟨n⟩

по умолчанию: 500Кб. Настройка генератора ассемблера для двоичных блоков.

динамический

-fblock-layout-cfg

Использовать новый алгоритм компоновки блоков на основе cfg. Подразумевается флагом -O.

динамический

-fno-block-layout-cfg

-fblock-layout-weightless

Игнорировать веса cfg для компоновки кода.

динамический

-fno-block-layout-weightless

-fblock-layout-weights

Устанавливает веса рёбер, используемые новым алгоритмом компоновки кода.

динамический

-fcall-arity

Включить оптимизацию арности вызова. Подразумевается флагом -O.

динамический

-fno-call-arity

-fcase-folding

Включить свертку констант в выражениях case. Подразумевается флагом -O.

динамический

-fno-case-folding

-fcase-merge

Включить слияние case. Подразумевается флагом -O.

динамический

-fno-case-merge

-fcmm-control-flow

Включить оптимизацию потока управления в бекенде Cmm. Подразумевается флагом -O.

динамический

-fno-cmm-control-flow

-fcmm-elim-common-blocks

Включить удаление общих блоков в Cmm. Подразумевается флагом -O.

динамический

-fno-cmm-elim-common-blocks

-fcmm-sink

Включить погружение (sinking) в Cmm. Подразумевается флагом -O.

динамический

-fno-cmm-sink

-fcmm-static-pred

Включить предсказание статического потока управления. Подразумевается флагом -O.

динамический

-fno-cmm-static-pred

-fcore-constant-folding

Включить свертку констант в Core. Подразумевается флагом -O.

динамический

-fno-core-constant-folding

-fcpr-anal

Включить анализ результата построенного продукта. Подразумевается флагом -O.

динамический

-fno-cpr-anal

-fcross-module-specialise

Включить специализацию перегруженных функций, импортированных из других модулей. Подразумевается флагом -O.

динамический

-fno-cross-module-specialise

-fcse

Включить удаление общих подвыражений. Подразумевается флагом -O.

динамический

-fno-cse

-fdicts-cheap

Сделать выражения со словарями кажущимися оптимизатору дешёвыми.

динамический

-fno-dicts-cheap

-fdicts-strict

Сделать словари строгими. Подразумевается флагом -O2.

динамический

-fno-dicts-strict

-fdmd-tx-dict-sel

(устарело) Использовать специальный преобразователь требований для селекторов словарей.

динамический

-fno-dmd-tx-dict-sel

-fdmd-unbox-width=⟨n⟩

по умолчанию: 3. Анализ boxity предполагает, что возвращаемые записи с таким количеством полей могут быть unboxed.

динамический

-fdo-clever-arg-eta-expansion

Включить сложную оптимизацию eta-расширения аргументов. Подразумевается флагом -O2.

динамический

-fno-do-clever-arg-eta-expansion

-fdo-eta-reduction

Включить eta-сведение. Включено по умолчанию.

динамический

-fno-do-eta-reduction

-fdo-lambda-eta-expansion

Включить eta-расширение лямбда-выражений. Включено по умолчанию.

динамический

-fno-do-lambda-eta-expansion

-feager-blackholing

Включить жадное blackholing

динамический

-fenable-rewrite-rules

Включить все правила переписывания (включая правила, сгенерированные автоматической специализацией перегруженных функций). Подразумевается флагом -O.

динамический

-fno-enable-rewrite-rules

-fexcess-precision

Включить избыточную промежуточную точность

динамический

-fno-excess-precision

-fexitification

Включает оптимизацию exitification. Подразумевается флагом -O.

динамический

-fno-exitification

-fexpose-all-unfoldings

Раскрывать все разворачивания, даже для очень больших или рекурсивных функций.

динамический

-fno-expose-all-unfoldings

-fexpose-overloaded-unfoldings

Раскрывать разворачивания с ограничениями, даже для очень больших или рекурсивных функций.

динамический

-fno-expose-overloaded-unfoldings

-ffloat-in

Включить преобразование float-in. Подразумевается -O.

динамический

-fno-float-in

-ffull-laziness

Включить полную леность (плавающие связи наружу). Подразумевается -O.

динамический

-fno-full-laziness

-ffun-to-thunk

(устарело) заменено на -ffull-laziness.

динамический

-fno-fun-to-thunk

-fignore-asserts

Игнорировать утверждения в исходном коде. Подразумевается -O.

динамический

-fno-ignore-asserts

-fignore-interface-pragmas

Игнорировать директивы в интерфейсных файлах. Подразумевается только -O0.

динамический

-fno-ignore-interface-pragmas

-finline-generics

Добавлять аннотации INLINE[1] к методам производных экземпляров Generic и Generic1 на основе эвристик. Подразумевается -O.

динамический

-fno-inline-generics

-finline-generics-aggressively

Добавлять аннотации INLINE[1] к методам всех производных экземпляров Generic и Generic1.

динамический

-fno-inline-generics-aggressively

-fkeep-auto-rules

Сохранять все правила «auto», сгенерированные специализацией

динамический

-fno-keep-auto-rules

-flate-dmd-anal

Заново выполнить анализ потребностей в конце конвейера упрощений

динамический

-fno-late-dmd-anal

-flate-specialise

Выполнить позднюю специализацию

динамический

-fno-late-specialise

-fliberate-case

Включить преобразование liberate-case. Подразумевается -O2.

динамический

-fno-liberate-case

-fliberate-case-threshold=⟨n⟩

по умолчанию: 2000. Установить порог размера для преобразования liberate-case на ⟨n⟩

динамический

-fno-liberate-case-threshold

-fllvm-pass-vectors-in-regs

(устарело) Ничего не делает

динамический

-flocal-float-out

Включить локальное вынесение определений за пределы let-связей.

динамический

-fno-local-float-out

-flocal-float-out-top-level

Включить вынесение локальных связей за пределы глобальных связей

динамический

-fno-local-float-out-top-level

-floopification

Преобразовать насыщенные рекурсивные хвостовые вызовы в локальные переходы в сгенерированном ассемблере. Подразумевается -O.

динамический

-fno-loopification

-fmax-forced-spec-args=⟨n⟩

по умолчанию: 333. Максимальное количество аргументов значения для принудительных специализаций SpecConstr.

динамический

-fmax-inline-alloc-size=⟨n⟩

по умолчанию: 128. Установить максимальный размер встраиваемых выделений массива в ⟨n⟩ байт (по умолчанию: 128).

динамический

-fmax-inline-memcpy-insns=⟨n⟩

по умолчанию: 32. Встраивать вызовы memcpy если они сгенерируют не более ⟨n⟩ псевдоинструкций.

динамический

-fmax-inline-memset-insns=⟨n⟩

по умолчанию: 32. Встраивать вызовы memset если они сгенерируют не более ⟨n⟩ псевдоинструкций

динамический

-fmax-simplifier-iterations=⟨n⟩

по умолчанию: 4. Установить максимальное количество итераций упростителя.

динамический

-fmax-uncovered-patterns=⟨n⟩

по умолчанию: 4. Установить максимальное количество шаблонов для отображения предупреждений о неполных шаблонах.

динамический

-fmax-worker-args=⟨n⟩

по умолчанию: 10. Максимальное количество аргументов значения для исполнителя.

динамический

-fno-opt-coercion

Отключить оптимизатор приведения типов

динамический

-fno-pre-inlining

Отключить предварительное встраивание

динамический

-fno-state-hack

Отключить хак состояния, в результате которого любая лямбда с маркером состояния реального мира в качестве аргумента считается однократной. Следовательно, можно встраивать вещи внутри неё.

динамический

-fobject-determinism

Создать полностью детерминированный объектный код

динамический

-fno-object-determinism

-fomit-interface-pragmas

Не генерировать интерфейсные директивы. Подразумевается только -O0.

динамический

-fno-omit-interface-pragmas

-fomit-yields

Опустить проверки кучи, когда не выполняется выделение памяти.

динамический

-fno-omit-yields

-foptimal-applicative-do

Использовать более медленный, но лучший алгоритм для ApplicativeDo

динамический

-fno-optimal-applicative-do

-fpedantic-bottoms

Заставить GHC быть более точным в отношении обработки нижних границ (но см. также -fno-state-hack). В частности, GHC не будет выполнять eta-расширение через выражение case.

динамический

-fno-pedantic-bottoms

-fpolymorphic-specialisation

Разрешить специализацию для абстрагирования по свободным переменным типа

динамический

-fno-polymorphic-specialisation

-fregs-graph

Использовать алгоритм распределения регистров с раскраской графов для распределения регистров в генераторе кода нативного кода.

динамический

-fno-regs-graph

-fregs-iterative

Использовать итеративный алгоритм распределения регистров с раскраской графов в генераторе кода нативного кода.

динамический

-fno-regs-iterative

-fsimpl-tick-factor=⟨n⟩

значение по умолчанию: 100. Установите процентный коэффициент для тиков упростителя.

динамический

-fsimplifier-phases=⟨n⟩

значение по умолчанию: 2. Установите количество фаз для упростителя. Игнорируется с -O0.

динамический

-fsolve-constant-dicts

При решении ограничений попробуйте немедленно решить суперклассы, используя доступные словари. Подразумевается -O.

динамический

-fno-solve-constant-dicts

-fspec-constr

Включить преобразование SpecConstr. Подразумевается -O2.

динамический

-fno-spec-constr

-fspec-constr-count=⟨n⟩

значение по умолчанию: 3.* Установите значение ⟨n⟩ — максимальное количество специализаций, которое будет создано для любой одной функции преобразованием SpecConstr.

динамический

-fno-spec-constr-count

-fspec-constr-keen

Специализировать вызов с явным аргументом конструктора, даже если этот аргумент не проверяется в теле функции

динамический

-fno-spec-constr-keen

-fspec-constr-threshold=⟨n⟩

значение по умолчанию: 2000. Установите пороговое значение размера для преобразования SpecConstr в ⟨n⟩.

динамический

-fno-spec-constr-threshold

-fspecialise

Включить специализацию перегруженных функций. Подразумевается -O.

динамический

-fno-specialise

-fspecialise-aggressively

Включить специализацию перегруженных функций независимо от размера, если доступно раскрытие

динамический

-fno-specialise-aggressively

-fspecialise-incoherents

Включить специализацию на несогласованных экземплярах

динамический

-fno-specialise-incoherents

-fstatic-argument-transformation

Включить преобразование статических аргументов.

динамический

-fno-static-argument-transformation

-fstg-cse

Включить устранение общих подвыражений в промежуточном языке STG. Подразумевается -O.

динамический

-fno-stg-cse

-fstg-lift-lams

Включить позднее поднятие лямбда-выражений в промежуточном языке STG. Подразумевается -O2.

динамический

-fno-stg-lift-lams

-fstg-lift-lams-known

Разрешить преобразование известных вызовов в неизвестные при выполнении позднего поднятия лямбда-выражений.

динамический

-fno-stg-lift-lams-known

-fstg-lift-lams-non-rec-args

Создавать функции верхнего уровня без рекурсии с не более чем <n> параметрами при выполнении позднего поднятия лямбда-выражений.

динамический

-fstg-lift-lams-non-rec-args-any

-fstg-lift-lams-rec-args

Создавать функции верхнего уровня с рекурсией с не более чем <n> параметрами при выполнении позднего поднятия лямбда-выражений.

динамический

-fstg-lift-lams-rec-args-any

-fstrictness

Включить анализ запроса. Подразумевается -O. Подразумевает -fworker-wrapper

динамический

-fno-strictness

-fstrictness-before=⟨n⟩

Выполнить дополнительный анализ запроса перед фазой упростителя ⟨n⟩

динамический

-funbox-small-strict-fields

Распаковать строгие поля конструкторов с представлением размером указателя. Подразумевается -O.

динамический

-fno-unbox-small-strict-fields

-funbox-strict-fields

Распаковать строгие поля конструкторов

динамический

-fno-unbox-strict-fields

-funfolding-case-scaling=⟨n⟩

значение по умолчанию: 30. Применить штраф (стоимость_включения * 1/n) за каждый уровень вложенности case.

динамический

-funfolding-case-threshold=⟨n⟩

значение по умолчанию: 2. Уменьшить инлайнинг для случаев, вложенных глубже, чем n.

динамический

-funfolding-creation-threshold=⟨n⟩

значение по умолчанию: 750. Настройка параметров раскрытия.

динамический

-funfolding-dict-discount=⟨n⟩

значение по умолчанию: 30. Настройка параметров раскрытия.

динамический

-funfolding-fun-discount=⟨n⟩

Значение по умолчанию: 60. Настройка параметров раскрытия.

динамический

-funfolding-keeness-factor=⟨n⟩

Этот параметр устарел в GHC 9.0.1.

динамический

-funfolding-use-threshold=⟨n⟩

Значение по умолчанию: 90. Настройка параметров раскрытия.

динамический

-fworker-wrapper

Включить преобразование worker/wrapper. Подразумевается -O и -fstrictness.

динамический

-fworker-wrapper-cbv

Включить разделение w/w для обёрток, единственная цель которых — вычисление аргументов.

динамический

-fwrite-if-compression=⟨n⟩

Значение по умолчанию: 2. Настройка уровня сжатия файлов интерфейса.

динамический

5.6.17. Параметры профилирования

Более подробная информация в Профилирование

Флаг Описание Тип Обратный

-auto

(устарел) Псевдоним для -fprof-auto-exported

динамический

-auto-all

(устарел) Псевдоним для -fprof-auto

динамический

-caf-all

(устарел) Псевдоним для -fprof-cafs

динамический

-fno-prof-count-entries

Не собирать счётчики входов.

динамический

-fprof-count-entries

-fprof-auto

Автоматически добавлять SCC ко всем привязкам, не помеченным как INLINE

динамический

-fno-prof-auto

-fprof-auto-calls

Автоматически добавлять SCC ко всем точкам вызова

динамический

-fno-prof-auto

-fprof-auto-exported

Автоматически добавлять SCC ко всем экспортируемым привязкам, не помеченным INLINE

динамический

-fno-prof-auto

-fprof-auto-top

Автоматически добавлять SCC ко всем привязкам верхнего уровня, не помеченным как INLINE

динамический

-fno-prof-auto

-fprof-cafs

Автоматически добавлять SCC ко всем CAF

динамический

-fno-prof-cafs

-fprof-callers=⟨name⟩

Автоматически добавлять SCC ко всем точкам вызова именованной функции.

динамический

-fprof-late

Автоматически добавлять SCC ко всем привязкам верхнего уровня после выполнения конвейера ядра.

динамический

-fno-prof-late

-fprof-late-inline

Автоматически добавлять SCC ко всем привязкам верхнего уровня после выполнения оптимизатора и сохранять их при встраивании.

динамический

-fno-prof-late-inline

-fprof-late-overloaded

Автоматически добавлять SCC ко всем перегруженным привязкам верхнего уровня после выполнения конвейера ядра.

динамический

-fno-prof-late-overloaded

-fprof-late-overloaded-calls

Автоматически добавлять SCC ко всем точкам вызова, которые включают аргументы словаря после выполнения конвейера ядра.

динамический

-fno-prof-late-overloaded-calls

-fprof-manual

Обработать аннотации SCC вручную.

динамический

-fno-prof-manual

-no-auto

(устарел) Псевдоним для -fno-prof-auto

динамический

-no-auto-all

(устарел) Псевдоним для -fno-prof-auto

динамический

-no-caf-all

(устарел) Псевдоним для -fno-prof-cafs

динамический

-prof

Включить профилирование

динамический

-ticky

Включить профилирование ticky-ticky

динамический

-ticky-allocd

Отслеживать количество раз, когда каждый тип замыкания выделяется.

динамический

-ticky-ap-thunk

Не использовать стандартные AP-замыкания для получения более надёжных счётчиков входов.

динамический

-ticky-dyn-thunk

Отслеживать выделение динамических замыканий

динамический

-ticky-LNE

Обрабатывать связующие точки соединения аналогично замыканиям/функциям.

динамический

-ticky-tag-checks

Выдавать фиктивные счётчики ticky для записи количества проверок вывода тегов, которые были предотвращены выводом тегов.

динамический

5.6.18. Параметры покрытия программы

Более подробная информация в Наблюдение за покрытием кода

Флаг Описание Тип Обратный

-fhpc

Включить инструментарий покрытия программы Haskell

динамический

-hpcdir⟨dir⟩

Установить каталог, где GHC размещает файлы .mix.

динамический

5.6.19. Параметры препроцессора C

Подробнее в Параметры, влияющие на работу препроцессора C

Флаг Описание Тип Обратное значение

-cpp

Запустить препроцессор C для файлов исходного кода Haskell

динамический

-D⟨symbol⟩[=⟨value⟩]

Определить символ в препроцессоре C

динамический

-U⟨symbol⟩

-I⟨dir⟩

Добавить ⟨dir⟩ в список каталогов поиска для файлов #include

динамический

-U⟨symbol⟩

Удалить определение символа в препроцессоре C

динамический

5.6.20. Параметры генерации кода

Подробнее в Параметры, влияющие на генерацию кода

Флаг Описание Тип Обратное значение

-dynamic-too

Сгенерировать динамические объектные файлы наряду со статическими объектные файлы во время компиляции

динамический

-fasm

Использовать генератор родного кода

динамический

-fllvm

-fbyte-code

Сгенерировать байткод

динамический

-fbyte-code-and-object-code

Сгенерировать объектный код и байткод

динамический

-fexpose-internal-symbols

Создать символы для всех функций, включая внутренние функции.

динамический

-fexternal-dynamic-refs

Сгенерировать код для работы с динамическими библиотеками

динамический

-fllvm

Компилировать с помощью генератора кода LLVM

динамический

-fasm

-fno-code

Исключить генерацию кода

динамический

-fobject-code

Сгенерировать объектный код

динамический

-fPIC

Сгенерировать позиционно-независимый код (где это возможно)

динамический

-fPIE

Сгенерировать код для позиционно-независимого исполняемого файла (где это возможно)

динамический

-fprefer-byte-code

Использовать байткод, если он доступен, для вычисления вставок TH.

динамический

-fwrite-if-simplified-core

Записать файл интерфейса, содержащий упрощенный ядро модуля.

динамический

-fwrite-interface

Всегда записывать файлы интерфейса

динамический

5.6.21. Параметры подключения

Подробнее в Параметры, влияющие на подключение

Флаг Описание Тип Обратное

-c

Остановка после генерации файла объекта (.o)

режим

-debug

Использование отладочной среды выполнения

динамический

-dylib-install-name ⟨path⟩

Установка имени (через -install_name, переданного линковщику Apple), указание полного пути установки файла библиотеки. Любые библиотеки или исполняемые файлы, которые позже связываются с ним, будут использовать этот путь в качестве места поиска во время выполнения. (Только Darwin/OS X)

динамический

-dynamic

Сборка динамически подключаемых файлов объектов и исполняемых файлов

динамический

-dynload

Выбирает один из нескольких режимов поиска общих библиотек во время выполнения.

динамический

-eventlog

Включение отслеживания событий во время выполнения

динамический

-fcompact-unwind

Инструктирование линковщика о создании раздела __compact_unwind.

динамический

-fkeep-cafs

Отказ от сбора мусора CAFs (выражения верхнего уровня) во время выполнения

динамический

-flink-rts

Подключение среды выполнения при генерации общей или статической библиотеки

динамический

-fno-embed-manifest

Не встраивать манифест в исполняемый файл (только Windows)

динамический

-fno-gen-manifest

Не генерировать файл манифеста (только Windows)

динамический

-fno-shared-implib

Не генерировать библиотеку импорта для DLL (только Windows)

динамический

-framework ⟨name⟩

Только для Darwin/OS X/iOS, подключение фреймворка ⟨name⟩. Этот параметр соответствует параметру -framework для линковщика Apple.

динамический

-framework-path ⟨dir⟩

Только для Darwin/OS X/iOS, добавление ⟨dir⟩ в список каталогов, просматриваемых для фреймворков. Этот параметр соответствует параметру -F для линковщика Apple.

динамический

-fsplit-sections, -split-sections

Разделение секций для удаления неиспользуемого кода во время компоновки

динамический

-fno-split-sections

-fuse-rpaths

Установка rpath на основе флагов -L

динамический

-fwhole-archive-hs-libs

При компоновке исполняемого файла вставляет флаг -Wl,--whole-archive перед любыми флагами -l для библиотек Haskell, а -Wl,--no-whole-archive после

динамический

-L ⟨dir⟩

Добавить ⟨dir⟩ в список каталогов, которые просматриваются для поиска библиотек

динамический

-l ⟨lib⟩

Подключение библиотеки ⟨lib⟩

динамический

-main-is ⟨thing⟩

Установление главного модуля и функции

динамический

-no-hs-main

Не предполагать, что эта программа содержит main

динамический

-no-pie

Не инструктировать линковщик о создании позиционно-независимого исполняемого файла.

динамический

-pie

-no-rtsopts-suggestions

Не выводить предложения RTS по подключению с -rtsopts[=⟨none|some|all|ignore|ignoreAll⟩].

динамический

-package ⟨name⟩

Выставление пакета ⟨pkg⟩

динамический

-pie

Инструктирование линковщика о создании позиционно-независимого исполняемого файла.

динамический

-no-pie

-rdynamic

Инструктирует линковщик добавить все символы, а не только используемые, в таблицу динамических символов. В настоящее время поддерживается только Linux и Windows/MinGW32. Это эквивалентно использованию -optl -rdynamic на Linux и -optl -export-all-symbols на Windows.

динамический

-rtsopts[=⟨none|some|all|ignore|ignoreAll⟩]

Управление возможностью настройки поведения среды выполнения через командные флаго и переменную среды GHCRTS. Использование none означает, что флаги среды выполнения не могут быть заданы; some означает, что могут быть заданы только минимальные безопасные параметры (по умолчанию, если -rtsopts не передано); all означает, что разрешены все флаги среды выполнения (по умолчанию, если -rtsopts передано без аргументов); ignore означает, что могут быть заданы флаги среды выполнения, но они обрабатываются как обычные аргументы и передаются Haskell-программе как аргументы; ignoreAll такое же, как ignore, но GHCRTS также игнорируется. -rtsopts не влияет на поведение -with-rtsopts; флаги, переданные через -with-rtsopts, используются независимо от -rtsopts.

динамический

-shared

Генерация общей библиотеки (в отличие от исполняемого файла)

динамический

-single-threaded

Использование однопоточной среды выполнения

динамический

-threaded

-static

Использование статических библиотек Haskell

динамический

-staticlib

Генерация автономной статической библиотеки (в отличие от исполняемого файла). Это полезно при кросс-компиляции. Библиотека вместе со всеми ее зависимостями находится в одной статической библиотеке, к которой можно обратиться.

динамический

-threaded

Использование многопоточной среды выполнения

динамический

-single-threaded

-with-rtsopts=⟨opts⟩

Установление параметров среды выполнения по умолчанию в ⟨opts⟩.

динамический

5.6.22. Параметры плагинов

Более подробная информация в Плагины компилятора

Флаг Описание Тип Обратное

-fclear-plugins

Очистить список активных плагинов

динамический

-fplugin-library=⟨file-path⟩;⟨unit-id⟩;⟨module⟩;⟨args⟩

Загрузить предварительно скомпилированный статический плагин из внешней библиотеки

динамический

-fplugin-opt=⟨module⟩:⟨args⟩

Передать аргументы модулю плагина; модуль должен быть указан с помощью -fplugin=⟨module⟩

динамический

-fplugin-trustworthy

Доверять используемым плагинам и больше не отмечать скомпилированный модуль как небезопасный

динамический

-fplugin=⟨module⟩

Загрузить плагин, экспортированный данным модулем

динамический

-hide-all-plugin-packages

Скрыть все пакеты плагинов по умолчанию

динамический

-plugin-package ⟨pkg⟩

Открыть ⟨pkg⟩ для плагинов

динамический

-plugin-package-id ⟨pkg-id⟩

Открыть ⟨pkg-id⟩ для плагинов

динамический

5.6.23. Замена фаз

Более подробная информация в Замена программы для одной или нескольких фаз

Флаг Описание Тип Обратное

-pgma ⟨cmd⟩

Использовать ⟨cmd⟩ в качестве ассемблера

динамический

-pgmc ⟨cmd⟩

Использовать ⟨cmd⟩ в качестве компилятора C

динамический

-pgmCmmP ⟨cmd⟩

Использовать ⟨cmd⟩ в качестве препроцессора C-- C

динамический

-pgmcxx ⟨cmd⟩

Использовать ⟨cmd⟩ в качестве компилятора C++

динамический

-pgmF ⟨cmd⟩

Использовать ⟨cmd⟩ в качестве препроцессора (только с -F)

динамический

-pgmi ⟨cmd⟩

Использовать ⟨cmd⟩ как команду внешнего интерпретатора.

динамический

-pgminstall_name_tool ⟨cmd⟩

Использовать ⟨cmd⟩ в качестве программы для вставки runpath в mach-o dylibs на macOS

динамический

-pgmJSP ⟨cmd⟩

Использовать ⟨cmd⟩ как препроцессор JavaScript C (только для javascript-backend)

динамический

-pgmL ⟨cmd⟩

Использовать ⟨cmd⟩ как препроцессор literate

динамический

-pgml ⟨cmd⟩

Использовать ⟨cmd⟩ как компоновщик

динамический

-pgmlas ⟨cmd⟩

Использовать ⟨cmd⟩ как LLVM ассемблер

динамический

-pgmlc ⟨cmd⟩

Использовать ⟨cmd⟩ как LLVM компилятор

динамический

-pgmlm ⟨cmd⟩

Использовать ⟨cmd⟩ как компоновщик при слиянии объектных файлов

динамический

-pgmlo ⟨cmd⟩

Использовать ⟨cmd⟩ как LLVM оптимизатор

динамический

-pgmotool ⟨cmd⟩

Использовать ⟨cmd⟩ в качестве программы для проверки mach-o dylibs на macOS

динамический

-pgmP ⟨cmd⟩

Использовать ⟨cmd⟩ как препроцессор C (только с -cpp)

динамический

-pgms ⟨cmd⟩

Использовать ⟨cmd⟩ как разделитель

динамический

-pgmwindres ⟨cmd⟩

Использовать ⟨cmd⟩ для встраивания манифестов в Windows.

динамический

5.6.24. Принудительное назначение параметров конкретным фазам

Более подробная информация в Принудительное назначение параметров конкретной фазе

Флаг Описание Тип Обратное

-opta ⟨option⟩

передать ⟨option⟩ ассемблеру

динамический

-optc ⟨option⟩

передать ⟨option⟩ компилятору C

динамический

-optCmmP ⟨option⟩

передать ⟨option⟩ препроцессору C-- C.

динамический

-optcxx ⟨option⟩

передать ⟨option⟩ компилятору C++

динамический

-optF ⟨option⟩

передать ⟨option⟩ кастомному препроцессору

динамический

-opti ⟨option⟩

передать ⟨option⟩ подпроцессу интерпретатора.

динамический

-optJSP ⟨option⟩

передать ⟨option⟩ препроцессору JavaScript C (только для javascript-backend)

динамический

-optL ⟨option⟩

передать ⟨option⟩ препроцессору literate

динамический

-optl ⟨option⟩

передать ⟨option⟩ компоновщику

динамический

-optF ⟨option⟩

передать ⟨option⟩ LLVM ассемблеру

динамический

-optlc ⟨option⟩

передать ⟨option⟩ LLVM компилятору

динамический

-optlm ⟨option⟩

передать ⟨option⟩ компоновщику при слиянии объектных файлов.

динамический

-optlo ⟨option⟩

передать ⟨option⟩ LLVM оптимизатору

динамический

-optP ⟨option⟩

передать ⟨option⟩ cpp (только с -cpp)

динамический

-optwindres ⟨option⟩

передать ⟨option⟩ к windres.

динамический

-pgmc-supports-no-pie

(устарело) Указать, что компоновщик поддерживает -no-pie

динамический

-pgml-supports-no-pie

Указать, что компоновщик поддерживает -no-pie

динамический

5.6.25. Параметры, специфичные для платформы

Подробнее в Флаги, специфичные для платформы

Флаг Описание Тип Обратный

-mavx

(только x86) Включить поддержку расширений SIMD AVX

динамический

-mavx2

(только x86) Включить поддержку расширений SIMD AVX2

динамический

-mavx512cd

(только x86) Включить поддержку расширений SIMD AVX512-CD

динамический

-mavx512er

(только x86) Включить поддержку расширений SIMD AVX512-ER

динамический

-mavx512f

(только x86) Включить поддержку расширений SIMD AVX512-F

динамический

-mavx512pf

(только x86) Включить поддержку расширений SIMD AVX512-PF

динамический

-mbmi

(только x86) Использовать BMI1 для операций с битами

динамический

-mbmi2

(только x86) Использовать BMI2 для операций с битами

динамический

-mfma

Использовать встроенные инструкции FMA для операций с плавающей запятой fused multiply-add

динамический

-msse

(только x86) Использовать SSE для операций с плавающей запятой

динамический

-msse2

(только x86) Использовать SSE2 для операций с плавающей запятой

динамический

-msse3

(только x86) Использовать SSE3 для операций с плавающей запятой

динамический

-msse4

(только x86) Использовать SSE4 для операций с плавающей запятой

динамический

-msse4.2

(только x86) Использовать SSE4.2 для операций с плавающей запятой

динамический

5.6.26. Параметры отладки компилятора

Подробнее в Отладка компилятора

Флаг Описание Тип Обратное

-dasm-lint

Проверка корректности прохода ASM

динамический

-dcmm-lint

Проверка корректности прохода C-\-

динамический

-dcore-lint

Включить внутреннюю проверку корректности

динамический

-ddisable-js-c-sources

Отключить связь с исходными файлами C, скомпилированными в JavaScript

динамический

-ddisable-js-minifier

Генерировать красиво отформатированный JavaScript-код вместо сжатого (компактного) кода.

динамический

-ddump-asm

Вывести окончательный ассемблерный код

динамический

-ddump-asm-conflicts

Вывести конфликты регистров из модуля распределения регистров.

динамический

-ddump-asm-liveness

Вывести ассемблерный код с информацией о жизни регистров

динамический

-ddump-asm-native

Вывести начальный ассемблерный код

динамический

-ddump-asm-regalloc

Вывести результат распределения регистров

динамический

-ddump-asm-regalloc-stages

Вывести этапы построения/вытеснения модуля распределения регистров -fregs-graph.

динамический

-ddump-asm-stats

Вывести статистику из модуля распределения регистров.

динамический

-ddump-bcos

Вывести байткод интерпретатора

динамический

-ddump-c-backend

Вывести код C, сгенерированный C (нелицензированным) бэкэндом.

динамический

-ddump-call-arity

Вывести результат анализа арифметичности вызовов.

динамический

-ddump-cfg-weights

Вывести предполагаемые веса CFG.

динамический

-ddump-cmm

Вывести окончательный результат C-\-

динамический

-ddump-cmm-caf

Вывести результаты прохода анализа C-\- CAF.

динамический

-ddump-cmm-cbe

Вывести результаты устранения общих блоков

динамический

-ddump-cmm-cfg

Вывести результаты прохода оптимизации потока управления C-\-.

динамический

-ddump-cmm-cps

Вывести результаты прохода CPS

динамический

-ddump-cmm-from-stg

Вывести результат STG-в-C-\- преобразования

динамический

-ddump-cmm-info

Вывести результаты прохода расширения таблицы информации C-\-.

динамический

-ddump-cmm-opt

Вывести результаты оптимизирующих проходов C-\- до C-\-

динамический

-ddump-cmm-proc

Вывести результаты анализа точек proc

динамический

-ddump-cmm-procmap

Вывести результаты прохода карты точек proc C-\-.

динамический

-ddump-cmm-raw

Вывести исходный C-\-

динамический

-ddump-cmm-sink

Вывести результаты прохода погружения C-\-.

динамический

-ddump-cmm-sp

Вывести результаты прохода компоновки стека C-\-.

динамический

-ddump-cmm-split

Вывести результаты прохода разделения точек proc C-\-.

динамический

-ddump-cmm-switch

Вывести результаты проходов понижения переключателей

динамический

-ddump-cmm-thread-sanitizer

Вывести результаты прохода расширения ThreadSanitizer для C-\-.

динамический

-ddump-cmm-verbose

Записать в файлы выходные данные основных проходов конвейера C-\-

динамический

-ddump-cmm-verbose-by-proc

Показать выходные данные основных проходов конвейера C-\- (группированные по proc)

динамический

-ddump-core-stats

Вывести краткое одномерное резюме размера программы Core в конце конвейера оптимизации

динамический

-ddump-cpr-signatures

Вывести подписи CPR

динамический

-ddump-cpranal

Вывести результаты анализа CPR

динамический

-ddump-cs-trace

Отслеживание решателя ограничений

динамический

-ddump-cse

Вывести результаты CSE

динамический

-ddump-debug

Вывести сгенерированные данные отладки DWARF

динамический

-ddump-deriv

Вывести результаты вывода

динамический

-ddump-dmd-signatures

Вывести подписи верхнего уровня для запросов

динамический

-ddump-dmdanal

Вывести результаты анализа запросов

динамический

-ddump-ds, -ddump-ds-preopt

Вывести результаты десахаризации.

динамический

-ddump-ec-trace

Отслеживание проверяющего исчерпываемость

динамический

-ddump-exitify

Вывести результаты прохода экзитификации.

динамический

-ddump-faststrings

Вывести всю таблицу FastString при завершении

динамический

-ddump-file-prefix=⟨str⟩

Установить префикс имен файлов, используемых для отладочной информации.

динамический

-ddump-float-in

Вывести float в выходные данные

динамический

-ddump-foreign

Вывести заглушки foreign export

динамический

-ddump-full-laziness, -ddump-float-out

Вывод полного результата прохода ленивости

динамический

-ddump-hie

Вывести синтаксическое дерево файла hie

динамический

-ddump-hpc

Псевдоним для -ddump-ticked.

динамический

-ddump-if-trace

Отследить файлы интерфейса

динамический

-ddump-inlinings

Вывести встраивания, выполненные упростителем.

динамический

-ddump-js

Вывести окончательный JavaScript-код

динамический

-ddump-json

(устарело) Используйте -fdiagnostics-as-json вместо этого

динамический

-ddump-late-cc

Вывести ядро с добавленными поздними центрами затрат

динамический

-ddump-liberate-case

Вывести вывод освобождения случая

динамический

-ddump-llvm

Вывести промежуточный код LLVM.

динамический

-ddump-mod-map

Вывести состояние базы данных отображения модулей.

динамический

-ddump-occur-anal

Вывести вывод анализа событий

динамический

-ddump-opt-cmm

Вывести результаты оптимизационных проходов C-- в C--

динамический

-ddump-parsed

Вывести дерево разбора

динамический

-ddump-parsed-ast

Вывести вывод парсера как синтаксическое дерево

динамический

-ddump-prep

Вывести подготовленное ядро

динамический

-ddump-rn

Вывести вывод переименовывателя

динамический

-ddump-rn-ast

Вывести вывод переименовывателя в виде синтаксического дерева

динамический

-ddump-rn-stats

Статистика переименовывателя

динамический

-ddump-rn-trace

Отследить переименовыватель

динамический

-ddump-rtti

Отследить вычисление типов во время выполнения

динамический

-ddump-rule-firings

Вывести информацию о срабатывании правил

динамический

-ddump-rule-rewrites

Вывести подробную информацию о срабатывании правил

динамический

-ddump-rules

Вывести правила переписывания

динамический

-ddump-simpl

Вывести окончательный вывод упростителя

динамический

-ddump-simpl-iterations

Вывести вывод каждой итерации упростителя

динамический

-ddump-simpl-stats

Вывести статистику упростителя

динамический

-ddump-simpl-trace

Вывести сообщения отслеживания в упростителе

динамический

-ddump-spec

Вывести вывод специализатора

динамический

-ddump-spec-constr

Вывести вывод специализатора из SpecConstr

динамический

-ddump-splices

Вывести выражения, склеенные TH, и то, к чему они приводят

динамический

-ddump-static-argument-transformation

Вывести вывод преобразования статических аргументов

динамический

-ddump-stg

(устарело) Псевдоним для -ddump-stg-from-core

динамический

-ddump-stg-cg

Показать вывод после Stg2Stg

динамический

-ddump-stg-final

Показать вывод последнего прохода STG.

динамический

-ddump-stg-from-core

Показать вывод CoreToStg

динамический

-ddump-stg-tags

Показать вывод прохода вывода тегов.

динамический

-ddump-stg-unarised

Показать неарный STG

динамический

-ddump-str-signatures

(устарело) Псевдоним для -ddump-dmd-signatures

динамический

-ddump-stranal

(устарело) Псевдоним для -ddump-dmdanal

динамический

-ddump-tc

Вывести вывод типероператора

динамический

-ddump-tc-ast

Вывести вывод типероператора в виде синтаксического дерева

динамический

-ddump-tc-trace

Отследить типероператор

динамический

-ddump-ticked

Вывести код, снабженный инструментарием HPC (Наблюдение за покрытием кода).

динамический

-ddump-timings

Вывести статистику времени выполнения и выделения памяти по каждому проходу

динамический

-ddump-to-file

Вывести в файлы вместо stdout

динамический

-ddump-types

Вывести сигнатуры типов

динамический

-ddump-verbose-inlinings

Вывести все рассматриваемые встраивания

динамический

-ddump-view-pattern-commoning

Вывести объединённые шаблоны представлений

динамический

-ddump-worker-wrapper

Вывести вывод оболочки для рабочих процессов

динамический

-dfaststring-stats

Показать статистику использования быстрых строк по завершении

динамический

-dhex-word-literals

Печать значений типа Word# в шестнадцатеричном формате.

динамический

-dinitial-unique=⟨s⟩

Начать выделение памяти UniqSupply с адреса ⟨s⟩.

динамический

-dinline-check=⟨str⟩

Вывести информацию о решениях по встраиванию.

динамический

-dipe-stats

Показать статистику по информации IPE.

динамический

-dkeep-comments

Включать комментарии в парсер. Полезно в сочетании с -ddump-parsed-ast.

динамический

-dlinear-core-lint

Включить внутреннюю проверку на корректность.

динамический

-dlint

Включить несколько общих внутренних проверок на корректность.

динамический

-dno-debug-output

Подавить нежелательный отладочный вывод.

динамический

-ddebug-output

-dno-typeable-binds

Не генерировать связи для методов Typeable.

динамический

-dppr-case-as-let

Выводить выражения single alternative case как строгие let-выражения.

динамический

-dppr-cols=⟨n⟩

Установить ширину отладочного вывода. Например, -dppr-cols200

динамический

-dppr-debug

Включить отладочную печать (более подробный вывод).

динамический

-dppr-user-length

Установить глубину вывода выражений в сообщениях об ошибках.

динамический

-drule-check=⟨str⟩

Вывести информацию о потенциальном применении правил.

динамический

-dshow-passes

Вывести имя каждого этапа компиляции по мере его выполнения.

динамический

-dstg-lint

Проверка на корректность этапа STG.

динамический

-dsuppress-all

В отладочных выводах подавить все (кроме уникальных значений), что можно подавить.

динамический

-dsuppress-coercion-types

Подавить вывод типов принуждения в Core-дампах для сокращения вывода.

динамический

-dsuppress-coercions

Подавить вывод принуждений в Core-дампах для сокращения вывода.

динамический

-dsuppress-core-sizes

Подавить вывод статистики размеров Core по каждой связи (с версии 9.4).

динамический

-dsuppress-idinfo

Подавить расширенную информацию об идентификаторах, где они связаны.

динамический

-dsuppress-module-prefixes

Подавить вывод префиксов квалификации модулей.

динамический

-dsuppress-stg-free-vars

Подавить вывод списков свободных переменных замыканий в выводе STG.

динамический

-dsuppress-stg-reps

Подавить аннотации rep на аргументах STG.

динамический

-dsuppress-ticks

Подавить «ticks» в выводе красивого принтера.

динамический

-dsuppress-timestamps

Подавить временные метки в дампах.

динамический

-dsuppress-type-applications

Подавить применение типов.

динамический

-dsuppress-type-signatures

Подавить типы сигнатур.

динамический

-dsuppress-unfoldings

Подавить вывод стабильного развертывания переменной в месте ее привязки.

динамический

-dsuppress-uniques

Подавить вывод уникальных значений в отладочном выводе (более удобное использование diff)

динамический

-dsuppress-var-kinds

Подавить вывод видов переменных.

динамический

-dtag-inference-checks

Подтвердить правильность результатов вывода тегов во время выполнения.

динамический

-dth-dec-file

Вывести значения обработанных TH-деклараций в файлы *.th.hs.

динамический

-dunique-increment=⟨i⟩

Установить приращение для сгенерированных Unique на ⟨i⟩.

динамический

-dverbose-core2core

Показать вывод каждого этапа преобразования core-to-core.

динамический

-dverbose-stg2stg

Показать вывод каждого этапа преобразования STG-to-STG.

динамический

-falignment-sanitisation

Компилировать с проверками выравнивания для всех обращений к таблице информации.

динамический

-fcatch-nonexhaustive-cases

Добавить альтернативу по умолчанию error к выражениям case без альтернативы по умолчанию.

динамический

-fcheck-prim-bounds

Ввести проверки границ для примитивных операций над массивами.

динамический

-fcmm-thread-sanitizer

Включить инструменты ThreadSanitizer для проверки доступа к памяти.

динамический

-fdistinct-constructor-tables

Сгенерировать новую таблицу информации для каждого использования конструктора данных.

динамический

-fdump-with-ways

Включить метку используемых путей в расширение файлов дампов.

динамический

-finfo-table-map

Встроить в сгенерированный бинарник таблицу поиска, которая сопоставляет адрес таблицы информации с исходной позицией, откуда произошло замыкание.

динамический

-finfo-table-map-with-fallback

Включить таблицы информации без информации о местоположении в исходном коде в таблицу поиска таблиц информации.

динамический

-fno-info-table-map-with-fallback

-finfo-table-map-with-stack

Включить таблицы информации для STACK замыканий в таблицу поиска таблиц информации.

динамический

-fno-info-table-map-with-stack

-fllvm-fill-undef-with-garbage

Указать LLVM заполнять неинициализированные регистры STG мусорными значениями.

динамический

-fno-info-table-map-with-fallback

Исключить таблицы информации без информации о расположении исходного кода из карты таблиц информации.

динамический

-finfo-table-map-with-fallback

-fno-info-table-map-with-stack

Исключить таблицы информации о замыканиях STACK из карты таблиц информации.

динамический

-finfo-table-map-with-stack

-forig-thunk-info

Генерировать stg_orig_thunk_info кадры стека при входе в thunk.

динамический

-fproc-alignment

Выравнивание функций по заданному пределу.

динамический

-funoptimized-core-for-interpreter

Отключить оптимизации с интерпретатором

динамический

-fno-unoptimized-core-for-interpreter

-g, -g⟨n⟩

Генерировать отладочную информацию DWARF в скомпилированных объектных файлах. ⟨n⟩ может быть 0, 1 или 2, с более высокими числами, генерирующими более богатый вывод. Если ⟨n⟩ опущено, предполагается уровень 2.

динамический

5.6.27. Дополнительные параметры компилятора

Флаг Описание Тип Обратный

-ddump-mod-cycles

Вывести циклы модулей

динамический

-fdefer-out-of-scope-variables

Преобразовать ошибки переменных, вышедших из области видимости, в предупреждения. Подразумевается -fdefer-type-errors. См. также -Wdeferred-out-of-scope-variables.

динамический

-fno-defer-out-of-scope-variables

-fdefer-type-errors

Преобразовать ошибки типов в предупреждения, откладывая ошибку до времени выполнения. Подразумевает -fdefer-typed-holes и -fdefer-out-of-scope-variables. См. также -Wdeferred-type-errors.

динамический

-fno-defer-type-errors

-fdefer-typed-holes

Преобразовать ошибки типовых отверстий в предупреждения, откладывая ошибку до времени выполнения. Подразумевается -fdefer-type-errors. См. также -Wtyped-holes.

динамический

-fno-defer-typed-holes

-fexternal-interpreter

Запустить интерпретируемый код в отдельном процессе

динамический

-ffamily-application-cache

Использовать кэш при сокращении применений семейств типов

динамический

-fno-family-application-cache

-fglasgow-exts

Устарело. Включить большинство расширений языка; см. Управление изданиями и расширениями для точного указания, какие именно.

динамический

-fno-glasgow-exts

-fno-safe-haskell

Отключить Безопасный Haskell

динамический

-ghcversion-file ⟨path to ghcversion.h⟩

(Только GHC как компилятор C) Используйте этот ghcversion.h файл

динамический

-H ⟨size⟩

Установить минимальный размер кучи до ⟨size⟩

динамический

-hidden-module ⟨module name⟩

Модуль, который не должен быть виден за пределами своего блока.

динамический

-j[⟨n⟩]

При компиляции с --make, скомпилировать ⟨n⟩ модулей параллельно.

динамический

-jsem

При компиляции с --make, координировать работу с другими процессами через семафор ⟨sem⟩ для компиляции модулей параллельно.

динамический

-reexported-module ⟨reexport-spec⟩

Модуль, который должен быть повторно экспортирован из этого блока.

динамический

-this-package-name ⟨unit-id⟩

Имя пакета, к которому этот модуль будет принадлежать при установке.

динамический

-unit @⟨filename⟩

Указать параметры для сборки конкретного блока.

динамический

-working-dir ⟨dir⟩

Указать директорию, в которой ожидается компиляция блока.

динамический

© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/9.12.1/docs/users_guide/flags.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API