Этот раздел содержит краткий справочник командных флагов GHC. Для каждого флага также указан его режим/динамический статус (см. Динамические и режимные параметры), и противоположный флаг (если доступен).
5.6. Справочник флагов
5.6.1. Параметры подробности вывода
Подробнее в Параметры подробности вывода
| Флаг | Описание | Тип | Обратное значение |
|---|---|---|---|
по умолчанию: выключено. Включает/выключает вывод уточнений, где одно или несколько отверстий абстрактны. |
динамический | ||
Отложить и сгруппировать сообщения диагностики по уровню серьезности |
динамический | ||
Вывод диагностики в формате Json, заданном схемой JSON |
динамический | ||
Использовать цвета в сообщениях об ошибках |
динамический | ||
Показывать ли фрагменты исходного кода |
динамический | ||
Выводить полный размах в сообщениях об ошибках |
динамический | ||
скрыть пути к исходному коду модуля и объектам |
динамический | ||
Продолжать компиляцию при ошибках как можно дальше |
динамический | ||
по умолчанию: 6. Установить максимальное количество уточнений для отверстий с типом, отображаемых в сообщениях об ошибках типов. |
динамический | ||
по умолчанию: 6. Установить максимальное количество связей для отображения в сообщениях об ошибках типов. |
динамический | ||
по умолчанию: 6. Установить максимальное количество допустимых соответствий отверстий с типом для отображения в сообщениях об ошибках типов. |
динамический | ||
Отключает отображение списка допустимых соответствий отверстий с типом в сообщениях об ошибках типов. |
динамический | ||
Отключает сортировку списка допустимых соответствий отверстий с типом в сообщениях об ошибках типов. |
динамический | ||
Отобразить несовместимости уравнений в закрытых типах семейств. |
динамический | ||
Различать равенства при печати |
динамический | ||
Выводить ли коды диагностики в виде гиперссылок ANSI на Индекс ошибок Haskell. |
динамический | ||
В сообщениях об ошибках также печатать типы, расширенные синонимами типов. |
динамический | ||
Печатать принуждения в типах |
динамический | ||
Печатать явную квантификацию |
динамический | ||
Печатать явные универсальные квантификаторы и аргументы типов в типах. См. также |
динамический | ||
Печатать переменные |
динамический | ||
отображать все доступные экземпляры в сообщениях об ошибках типов |
динамический | ||
Печатать лишние метки продвижения |
динамический | ||
Печатать дополнительную информацию из типовой проверки. |
динамический | ||
Использовать уникод-синтаксис при печати выражений, типов и видов. См. также |
динамический | ||
по умолчанию: выключено. Устанавливает уровень уточнения соответствий отверстий уточнения, где уровень |
динамический | ||
Выводить ошибки в обратном порядке |
динамический | ||
Включает/выключает отображение документации к допустимым совпадениям отверстий в выводе. |
динамический | ||
Показывать ли текстовую информацию о контексте ошибки |
динамический | ||
Отображать ограничения при сообщении об отверстиях с типом. |
динамический | ||
Включает/выключает отображение типа дополнительных отверстий в уточняющих отверстиях. |
динамический | ||
Включает/выключает отображение происхождения допустимых отверстий в выводе. |
динамический |
Включает/отключает отображение применения типа для подходящих вырезов в выводе. |
динамически | ||
Включает/отключает отображение типов, которые принимают квантифицированные переменные в подходящем вырезе. |
динамически | ||
Включает/отключает отображение типа для подходящих вырезов в выводе. |
динамически | ||
Сортировка подходящих вырезов по размеру. |
динамически | ||
Сортировка подходящих вырезов по подчинению. |
динамически | ||
Сжатие списка подходящих вырезов, скрывая происхождение и применения типов предложений. |
динамически | ||
Сводка статистики времени для GHC (то же, что |
динамически | ||
Режим подробной информации (эквивалентно |
динамически | ||
установка уровня подробности |
динамически |
5.6.2. Альтернативные режимы работы
Подробнее см. в Режимах работы
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Запустить GHC с указанным плагином передней части; см. Плагины передней части для получения подробностей. |
режим | ||
Отобразить справку |
режим | ||
отобразить информацию о компиляторе |
режим | ||
Интерактивный режим — обычно используется, просто запустив |
режим | ||
Скомпилировать многомодульную программу Haskell, автоматически определяя зависимости. Вероятно, будет намного проще и быстрее, чем использовать |
режим | ||
отобразить версию GHC (только числовую) |
режим | ||
отобразить версию компилятора загрузки |
режим | ||
отобразить платформу, на которой был построен GHC |
режим | ||
Флаги компилятора C, используемые для построения GHC |
режим | ||
Флаги линковщика C, используемые для построения GHC |
режим | ||
вывести, был ли GHC построен с |
режим | ||
вывести директорию глобальной базы данных пакетов GHC |
режим | ||
вывести, был ли GHC построен с поддержкой интерпретатора |
режим | ||
вывести, поддерживает ли целевая платформа NCG |
режим | ||
вывести хост-платформу GHC |
режим | ||
вывести флаги линковщика, используемые для компиляции GHC |
режим | ||
вывести использование ведущих подчеркиваний в именах символов |
режим | ||
вывести директорию библиотек GHC |
режим | ||
вывести, поддерживает ли GHC разделение объектов |
режим | ||
вывести идентификатор Git-коммита, из которого построен GHC |
режим | ||
вывести версию GHC |
режим | ||
вывести, каким способом был построен RTS |
режим | ||
вывести |
режим | ||
вывести, был ли GHC скомпилирован с поддержкой SMP |
режим | ||
вывести, был ли GHC скомпилирован с |
режим | ||
вывести целевую платформу GHC |
режим | ||
вывести, был ли этот GHC построен в режиме без регистрации |
режим | ||
Запустить программу Haskell. |
режим | ||
вывести содержимое файла интерфейса. |
режим | ||
вывести поддерживаемые параметры командной строки |
режим | ||
отобразить поддерживаемые расширения языка |
режим | ||
вывести версию GHC |
режим | ||
Вычислить |
режим | ||
сгенерировать информацию о зависимостях, пригодную для использования в |
режим | ||
Создать общий объект. |
режим |
5.6.3. Какие фазы нужно выполнить
Подробнее см. в Режим пакетной компиляции
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Объединить набор объектов в библиотеку GHCi. |
режим | ||
Прекратить выполнение после генерации C (файл |
режим | ||
Прекратить выполнение после генерации файла объекта ( |
режим | ||
Прекратить выполнение после предварительной обработки (файл |
режим | ||
Включить использование препроцессора (устанавливается с |
динамический | ||
Прекратить выполнение после генерации ассемблерного кода (файл |
режим | ||
Переопределить стандартное поведение для файлов исходного кода |
динамический |
5.6.4. Перенаправление вывода
Подробнее в Перенаправление вывода компиляции
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Использовать ⟨file⟩ в качестве файла makefile |
динамический | ||
Создать зависимости, объявляющие, что файлы с суффиксом |
динамический | ||
перенаправить файлы dump |
динамический | ||
установить суффикс для использования в файлах динамического интерфейса |
динамический | ||
установить имя файла динамического вывода |
динамический | ||
установить имя файла, в который нужно поместить динамический интерфейс |
динамический | ||
установить суффикс для файла динамического вывода |
динамический | ||
установить суффикс для промежуточных файлов C |
динамический | ||
установить каталог для файлов интерфейса |
динамический | ||
установить каталог для расширенных файлов интерфейса |
динамический | ||
установить суффикс для расширенных файлов интерфейса |
динамический | ||
установить суффикс для файлов интерфейса |
динамический | ||
установить имя файла вывода |
динамический | ||
установить каталог для файлов объектов |
динамический | ||
установить имя файла, в который нужно поместить интерфейс |
динамический | ||
установить суффикс для файла вывода |
динамический | ||
установить каталог вывода |
динамический | ||
перенаправить файлы FFI-заглушек |
динамический |
5.6.5. Сохранение промежуточных файлов
Подробнее в Сохранение промежуточных файлов
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Сохранить промежуточные файлы |
динамический | ||
Сохранить промежуточные файлы |
динамический | ||
Сохранить промежуточные файлы |
динамический | ||
Сохранить промежуточные файлы LLVM |
динамический | ||
Сохранить промежуточные файлы |
динамический | ||
Сохранить промежуточные файлы |
динамический | ||
Сохранить все временные промежуточные файлы. |
динамический |
5.6.6. Временные файлы
Подробнее в Перенаправление временных файлов
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
установить каталог для временных файлов |
динамический |
5.6.7. Поиск импортов
Подробнее в Путь поиска
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Очистить список каталогов импортов |
динамический | ||
Добавить ⟨dir⟩, ⟨dir2⟩ и т.д. в путь импорта |
динамический |
5.6.8. Параметры файла интерфейса
Подробнее в Дополнительные параметры, связанные с файлами интерфейса
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
См. Режимы работы. |
режим | ||
Вывести новый интерфейс в стандартный вывод |
динамический | ||
Показать различия по сравнению со старым интерфейсом |
динамический | ||
Вывести минимальный набор импортов |
динамический |
5.6.9. Параметры расширенных файлов интерфейса
Более подробная информация в Параметры, относящиеся к расширенным файлам интерфейса
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Выполнить некоторые проверки на корректность расширенных файлов интерфейса |
динамический | ||
Записать расширенные файлы интерфейса |
динамический |
5.6.10. Проверка повторной компиляции
Более подробная информация в Проверяющий повторную компиляцию
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Рассматривать |
динамический | ||
Отключить проверку повторной компиляции. Это подразумевается любым |
динамический | ||
Не перекомпилировать модули только для соответствия изменениям флагов HPC. Это особенно полезно для избежания перекомпиляции при использовании GHCi, и по умолчанию включено для GHCi. |
динамический | ||
Не перекомпилировать модули только для соответствия изменениям флагов оптимизации. Это особенно полезно для избежания перекомпиляции при использовании GHCi, и по умолчанию включено для GHCi. |
динамический | ||
Включить зависимости препроцессора |
динамический | ||
Рассматривать модули, импортированные из пакетов, как нестабильные |
динамический |
5.6.11. Параметры интерактивного режима
Более подробная информация в Файлы .ghci и .haskeline
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Остановить выполнение при необработанных исключениях и ошибках |
динамический | ||
|
динамический | |||
|
динамический | |||
Установить количество записей, которые GHCi сохраняет для |
динамический | ||
(Только для отладки) проверка утечек памяти при загрузке новых модулей в GHCi. |
динамический | ||
Внести в область видимости квалифицированные идентификаторы для каждого загруженного модуля |
динамический | ||
Использовать текущую директорию для файла истории команд GHCi |
динамический | ||
Больше не устанавливать специальную переменную |
динамический | ||
|
динамический | |||
Инструктировать |
динамический | ||
Отображать имена модулей, загруженных GHCi после команды |
динамический | ||
Читать дополнительные файлы |
динамический | ||
Отключить чтение файлов |
динамический | ||
|
динамический |
5.6.12. Пакеты
Более подробная информация в Пакеты
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Очистить стек базы данных пакетов. |
динамический | ||
Открыть пакет ⟨pkg⟩ и установить его как недоверенный. См. Безопасный Haskell. |
динамический | ||
По умолчанию не доверять всем пакетам. См. Безопасный Haskell. |
динамический | ||
Включить требование Безопасного Haskell доверенного пакета для надёжных модулей. |
динамический | ||
Добавить глобальную базу данных пакетов в стек. |
динамический | ||
Скрыть все пакеты по умолчанию |
динамический | ||
Скрыть пакет ⟨pkg⟩ |
динамический | ||
Проигнорировать пакет ⟨pkg⟩ |
динамический | ||
Не автоматически подключать базовые и rts-пакеты. |
динамический | ||
Удалить глобальную базу данных пакетов из стека. |
динамический | ||
Удалить пользовательскую базу данных пакетов из стека. |
динамический | ||
Открыть пакет ⟨pkg⟩ |
динамический | ||
Добавить ⟨file⟩ в стек базы данных пакетов. |
динамический | ||
Использовать указанную среду пакетов. |
динамический | ||
Открыть пакет по id ⟨unit-id⟩ |
динамический | ||
Компилировать как часть единицы (т.е. пакета) ⟨unit-id⟩ |
динамический | ||
Открыть пакет ⟨pkg⟩ и установить его как доверенный. См. Безопасный Haskell. |
динамический | ||
Добавить пользовательскую базу данных пакетов в стек. |
динамический |
5.6.13. Параметры языка
Параметры языка можно включить либо с помощью параметра командной строки -Xblah, либо с помощью {-# LANGUAGE blah #-} пragma в самом файле. См. Управление версиями и расширениями.
5.6.14. Предупреждения
Более подробная информация в Предупреждения и проверки корректности
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Выводить предупреждения для вставок Template Haskell |
динамический | ||
Предлагать исправления для неправильно написанных имён. |
динамический | ||
мягкое ограничение на количество параллельных моделей, которые проверятель соответствия шаблонов должен проверять на соответствие фрагменту шаблона |
динамический | ||
показывать, к какой группе относится выведенное предупреждение. |
динамический | ||
использовать генератор кода C |
динамический | ||
включить стандартные предупреждения |
динамический | ||
отключить все предупреждения |
динамический | ||
включить почти все предупреждения (подробнее в Предупреждения и проверка на корректность) |
динамический | ||
выводить предупреждение, когда специализация любой перегруженной функции не удалась. |
динамический | ||
псевдоним для |
динамический | ||
выводить предупреждение об неоднозначных селекторах или обновлениях полей |
динамический | ||
(устарело) Не делает ничего |
динамический | ||
выводить предупреждение, когда привязка типа используется на неправильной стадии TH. |
динамический | ||
включать предупреждения о совместимости с будущими версиями (подробнее в Предупреждения и проверка на корректность) |
динамический | ||
(устарело) Сообщать об импортах базовых библиотек без квалификаторов, которые, по прогнозу, вызовут проблемы совместимости в будущих выпусках. |
динамический | ||
выводить предупреждение об использовании директивы |
динамический | ||
выводить предупреждение, когда типовой или видовой проверятель находит незаконное использование типа или вида без |
динамический | ||
включить флаги по умолчанию |
динамический | ||
выводить предупреждение, когда неявный параметр Control.Exception.Context.ExceptionContext задаётся по умолчанию как Control.Exception.Context.emptyExceptionContext. |
динамический | ||
Сообщать о предупреждениях, когда ошибки переменных за пределами области видимости откладываются до выполнения. См. |
динамический | ||
Выводить предупреждения, когда отложенные ошибки типов включены. Этот параметр включен по умолчанию. См. |
динамический | ||
предупреждать об использовании устаревших командных флагов |
динамический | ||
выводить предупреждение, когда абстракции типов в шаблонах конструкторов используются без включения |
динамический | ||
выводить предупреждение об использовании функций и типов с устаревшими или предупреждающими предикатами с категорией |
динамический | ||
предупреждать об использовании по умолчанию вывода, когда используются |
динамический | ||
выводить предупреждение при выводе Typeable |
динамический | ||
выводить предупреждение о сомнительных экспортах |
динамический | ||
выводить предупреждение о сомнительных внешних импортах |
динамический | ||
выводить предупреждение о сомнительных импортах |
динамический |
предупреждение при дублировании ограничений в сигнатуре типа |
динамическое | ||
предупреждение при многократной экспорте сущности |
динамическое | ||
предупреждение об пустых перечислениях |
динамическое | ||
сделать предупреждения фатальными |
динамическое | ||
включить все предупреждения, поддерживаемые GHC |
динамическое | ||
предупреждать об использовании функций и типов с прагмами WARNING или DEPRECATED во всех категориях |
динамическое | ||
псевдоним для |
динамическое | ||
(устаревшее) Ничего не делает |
динамическое | ||
предупреждать при сопоставлении с образцом GADT без MonoLocalBinds |
динамическое | ||
(устаревшее) предупреждение, когда файл |
динамическое | ||
предупреждение об использовании числовых преобразований Prelude, которые, вероятно, являются тождественными (и, следовательно, могут быть опущены) |
динамическое | ||
(устаревшее) предупреждение, когда переменные типов неявно квантуются |
динамическое | ||
предупреждение об неявном |
динамическое | ||
предупреждение при неявном импорте Prelude |
динамическое | ||
предупреждение, когда переменные типа в правой части синонима типа неявно квантуются |
динамическое | ||
предупреждение о недоступном коде |
динамическое | ||
предупреждение, когда о некоторых, но не обо всех экспортах для имени выдаются предупреждения |
динамическое | ||
предупреждение, когда сопоставление с образцом может завершиться неудачей |
динамическое | ||
предупреждение, когда применение селектора записи может завершиться неудачей |
динамическое | ||
предупреждение, когда обновление записи может завершиться неудачей |
динамическое | ||
предупреждение, когда сопоставление с образцом в лямбда-выражении, привязке по образцу или ленивом образце может завершиться неудачей |
динамическое | ||
предупреждение при несовместимости параметров командной строки. |
динамическое | ||
предупреждение, когда явно модуль Safe Haskell импортирует модуль Safe-Inferred |
динамическое | ||
Предупредить, если правило переписывания может не сработать, потому что функция может быть встроена до того, как правило получит шанс сработать. См. Как правила взаимодействуют с прагмами INLINE/NOINLINE. |
динамическое | ||
предупреждать при наличии комментария Haddock в недопустимом положении |
динамическое | ||
(устаревшее) предупреждать при создании потенциально циклических доказательств суперклассовых ограничений |
динамическое | ||
предупреждать об использовании прагм заголовков файлов в теле модуля |
динамическое | ||
Предупредить, когда GHCi не может загрузить общую библиотеку. |
динамическое | ||
предупреждать, когда специализация импортированной перегруженной функции терпит неудачу. |
динамическое | ||
псевдоним для |
динамическое | ||
предупреждать при использовании производных без указания стратегии производных |
динамическое |
предупреждение, если в объявлении модуля не указан явным образом список всех экспортов |
динамический | ||
предупреждение о синонимах шаблонов без сигнатур, только если они экспортированы |
динамический | ||
предупреждение о функциях верхнего уровня без сигнатур, только если они экспортированы |
динамический | ||
(устарело) предупреждение о функциях верхнего уровня без сигнатур, только если они экспортированы. имеет приоритет над -Wmissing-signatures |
динамический | ||
предупреждение, если поля записи не инициализированы |
динамический | ||
предупреждение при обнаружении импортированного домашнего модуля, но не указанного в командной строке. Полезно для cabal, чтобы убедиться, что GHC не возьмёт модули, не указанные ни в |
динамический | ||
предупреждение, если в объявлении импорта не указан явным образом список всех имён, вносимых в область видимости |
динамический | ||
предупреждение, если объявления типов не имеют сигнатур типов или CUSK |
динамический | ||
предупреждение о полиморфных локальных связываниях без сигнатур |
динамический | ||
(устарело) предупреждение о полиморфных локальных связываниях без сигнатур |
динамический | ||
предупреждение, если методы класса не определены |
динамический | ||
(устарело) Предупреждение, если в блоке do используется неудачный шаблон, у которого нет экземпляра |
динамический | ||
предупреждение, если синонимы шаблонов не имеют сигнатур типов |
динамический | ||
предупреждение, если выведенное поликиндное тип или объявление класса не имеют сигнатур типов или CUSK |
динамический | ||
предупреждение, если объявления типов не имеют аннотаций ролей |
динамический | ||
предупреждение, если режим Safe Haskell не указан явно. |
динамический | ||
предупреждение о функциях верхнего уровня без сигнатур |
динамический | ||
(устарело) Не делает ничего |
динамический | ||
предупреждение, если применено ограничение мономорфизма |
динамический | ||
предупреждение о скрытии имён |
динамический | ||
предупреждение, если экземпляры |
динамический | ||
(устарело) Предупреждение, если экземпляры |
динамический | ||
предупреждение, если экземпляры |
динамический | ||
(устарело) Псевдоним для |
динамический | ||
предупреждение при использовании префикса, суффикса и тесных инфиксных операторов |
динамический | ||
предупреждение при использовании инфиксных операторов, которые были бы обработаны по-другому, если бы было включено определённое расширение GHC |
динамический | ||
предупреждение, если модуль содержит дополнительные объявления экземпляров или правила переработки |
динамический | ||
предупреждение о литералах, которые переполнят свой тип |
динамический |
предупреждение о перекрывающихся шаблонах |
динамический | ||
предупреждение при определении частичного поля записи. |
динамический | ||
предупреждение о пробелах в частичных сигнатурах типов, когда |
динамический | ||
Отчёт о импортах с «квалифицированным» префиксом. |
динамический | ||
Предупреждение о избыточных шаблонах с восклицательными знаками. |
динамический | ||
Предупреждать компилятор об избыточных ограничениях в сигнатурах типов. |
динамический | ||
Предупреждать об использовании шаблонов-диких карт записей, когда дикая карта не связывает никаких шаблонов. |
динамический | ||
Предупреждать об избыточных флагах строгости. |
динамический | ||
предупреждать, если компилируемый модуль считается безопасным. |
динамический | ||
(устарело) Предупреждение, когда |
динамический | ||
Предупреждать о ограничениях класса в сигнатуре типа, которые могут быть упрощены с помощью объявления экземпляра на верхнем уровне. |
динамический | ||
предупреждение о связывании оператора типа |
динамический | ||
предупреждение, когда |
динамический | ||
предупреждение, если в исходном файле есть символы табуляции |
динамический | ||
предупреждение, когда неявная квантифицированная переменная типа захватывает имя термина |
динамический | ||
предупреждение, если модуль, который компилируется, помечен как |
динамический | ||
предупреждение при использовании по умолчанию |
динамический | ||
предупреждение, когда используется равенство типов |
динамический | ||
предупреждение, когда используется равенство типов |
динамический | ||
Вывод предупреждений, когда ошибка типизированной дырки откладывается до выполнения. См. |
динамический | ||
предупреждение о привязке шаблона неподнятой переменной, которая не является ни голой, ни отмеченной восклицательным знаком |
динамический | ||
предупреждение об использовании символов Unicode, управляющих двунаправленным отображением |
динамический | ||
выводить предупреждение при использовании директив, которые GHC не распознает |
динамический | ||
вывод предупреждения при обнаружении нераспознанного |
динамический | ||
предупреждать, если компилируемый модуль считается небезопасным. См. Safe Haskell |
динамический | ||
предупреждение об использовании неподдерживаемой конвенции вызова |
динамический | ||
Выводить предупреждение при использовании |
динамический | ||
предупреждение, если продвинутые конструкторы не помечены |
динамический |
предупреждение о связях, которые не используются. Псевдоним для |
динамический | ||
предупреждение о связях do, которые, по-видимому, отбрасывают значения типов, отличных от |
динамический | ||
предупреждение о переменных типа в пользовательских |
динамический | ||
предупреждение об ненужных импортах |
динамический | ||
предупреждение о локальных связях, которые не используются |
динамический | ||
предупреждение о переменных в шаблонах, которые не используются |
динамический | ||
предупреждение, если пакет запрашивается в командной строке, но не нужен. |
динамический | ||
предупреждение о связях в соответствии с шаблоном, которые не используются |
динамический | ||
Предупреждение о совпадениях с дикими картами записей, когда ни одна из связанных переменных не используется. |
динамический | ||
предупреждение о связях верхнего уровня, которые не используются |
динамический | ||
предупреждение об отсутствии использования переменных типа, которые возникают из шаблонов в экземплярах семейств типов и семейств данных |
динамический | ||
предупреждение, когда шаблон представления используется с сигнатурой типа без явных скобок |
динамический | ||
сделать предупреждения не фатальными |
динамический | ||
выдавать предупреждения об использовании функций и типов, имеющих устаревшие прагмы или прагмы ПРЕДУПРЕЖДЕНИЯ с категорией |
динамический | ||
предупреждение о связях do, которые, по-видимому, отбрасывают монадические значения, которые вы должны были бы связать вместо этого |
динамический | ||
предупреждение об использовании функций и типов, имеющих прагмы ПРЕДУПРЕЖДЕНИЯ с данной категорией |
динамический |
5.6.15. Уровни оптимизации
Эти параметры более подробно описаны в Оптимизация (улучшение кода).
См. Отдельные оптимизации для списка оптимизаций, включенных на уровнях 1 и 2.
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Включить оптимизации уровня 1 |
динамический | ||
Отключить оптимизации (по умолчанию) |
динамический | ||
Включить оптимизации уровня 2 |
динамический | ||
Любое -On, где n > 2, эквивалентно -O2. |
динамический |
5.6.16. Индивидуальные оптимизации
Эти параметры более подробно описаны в -f*: независимые от платформы флаги. Если флаг подразумевается -O тогда он подразумевается и -O2 (если в описании флага не указано иное). Если флаг подразумевается -O0 только тогда флаг не подразумевается -O и -O2.
| Флаг | Описание | Тип | Обратное значение |
|---|---|---|---|
Включить сокращение в ассемблере. Подразумевается флагом |
динамический | ||
по умолчанию: 500Кб. Настройка генератора ассемблера для двоичных блоков. |
динамический | ||
Использовать новый алгоритм компоновки блоков на основе cfg. Подразумевается флагом |
динамический | ||
Игнорировать веса cfg для компоновки кода. |
динамический | ||
Устанавливает веса рёбер, используемые новым алгоритмом компоновки кода. |
динамический | ||
Включить оптимизацию арности вызова. Подразумевается флагом |
динамический | ||
Включить свертку констант в выражениях case. Подразумевается флагом |
динамический | ||
Включить слияние case. Подразумевается флагом |
динамический | ||
Включить оптимизацию потока управления в бекенде Cmm. Подразумевается флагом |
динамический | ||
Включить удаление общих блоков в Cmm. Подразумевается флагом |
динамический | ||
Включить погружение (sinking) в Cmm. Подразумевается флагом |
динамический | ||
Включить предсказание статического потока управления. Подразумевается флагом |
динамический | ||
Включить свертку констант в Core. Подразумевается флагом |
динамический | ||
Включить анализ результата построенного продукта. Подразумевается флагом |
динамический | ||
Включить специализацию перегруженных функций, импортированных из других модулей. Подразумевается флагом |
динамический | ||
Включить удаление общих подвыражений. Подразумевается флагом |
динамический | ||
Сделать выражения со словарями кажущимися оптимизатору дешёвыми. |
динамический | ||
Сделать словари строгими. Подразумевается флагом |
динамический | ||
(устарело) Использовать специальный преобразователь требований для селекторов словарей. |
динамический | ||
по умолчанию: 3. Анализ boxity предполагает, что возвращаемые записи с таким количеством полей могут быть unboxed. |
динамический | ||
Включить сложную оптимизацию eta-расширения аргументов. Подразумевается флагом |
динамический | ||
Включить eta-сведение. Включено по умолчанию. |
динамический | ||
Включить eta-расширение лямбда-выражений. Включено по умолчанию. |
динамический | ||
Включить жадное blackholing |
динамический | ||
Включить все правила переписывания (включая правила, сгенерированные автоматической специализацией перегруженных функций). Подразумевается флагом |
динамический | ||
Включить избыточную промежуточную точность |
динамический | ||
Включает оптимизацию exitification. Подразумевается флагом |
динамический |
Раскрывать все разворачивания, даже для очень больших или рекурсивных функций. |
динамический | ||
Раскрывать разворачивания с ограничениями, даже для очень больших или рекурсивных функций. |
динамический | ||
Включить преобразование float-in. Подразумевается |
динамический | ||
Включить полную леность (плавающие связи наружу). Подразумевается |
динамический | ||
(устарело) заменено на -ffull-laziness. |
динамический | ||
Игнорировать утверждения в исходном коде. Подразумевается |
динамический | ||
Игнорировать директивы в интерфейсных файлах. Подразумевается только |
динамический | ||
Добавлять аннотации INLINE[1] к методам производных экземпляров Generic и Generic1 на основе эвристик. Подразумевается |
динамический | ||
Добавлять аннотации INLINE[1] к методам всех производных экземпляров Generic и Generic1. |
динамический | ||
Сохранять все правила «auto», сгенерированные специализацией |
динамический | ||
Заново выполнить анализ потребностей в конце конвейера упрощений |
динамический | ||
Выполнить позднюю специализацию |
динамический | ||
Включить преобразование liberate-case. Подразумевается |
динамический | ||
по умолчанию: 2000. Установить порог размера для преобразования liberate-case на ⟨n⟩ |
динамический | ||
(устарело) Ничего не делает |
динамический | ||
Включить локальное вынесение определений за пределы let-связей. |
динамический | ||
Включить вынесение локальных связей за пределы глобальных связей |
динамический | ||
Преобразовать насыщенные рекурсивные хвостовые вызовы в локальные переходы в сгенерированном ассемблере. Подразумевается |
динамический | ||
по умолчанию: 333. Максимальное количество аргументов значения для принудительных специализаций SpecConstr. |
динамический | ||
по умолчанию: 128. Установить максимальный размер встраиваемых выделений массива в ⟨n⟩ байт (по умолчанию: 128). |
динамический | ||
по умолчанию: 32. Встраивать вызовы |
динамический | ||
по умолчанию: 32. Встраивать вызовы |
динамический | ||
по умолчанию: 4. Установить максимальное количество итераций упростителя. |
динамический | ||
по умолчанию: 4. Установить максимальное количество шаблонов для отображения предупреждений о неполных шаблонах. |
динамический | ||
по умолчанию: 10. Максимальное количество аргументов значения для исполнителя. |
динамический | ||
Отключить оптимизатор приведения типов |
динамический | ||
Отключить предварительное встраивание |
динамический | ||
Отключить хак состояния, в результате которого любая лямбда с маркером состояния реального мира в качестве аргумента считается однократной. Следовательно, можно встраивать вещи внутри неё. |
динамический | ||
Создать полностью детерминированный объектный код |
динамический | ||
Не генерировать интерфейсные директивы. Подразумевается только |
динамический | ||
Опустить проверки кучи, когда не выполняется выделение памяти. |
динамический |
Использовать более медленный, но лучший алгоритм для ApplicativeDo |
динамический | ||
Заставить GHC быть более точным в отношении обработки нижних границ (но см. также |
динамический | ||
Разрешить специализацию для абстрагирования по свободным переменным типа |
динамический | ||
Использовать алгоритм распределения регистров с раскраской графов для распределения регистров в генераторе кода нативного кода. |
динамический | ||
Использовать итеративный алгоритм распределения регистров с раскраской графов в генераторе кода нативного кода. |
динамический | ||
значение по умолчанию: 100. Установите процентный коэффициент для тиков упростителя. |
динамический | ||
значение по умолчанию: 2. Установите количество фаз для упростителя. Игнорируется с |
динамический | ||
При решении ограничений попробуйте немедленно решить суперклассы, используя доступные словари. Подразумевается |
динамический | ||
Включить преобразование SpecConstr. Подразумевается |
динамический | ||
значение по умолчанию: 3.* Установите значение ⟨n⟩ — максимальное количество специализаций, которое будет создано для любой одной функции преобразованием SpecConstr. |
динамический | ||
Специализировать вызов с явным аргументом конструктора, даже если этот аргумент не проверяется в теле функции |
динамический | ||
значение по умолчанию: 2000. Установите пороговое значение размера для преобразования SpecConstr в ⟨n⟩. |
динамический | ||
Включить специализацию перегруженных функций. Подразумевается |
динамический | ||
Включить специализацию перегруженных функций независимо от размера, если доступно раскрытие |
динамический | ||
Включить специализацию на несогласованных экземплярах |
динамический | ||
Включить преобразование статических аргументов. |
динамический | ||
Включить устранение общих подвыражений в промежуточном языке STG. Подразумевается |
динамический | ||
Включить позднее поднятие лямбда-выражений в промежуточном языке STG. Подразумевается |
динамический | ||
Разрешить преобразование известных вызовов в неизвестные при выполнении позднего поднятия лямбда-выражений. |
динамический | ||
Создавать функции верхнего уровня без рекурсии с не более чем <n> параметрами при выполнении позднего поднятия лямбда-выражений. |
динамический | ||
Создавать функции верхнего уровня с рекурсией с не более чем <n> параметрами при выполнении позднего поднятия лямбда-выражений. |
динамический | ||
Включить анализ запроса. Подразумевается |
динамический | ||
Выполнить дополнительный анализ запроса перед фазой упростителя ⟨n⟩ |
динамический | ||
Распаковать строгие поля конструкторов с представлением размером указателя. Подразумевается |
динамический | ||
Распаковать строгие поля конструкторов |
динамический | ||
значение по умолчанию: 30. Применить штраф (стоимость_включения * |
динамический | ||
значение по умолчанию: 2. Уменьшить инлайнинг для случаев, вложенных глубже, чем n. |
динамический | ||
значение по умолчанию: 750. Настройка параметров раскрытия. |
динамический | ||
значение по умолчанию: 30. Настройка параметров раскрытия. |
динамический |
Значение по умолчанию: 60. Настройка параметров раскрытия. |
динамический | ||
Этот параметр устарел в GHC 9.0.1. |
динамический | ||
Значение по умолчанию: 90. Настройка параметров раскрытия. |
динамический | ||
Включить преобразование worker/wrapper. Подразумевается |
динамический | ||
Включить разделение w/w для обёрток, единственная цель которых — вычисление аргументов. |
динамический | ||
Значение по умолчанию: 2. Настройка уровня сжатия файлов интерфейса. |
динамический |
5.6.17. Параметры профилирования
Более подробная информация в Профилирование
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
(устарел) Псевдоним для |
динамический | ||
(устарел) Псевдоним для |
динамический | ||
(устарел) Псевдоним для |
динамический | ||
Не собирать счётчики входов. |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Автоматически добавлять |
динамический | ||
Обработать аннотации |
динамический | ||
(устарел) Псевдоним для |
динамический | ||
(устарел) Псевдоним для |
динамический | ||
(устарел) Псевдоним для |
динамический | ||
Включить профилирование |
динамический | ||
Включить профилирование ticky-ticky |
динамический | ||
Отслеживать количество раз, когда каждый тип замыкания выделяется. |
динамический | ||
Не использовать стандартные AP-замыкания для получения более надёжных счётчиков входов. |
динамический | ||
Отслеживать выделение динамических замыканий |
динамический | ||
Обрабатывать связующие точки соединения аналогично замыканиям/функциям. |
динамический | ||
Выдавать фиктивные счётчики ticky для записи количества проверок вывода тегов, которые были предотвращены выводом тегов. |
динамический |
5.6.18. Параметры покрытия программы
Более подробная информация в Наблюдение за покрытием кода
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Включить инструментарий покрытия программы Haskell |
динамический | ||
Установить каталог, где GHC размещает файлы |
динамический |
5.6.19. Параметры препроцессора C
Подробнее в Параметры, влияющие на работу препроцессора C
| Флаг | Описание | Тип | Обратное значение |
|---|---|---|---|
Запустить препроцессор C для файлов исходного кода Haskell |
динамический | ||
Определить символ в препроцессоре C |
динамический | ||
Добавить ⟨dir⟩ в список каталогов поиска для файлов |
динамический | ||
Удалить определение символа в препроцессоре C |
динамический |
5.6.20. Параметры генерации кода
Подробнее в Параметры, влияющие на генерацию кода
| Флаг | Описание | Тип | Обратное значение |
|---|---|---|---|
Сгенерировать динамические объектные файлы наряду со статическими объектные файлы во время компиляции |
динамический | ||
Использовать генератор родного кода |
динамический | ||
Сгенерировать байткод |
динамический | ||
Сгенерировать объектный код и байткод |
динамический | ||
Создать символы для всех функций, включая внутренние функции. |
динамический | ||
Сгенерировать код для работы с динамическими библиотеками |
динамический | ||
Компилировать с помощью генератора кода LLVM |
динамический | ||
Исключить генерацию кода |
динамический | ||
Сгенерировать объектный код |
динамический | ||
Сгенерировать позиционно-независимый код (где это возможно) |
динамический | ||
Сгенерировать код для позиционно-независимого исполняемого файла (где это возможно) |
динамический | ||
Использовать байткод, если он доступен, для вычисления вставок TH. |
динамический | ||
Записать файл интерфейса, содержащий упрощенный ядро модуля. |
динамический | ||
Всегда записывать файлы интерфейса |
динамический |
5.6.21. Параметры подключения
Подробнее в Параметры, влияющие на подключение
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Остановка после генерации файла объекта ( |
режим | ||
Использование отладочной среды выполнения |
динамический | ||
Установка имени (через |
динамический | ||
Сборка динамически подключаемых файлов объектов и исполняемых файлов |
динамический | ||
Выбирает один из нескольких режимов поиска общих библиотек во время выполнения. |
динамический | ||
Включение отслеживания событий во время выполнения |
динамический | ||
Инструктирование линковщика о создании раздела |
динамический | ||
Отказ от сбора мусора CAFs (выражения верхнего уровня) во время выполнения |
динамический | ||
Подключение среды выполнения при генерации общей или статической библиотеки |
динамический | ||
Не встраивать манифест в исполняемый файл (только Windows) |
динамический | ||
Не генерировать файл манифеста (только Windows) |
динамический | ||
Не генерировать библиотеку импорта для DLL (только Windows) |
динамический | ||
Только для Darwin/OS X/iOS, подключение фреймворка ⟨name⟩. Этот параметр соответствует параметру |
динамический | ||
Только для Darwin/OS X/iOS, добавление ⟨dir⟩ в список каталогов, просматриваемых для фреймворков. Этот параметр соответствует параметру |
динамический | ||
Разделение секций для удаления неиспользуемого кода во время компоновки |
динамический | ||
Установка rpath на основе флагов -L |
динамический | ||
При компоновке исполняемого файла вставляет флаг |
динамический | ||
Добавить ⟨dir⟩ в список каталогов, которые просматриваются для поиска библиотек |
динамический | ||
Подключение библиотеки ⟨lib⟩ |
динамический | ||
Установление главного модуля и функции |
динамический | ||
Не предполагать, что эта программа содержит |
динамический | ||
Не инструктировать линковщик о создании позиционно-независимого исполняемого файла. |
динамический | ||
Не выводить предложения RTS по подключению с |
динамический | ||
Выставление пакета ⟨pkg⟩ |
динамический | ||
Инструктирование линковщика о создании позиционно-независимого исполняемого файла. |
динамический | ||
Инструктирует линковщик добавить все символы, а не только используемые, в таблицу динамических символов. В настоящее время поддерживается только Linux и Windows/MinGW32. Это эквивалентно использованию |
динамический | ||
Управление возможностью настройки поведения среды выполнения через командные флаго и переменную среды |
динамический | ||
Генерация общей библиотеки (в отличие от исполняемого файла) |
динамический | ||
Использование однопоточной среды выполнения |
динамический | ||
Использование статических библиотек Haskell |
динамический | ||
Генерация автономной статической библиотеки (в отличие от исполняемого файла). Это полезно при кросс-компиляции. Библиотека вместе со всеми ее зависимостями находится в одной статической библиотеке, к которой можно обратиться. |
динамический | ||
Использование многопоточной среды выполнения |
динамический | ||
Установление параметров среды выполнения по умолчанию в ⟨opts⟩. |
динамический |
5.6.22. Параметры плагинов
Более подробная информация в Плагины компилятора
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Очистить список активных плагинов |
динамический | ||
Загрузить предварительно скомпилированный статический плагин из внешней библиотеки |
динамический | ||
Передать аргументы модулю плагина; модуль должен быть указан с помощью |
динамический | ||
Доверять используемым плагинам и больше не отмечать скомпилированный модуль как небезопасный |
динамический | ||
Загрузить плагин, экспортированный данным модулем |
динамический | ||
Скрыть все пакеты плагинов по умолчанию |
динамический | ||
Открыть ⟨pkg⟩ для плагинов |
динамический | ||
Открыть ⟨pkg-id⟩ для плагинов |
динамический |
5.6.23. Замена фаз
Более подробная информация в Замена программы для одной или нескольких фаз
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Использовать ⟨cmd⟩ в качестве ассемблера |
динамический | ||
Использовать ⟨cmd⟩ в качестве компилятора C |
динамический | ||
Использовать ⟨cmd⟩ в качестве препроцессора C-- C |
динамический | ||
Использовать ⟨cmd⟩ в качестве компилятора C++ |
динамический | ||
Использовать ⟨cmd⟩ в качестве препроцессора (только с |
динамический | ||
Использовать ⟨cmd⟩ как команду внешнего интерпретатора. |
динамический | ||
Использовать ⟨cmd⟩ в качестве программы для вставки |
динамический | ||
Использовать ⟨cmd⟩ как препроцессор JavaScript C (только для javascript-backend) |
динамический | ||
Использовать ⟨cmd⟩ как препроцессор literate |
динамический | ||
Использовать ⟨cmd⟩ как компоновщик |
динамический | ||
Использовать ⟨cmd⟩ как LLVM ассемблер |
динамический | ||
Использовать ⟨cmd⟩ как LLVM компилятор |
динамический | ||
Использовать ⟨cmd⟩ как компоновщик при слиянии объектных файлов |
динамический | ||
Использовать ⟨cmd⟩ как LLVM оптимизатор |
динамический | ||
Использовать ⟨cmd⟩ в качестве программы для проверки mach-o dylibs на macOS |
динамический | ||
Использовать ⟨cmd⟩ как препроцессор C (только с |
динамический | ||
Использовать ⟨cmd⟩ как разделитель |
динамический | ||
Использовать ⟨cmd⟩ для встраивания манифестов в Windows. |
динамический |
5.6.24. Принудительное назначение параметров конкретным фазам
Более подробная информация в Принудительное назначение параметров конкретной фазе
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
передать ⟨option⟩ ассемблеру |
динамический | ||
передать ⟨option⟩ компилятору C |
динамический | ||
передать ⟨option⟩ препроцессору C-- C. |
динамический | ||
передать ⟨option⟩ компилятору C++ |
динамический | ||
передать ⟨option⟩ кастомному препроцессору |
динамический | ||
передать ⟨option⟩ подпроцессу интерпретатора. |
динамический | ||
передать ⟨option⟩ препроцессору JavaScript C (только для javascript-backend) |
динамический | ||
передать ⟨option⟩ препроцессору literate |
динамический | ||
передать ⟨option⟩ компоновщику |
динамический | ||
передать ⟨option⟩ LLVM ассемблеру |
динамический | ||
передать ⟨option⟩ LLVM компилятору |
динамический | ||
передать ⟨option⟩ компоновщику при слиянии объектных файлов. |
динамический | ||
передать ⟨option⟩ LLVM оптимизатору |
динамический | ||
передать ⟨option⟩ cpp (только с |
динамический | ||
передать ⟨option⟩ к |
динамический | ||
(устарело) Указать, что компоновщик поддерживает |
динамический | ||
Указать, что компоновщик поддерживает |
динамический |
5.6.25. Параметры, специфичные для платформы
Подробнее в Флаги, специфичные для платформы
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
(только x86) Включить поддержку расширений SIMD AVX |
динамический | ||
(только x86) Включить поддержку расширений SIMD AVX2 |
динамический | ||
(только x86) Включить поддержку расширений SIMD AVX512-CD |
динамический | ||
(только x86) Включить поддержку расширений SIMD AVX512-ER |
динамический | ||
(только x86) Включить поддержку расширений SIMD AVX512-F |
динамический | ||
(только x86) Включить поддержку расширений SIMD AVX512-PF |
динамический | ||
(только x86) Использовать BMI1 для операций с битами |
динамический | ||
(только x86) Использовать BMI2 для операций с битами |
динамический | ||
Использовать встроенные инструкции FMA для операций с плавающей запятой fused multiply-add |
динамический | ||
(только x86) Использовать SSE для операций с плавающей запятой |
динамический | ||
(только x86) Использовать SSE2 для операций с плавающей запятой |
динамический | ||
(только x86) Использовать SSE3 для операций с плавающей запятой |
динамический | ||
(только x86) Использовать SSE4 для операций с плавающей запятой |
динамический | ||
(только x86) Использовать SSE4.2 для операций с плавающей запятой |
динамический |
5.6.26. Параметры отладки компилятора
Подробнее в Отладка компилятора
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Проверка корректности прохода ASM |
динамический | ||
Проверка корректности прохода C-\- |
динамический | ||
Включить внутреннюю проверку корректности |
динамический | ||
Отключить связь с исходными файлами C, скомпилированными в JavaScript |
динамический | ||
Генерировать красиво отформатированный JavaScript-код вместо сжатого (компактного) кода. |
динамический | ||
Вывести окончательный ассемблерный код |
динамический | ||
Вывести конфликты регистров из модуля распределения регистров. |
динамический | ||
Вывести ассемблерный код с информацией о жизни регистров |
динамический | ||
Вывести начальный ассемблерный код |
динамический | ||
Вывести результат распределения регистров |
динамический | ||
Вывести этапы построения/вытеснения модуля распределения регистров |
динамический | ||
Вывести статистику из модуля распределения регистров. |
динамический | ||
Вывести байткод интерпретатора |
динамический | ||
Вывести код C, сгенерированный C (нелицензированным) бэкэндом. |
динамический | ||
Вывести результат анализа арифметичности вызовов. |
динамический | ||
Вывести предполагаемые веса CFG. |
динамический | ||
Вывести окончательный результат C-\- |
динамический | ||
Вывести результаты прохода анализа C-\- CAF. |
динамический | ||
Вывести результаты устранения общих блоков |
динамический | ||
Вывести результаты прохода оптимизации потока управления C-\-. |
динамический | ||
Вывести результаты прохода CPS |
динамический | ||
Вывести результат STG-в-C-\- преобразования |
динамический | ||
Вывести результаты прохода расширения таблицы информации C-\-. |
динамический | ||
Вывести результаты оптимизирующих проходов C-\- до C-\- |
динамический | ||
Вывести результаты анализа точек proc |
динамический | ||
Вывести результаты прохода карты точек proc C-\-. |
динамический | ||
Вывести исходный C-\- |
динамический | ||
Вывести результаты прохода погружения C-\-. |
динамический | ||
Вывести результаты прохода компоновки стека C-\-. |
динамический | ||
Вывести результаты прохода разделения точек proc C-\-. |
динамический | ||
Вывести результаты проходов понижения переключателей |
динамический | ||
Вывести результаты прохода расширения ThreadSanitizer для C-\-. |
динамический | ||
Записать в файлы выходные данные основных проходов конвейера C-\- |
динамический | ||
Показать выходные данные основных проходов конвейера C-\- (группированные по proc) |
динамический | ||
Вывести краткое одномерное резюме размера программы Core в конце конвейера оптимизации |
динамический | ||
Вывести подписи CPR |
динамический | ||
Вывести результаты анализа CPR |
динамический | ||
Отслеживание решателя ограничений |
динамический | ||
Вывести результаты CSE |
динамический | ||
Вывести сгенерированные данные отладки DWARF |
динамический | ||
Вывести результаты вывода |
динамический | ||
Вывести подписи верхнего уровня для запросов |
динамический | ||
Вывести результаты анализа запросов |
динамический | ||
Вывести результаты десахаризации. |
динамический | ||
Отслеживание проверяющего исчерпываемость |
динамический | ||
Вывести результаты прохода экзитификации. |
динамический | ||
Вывести всю таблицу FastString при завершении |
динамический | ||
Установить префикс имен файлов, используемых для отладочной информации. |
динамический | ||
Вывести float в выходные данные |
динамический | ||
Вывести заглушки |
динамический |
Вывод полного результата прохода ленивости |
динамический | ||
Вывести синтаксическое дерево файла hie |
динамический | ||
Псевдоним для |
динамический | ||
Отследить файлы интерфейса |
динамический | ||
Вывести встраивания, выполненные упростителем. |
динамический | ||
Вывести окончательный JavaScript-код |
динамический | ||
(устарело) Используйте |
динамический | ||
Вывести ядро с добавленными поздними центрами затрат |
динамический | ||
Вывести вывод освобождения случая |
динамический | ||
Вывести промежуточный код LLVM. |
динамический | ||
Вывести состояние базы данных отображения модулей. |
динамический | ||
Вывести вывод анализа событий |
динамический | ||
Вывести результаты оптимизационных проходов C-- в C-- |
динамический | ||
Вывести дерево разбора |
динамический | ||
Вывести вывод парсера как синтаксическое дерево |
динамический | ||
Вывести подготовленное ядро |
динамический | ||
Вывести вывод переименовывателя |
динамический | ||
Вывести вывод переименовывателя в виде синтаксического дерева |
динамический | ||
Статистика переименовывателя |
динамический | ||
Отследить переименовыватель |
динамический | ||
Отследить вычисление типов во время выполнения |
динамический | ||
Вывести информацию о срабатывании правил |
динамический | ||
Вывести подробную информацию о срабатывании правил |
динамический | ||
Вывести правила переписывания |
динамический | ||
Вывести окончательный вывод упростителя |
динамический | ||
Вывести вывод каждой итерации упростителя |
динамический | ||
Вывести статистику упростителя |
динамический | ||
Вывести сообщения отслеживания в упростителе |
динамический | ||
Вывести вывод специализатора |
динамический | ||
Вывести вывод специализатора из SpecConstr |
динамический | ||
Вывести выражения, склеенные TH, и то, к чему они приводят |
динамический | ||
Вывести вывод преобразования статических аргументов |
динамический | ||
(устарело) Псевдоним для |
динамический | ||
Показать вывод после Stg2Stg |
динамический | ||
Показать вывод последнего прохода STG. |
динамический | ||
Показать вывод CoreToStg |
динамический | ||
Показать вывод прохода вывода тегов. |
динамический | ||
Показать неарный STG |
динамический | ||
(устарело) Псевдоним для |
динамический | ||
(устарело) Псевдоним для |
динамический | ||
Вывести вывод типероператора |
динамический | ||
Вывести вывод типероператора в виде синтаксического дерева |
динамический | ||
Отследить типероператор |
динамический | ||
Вывести код, снабженный инструментарием HPC (Наблюдение за покрытием кода). |
динамический | ||
Вывести статистику времени выполнения и выделения памяти по каждому проходу |
динамический | ||
Вывести в файлы вместо stdout |
динамический | ||
Вывести сигнатуры типов |
динамический | ||
Вывести все рассматриваемые встраивания |
динамический | ||
Вывести объединённые шаблоны представлений |
динамический | ||
Вывести вывод оболочки для рабочих процессов |
динамический | ||
Показать статистику использования быстрых строк по завершении |
динамический |
Печать значений типа |
динамический | ||
Начать выделение памяти |
динамический | ||
Вывести информацию о решениях по встраиванию. |
динамический | ||
Показать статистику по информации IPE. |
динамический | ||
Включать комментарии в парсер. Полезно в сочетании с |
динамический | ||
Включить внутреннюю проверку на корректность. |
динамический | ||
Включить несколько общих внутренних проверок на корректность. |
динамический | ||
Подавить нежелательный отладочный вывод. |
динамический | ||
Не генерировать связи для методов Typeable. |
динамический | ||
Выводить выражения single alternative case как строгие let-выражения. |
динамический | ||
Установить ширину отладочного вывода. Например, |
динамический | ||
Включить отладочную печать (более подробный вывод). |
динамический | ||
Установить глубину вывода выражений в сообщениях об ошибках. |
динамический | ||
Вывести информацию о потенциальном применении правил. |
динамический | ||
Вывести имя каждого этапа компиляции по мере его выполнения. |
динамический | ||
Проверка на корректность этапа STG. |
динамический | ||
В отладочных выводах подавить все (кроме уникальных значений), что можно подавить. |
динамический | ||
Подавить вывод типов принуждения в Core-дампах для сокращения вывода. |
динамический | ||
Подавить вывод принуждений в Core-дампах для сокращения вывода. |
динамический | ||
Подавить вывод статистики размеров Core по каждой связи (с версии 9.4). |
динамический | ||
Подавить расширенную информацию об идентификаторах, где они связаны. |
динамический | ||
Подавить вывод префиксов квалификации модулей. |
динамический | ||
Подавить вывод списков свободных переменных замыканий в выводе STG. |
динамический | ||
Подавить аннотации rep на аргументах STG. |
динамический | ||
Подавить «ticks» в выводе красивого принтера. |
динамический | ||
Подавить временные метки в дампах. |
динамический | ||
Подавить применение типов. |
динамический | ||
Подавить типы сигнатур. |
динамический | ||
Подавить вывод стабильного развертывания переменной в месте ее привязки. |
динамический | ||
Подавить вывод уникальных значений в отладочном выводе (более удобное использование |
динамический | ||
Подавить вывод видов переменных. |
динамический | ||
Подтвердить правильность результатов вывода тегов во время выполнения. |
динамический | ||
Вывести значения обработанных TH-деклараций в файлы |
динамический | ||
Установить приращение для сгенерированных |
динамический | ||
Показать вывод каждого этапа преобразования core-to-core. |
динамический | ||
Показать вывод каждого этапа преобразования STG-to-STG. |
динамический | ||
Компилировать с проверками выравнивания для всех обращений к таблице информации. |
динамический | ||
Добавить альтернативу по умолчанию |
динамический | ||
Ввести проверки границ для примитивных операций над массивами. |
динамический | ||
Включить инструменты ThreadSanitizer для проверки доступа к памяти. |
динамический | ||
Сгенерировать новую таблицу информации для каждого использования конструктора данных. |
динамический | ||
Включить метку используемых путей в расширение файлов дампов. |
динамический | ||
Встроить в сгенерированный бинарник таблицу поиска, которая сопоставляет адрес таблицы информации с исходной позицией, откуда произошло замыкание. |
динамический | ||
Включить таблицы информации без информации о местоположении в исходном коде в таблицу поиска таблиц информации. |
динамический | ||
Включить таблицы информации для |
динамический | ||
Указать LLVM заполнять неинициализированные регистры STG мусорными значениями. |
динамический |
Исключить таблицы информации без информации о расположении исходного кода из карты таблиц информации. |
динамический | ||
Исключить таблицы информации о замыканиях |
динамический | ||
Генерировать |
динамический | ||
Выравнивание функций по заданному пределу. |
динамический | ||
Отключить оптимизации с интерпретатором |
динамический | ||
Генерировать отладочную информацию DWARF в скомпилированных объектных файлах. ⟨n⟩ может быть 0, 1 или 2, с более высокими числами, генерирующими более богатый вывод. Если ⟨n⟩ опущено, предполагается уровень 2. |
динамический |
5.6.27. Дополнительные параметры компилятора
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Вывести циклы модулей |
динамический | ||
Преобразовать ошибки переменных, вышедших из области видимости, в предупреждения. Подразумевается |
динамический | ||
Преобразовать ошибки типов в предупреждения, откладывая ошибку до времени выполнения. Подразумевает |
динамический | ||
Преобразовать ошибки типовых отверстий в предупреждения, откладывая ошибку до времени выполнения. Подразумевается |
динамический | ||
Запустить интерпретируемый код в отдельном процессе |
динамический | ||
Использовать кэш при сокращении применений семейств типов |
динамический | ||
Устарело. Включить большинство расширений языка; см. Управление изданиями и расширениями для точного указания, какие именно. |
динамический | ||
Отключить Безопасный Haskell |
динамический | ||
(Только GHC как компилятор C) Используйте этот |
динамический | ||
Установить минимальный размер кучи до ⟨size⟩ |
динамический | ||
Модуль, который не должен быть виден за пределами своего блока. |
динамический | ||
При компиляции с |
динамический | ||
При компиляции с |
динамический | ||
Модуль, который должен быть повторно экспортирован из этого блока. |
динамический | ||
Имя пакета, к которому этот модуль будет принадлежать при установке. |
динамический | ||
Указать параметры для сборки конкретного блока. |
динамический | ||
Указать директорию, в которой ожидается компиляция блока. |
динамический |
© 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