7.6. Справочник по флагам
Этот раздел содержит краткий справочник по командным флагам GHC. Для каждого флага мы также указываем его режим/динамический статус (см. Динамические и режимные параметры), а также противоположный флаг (если он доступен).
7.6.1. Параметры подробности
Подробнее см. Параметры подробности
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
по умолчанию: выключено. Включает/выключает вывод уточнений, где одна или несколько дыр абстрактны. |
динамический | ||
Откладывать и группировать диагностические сообщения по степени серьезности |
динамический | ||
Использовать цвета в сообщениях об ошибках |
динамический | ||
Показывать ли фрагменты исходного кода |
динамический | ||
Выводить полный размах в сообщениях об ошибках |
динамический | ||
скрыть пути к модулям и объектам исходного кода |
динамический | ||
Продолжать компиляцию насколько возможно при ошибках |
динамический | ||
по умолчанию: 6. Устанавливает максимальное количество подходящих дыр уточнения для типизированных дыр, которые будут отображаться в сообщениях об ошибках типов. |
динамический | ||
по умолчанию: 6. Устанавливает максимальное количество связей для отображения в сообщениях об ошибках типов. |
динамический | ||
по умолчанию: 6. Устанавливает максимальное количество подходящих дыр для типизированных дыр для отображения в сообщениях об ошибках типов. |
динамический | ||
Отключает отображение списка подходящих дыр для типизированных дыр в сообщениях об ошибках типов. |
динамический | ||
Отключает сортировку списка подходящих дыр для типизированных дыр в сообщениях об ошибках типов. |
динамический | ||
Отображать несовместимости уравнений в закрытых семействах типов |
динамический | ||
Различать отношения равенства при печати |
динамический | ||
В сообщениях об ошибках типов также печатать типы, расширенные синонимами типов. |
динамический | ||
Выводить принуждения в типах |
динамический | ||
Выводить явное |
динамический | ||
Выводить явные квантификаторы типов и аргументы типов в типах. См. также |
динамический | ||
Выводить |
динамический | ||
отображать все доступные экземпляры в сообщениях об ошибках типов |
динамический | ||
Печать дополнительной информации из проверки типов. |
динамический | ||
Использование синтаксиса Юникода при печати выражений, типов и видов. См. также |
динамический | ||
по умолчанию: выключено. Устанавливает уровень уточнения подходящих дыр уточнения, где уровень |
динамический | ||
Вывод ошибок в обратном порядке |
динамический | ||
Включает/выключает отображение документации подходящих дыр в выводе. |
динамический | ||
Показывать ограничения при сообщении о типизированных дырах. |
динамический | ||
Включает/выключает отображение типа дополнительных дыр в уточнениях дыр. |
динамический | ||
Включает/выключает отображение происхождения подходящих дыр в выводе. |
динамический | ||
Включает/выключает отображение применения типа подходящих дыр в выводе. |
динамический | ||
Включает/выключает отображение того, какой тип принимает каждая квантифицированная переменная в подходящей дыре. |
динамический | ||
Включает/выключает отображение типа подходящих дыр в выводе. |
динамический | ||
Упростить список подходящих дыр, не отображая происхождение и применения типов предложений. |
динамический | ||
Сводка временных статистик для GHC (то же, что и |
динамический | ||
режим подробного отображения (эквивалентно |
динамический |
установить уровень подробности |
динамический |
7.6.2. Альтернативные режимы работы
Подробнее в Режимы работы
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
запустить GHC с данным плагином передней части; см. Плагины передней части для получения подробностей. |
режим | ||
Отобразить справку |
режим | ||
отобразить информацию о компиляторе |
режим | ||
Интерактивный режим — обычно используется путём простого запуска |
режим | ||
Сборка многомодульной Haskell-программы, автоматически определяя зависимости. Вероятно, намного проще и быстрее, чем использование |
режим | ||
Режим создания DLL (только для Windows) |
режим | ||
отобразить версию GHC (только числовую) |
режим | ||
отобразить каталог библиотек GHC |
режим | ||
отобразить содержимое файла интерфейса. |
режим | ||
отобразить поддерживаемые параметры командной строки |
режим | ||
отобразить поддерживаемые расширения языка |
режим | ||
отобразить версию GHC |
режим | ||
Оценить |
режим | ||
сгенерировать информацию о зависимостях, подходящую для использования в |
режим |
7.6.3. Какие фазы запускать
Подробнее в Режим пакетной компиляции
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Остановка после генерации C (файл |
режим | ||
Остановка после генерации объектного (файл |
режим | ||
Остановка после предварительной обработки (файл |
режим | ||
Включить использование предварительного процессора (установлено с |
динамический | ||
Остановка после генерации ассемблерного файла (файл |
режим | ||
Переопределить поведение по умолчанию для исходных файлов |
динамический |
7.6.4. Перенаправление вывода
Подробнее в Перенаправление вывода компиляции
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Считать |
динамический | ||
Вывести циклы модулей |
динамический | ||
Использовать ⟨file⟩ в качестве файла makefile |
динамический | ||
Создать зависимости, которые объявляют, что файлы с суффиксом |
динамический | ||
перенаправить файлы вывода |
динамический | ||
установить суффикс, используемый для промежуточных файлов C |
динамический | ||
установить каталог для файлов интерфейса |
динамический | ||
установить каталог для расширенных файлов интерфейса |
динамический | ||
установить суффикс, используемый для расширенных файлов интерфейса |
динамический | ||
установить суффикс, используемый для файлов интерфейса |
динамический | ||
Включить зависимости предварительного процессора |
динамический | ||
Рассматривать модули, импортированные из пакетов, как нестабильные |
динамический | ||
установить имя выходного файла |
динамический | ||
установить каталог для объектных файлов |
динамический | ||
установить имя файла, в который должен быть помещён интерфейс |
динамический | ||
установить суффикс выходного файла |
динамический | ||
установить выходной каталог |
динамический | ||
перенаправить файлы заглушек FFI |
динамический |
7.6.5. Сохранение промежуточных файлов
Подробнее в Сохранение промежуточных файлов
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Сохранить промежуточные |
динамический | ||
Сохранить промежуточные |
динамический | ||
Сохранить промежуточные |
динамический | ||
Сохранить промежуточные LLVM |
динамический | ||
Сохранить промежуточные |
динамический | ||
Сохранить промежуточные |
динамический | ||
Сохранить все промежуточные временные файлы. |
динамический |
7.6.6. Временные файлы
Подробнее в Перенаправление временных файлов
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Установить каталог для временных файлов |
динамический |
7.6.7. Поиск импортов
Подробнее в Путь поиска
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Очистить список каталогов импорта |
динамический | ||
Добавить ⟨dir⟩, ⟨dir2⟩ и т. д. в путь импорта |
динамический |
7.6.8. Параметры файлов интерфейса
Подробнее в Другие параметры, связанные с файлами интерфейса
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
См. Режимы работы. |
режим | ||
Вывести новый интерфейс в стандартный вывод |
динамический | ||
Показать различия по сравнению со старым интерфейсом |
динамический | ||
Вывести минимальный набор импортов |
динамический |
7.6.9. Проверка повторной компиляции
Подробнее в Проверяющий повторной компиляции
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Отключить проверку повторной компиляции. Это подразумевается любым |
динамический | ||
Не перекомпилировать модули только для соответствия изменениям флагов HPC. Это особенно полезно для предотвращения перекомпиляции при использовании GHCi, и по умолчанию включено для GHCi. |
динамический | ||
Не перекомпилировать модули только для соответствия изменениям флагов оптимизации. Это особенно полезно для предотвращения перекомпиляции при использовании GHCi, и по умолчанию включено для GHCi. |
динамический |
7.6.10. Параметры режима интерактивной работы
Подробнее в Файлы .ghci и .haskeline
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
|
динамический | |||
|
динамический | |||
Установите количество записей, которые GHCi сохраняет для |
динамический | ||
(Только для отладки) проверка утечек памяти при загрузке новых модулей в GHCi. |
динамический | ||
Использовать текущую директорию для файла истории команд GHCi |
динамический | ||
Больше не устанавливать специальную переменную |
динамический | ||
|
динамический | |||
Инструктировать |
динамический | ||
Показывать имена модулей, загруженных GHCi после команды |
динамический | ||
Чтение дополнительных файлов |
динамический | ||
Отключить чтение файлов |
динамический | ||
|
динамический |
7.6.11. Пакеты
Более подробные сведения в Пакеты
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Очистить стек базы данных пакетов. |
динамический | ||
Открыть пакет ⟨pkg⟩ и установить его как недоверенный. См. Безопасный Haskell. |
динамический | ||
По умолчанию не доверять всем пакетам. См. Безопасный Haskell. |
динамический | ||
Включить требование для доверенных пакетов Безопасный Haskell для надежных модулей. |
динамический | ||
Добавить глобальную базу данных пакетов в стек. |
динамический | ||
Скрыть все пакеты по умолчанию |
динамический | ||
Скрыть пакет ⟨pkg⟩ |
динамический | ||
Пропустить пакет ⟨pkg⟩ |
динамический | ||
Не автоматически подключать пакеты base и rts. |
динамический | ||
Удалить глобальную базу данных пакетов из стека. |
динамический | ||
Удалить пользовательскую базу данных пакетов из стека. |
динамический | ||
Открыть пакет ⟨pkg⟩ |
динамический | ||
Добавить ⟨file⟩ в стек базы данных пакетов. |
динамический | ||
Использовать указанную среду пакетов. |
динамический | ||
Открыть пакет по id ⟨unit-id⟩ |
динамический | ||
Компилировать как часть единицы (т.е. пакета) ⟨unit-id⟩ |
динамический | ||
Открыть пакет ⟨pkg⟩ и установить его как доверенный. См. Безопасный Haskell. |
динамический | ||
Добавить пользовательскую базу данных пакетов в стек. |
динамический |
7.6.12. Параметры языка
Параметры языка можно включить либо с помощью параметра командной строки -Xblah, либо с помощью псевдокоманды {-# LANGUAGE blah #-} в самом файле. См. Параметры языка.
7.6.13. Предупреждения
Более подробные сведения в Предупреждения и проверка корректности
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Преобразует ошибки переменных, выходящих за область видимости, в предупреждения. Подразумевается |
динамический | ||
Преобразует ошибки типов в предупреждения, откладывая ошибку до времени выполнения. Подразумевает |
динамический | ||
Преобразует ошибки типизированных дыр в предупреждения, откладывая ошибку до времени выполнения. Подразумевается |
динамический | ||
Генерирует предупреждения для встроек Template Haskell. |
динамический | ||
Предлагает исправления для неправильно написанных имён. |
динамический | ||
мягкий лимит на количество параллельных моделей, которые должна проверять система проверки соответствия шаблонов для правила соответствия |
динамический | ||
отображает, к какой группе относится выведенное предупреждение. |
динамический | ||
использовать генератор кода C |
динамический | ||
включить стандартные предупреждения |
динамический | ||
отключить все предупреждения |
динамический | ||
включить почти все предупреждения (подробности в Предупреждения и проверка корректности) |
динамический | ||
выводить предупреждение, когда специализация любой перегруженной функции терпит неудачу. |
динамический | ||
включить предупреждения о будущей совместимости (подробности в Предупреждения и проверка корректности) |
динамический | ||
Сообщать о неквалифицированных импортах основных библиотек, которые, как ожидается, вызовут проблемы совместимости в будущих версиях. |
динамический | ||
предупреждать при использовании директивы |
динамический | ||
Выводить предупреждения, когда ошибки переменных, выходящих за область видимости, откладываются до времени выполнения. См. |
динамический | ||
Выводить предупреждения, когда включены отложенные ошибки типов. Этот параметр включен по умолчанию. См. |
динамический | ||
выводить предупреждения об использовании устаревших командных флагов |
динамический | ||
выводить предупреждения об использовании функций и типов, имеющих предупреждения или устаревшие псевдонимы. Псевдоним для |
динамический | ||
предупреждать о по умолчанию derive, когда используются как |
динамический | ||
выводить предупреждение об сомнительных экспортах |
динамический | ||
выводить предупреждение об сомнительных внешних импортах |
динамический | ||
выводить предупреждение об сомнительных импортах |
динамический | ||
выводить предупреждение, когда ограничение дублируется в сигнатуре типа |
динамический | ||
выводить предупреждение, когда сущность экспортируется несколько раз |
динамический | ||
выводить предупреждение о пустых перечислениях |
динамический | ||
сделать предупреждения фатальными |
динамический |
включить все предупреждения, поддерживаемые GHC |
динамический | ||
(устарело) предупреждать, когда файл |
динамический | ||
предупреждать об использовании численных преобразований Prelude, которые, вероятно, являются тождественными (и, следовательно, могут быть опущены) |
динамический | ||
предупреждать, когда переменные типа неявно квантифицируются. |
динамический | ||
предупреждать, когда Prelude неявно импортируется |
динамический | ||
предупреждать об недоступном коде |
динамический | ||
предупреждать, когда сопоставление шаблонов может завершиться неудачей |
динамический | ||
предупреждать, когда обновление записи может завершиться неудачей |
динамический | ||
предупреждать, когда сопоставление шаблонов в лямбда-выражении или связанном шаблоне может завершиться неудачей |
динамический | ||
Предупреждать, если правило переписывания RULE может не сработать, потому что функция может быть встроена, прежде чем правило получит возможность сработать. См. Как правила взаимодействуют с директивами INLINE/NOINLINE. |
динамический | ||
Предупреждать, когда GHCi не может загрузить общую библиотеку. |
динамический | ||
предупреждать, когда специализация импортированной перегруженной функции завершается неудачей. |
динамический | ||
предупреждать, когда в предложении deriving отсутствует стратегия deriving |
динамический | ||
предупреждать, когда в объявлении модуля не указаны все экспорты |
динамический | ||
предупреждать о функциях верхнего уровня без сигнатур, только если они экспортированы. имеет приоритет над -Wmissing-signatures |
динамический | ||
(устарело) предупреждать о функциях верхнего уровня без сигнатур, только если они экспортированы. имеет приоритет над -Wmissing-signatures |
динамический | ||
предупреждать, когда поля записи не инициализированы |
динамический | ||
предупреждать, когда импортирован домашний модуль, но не указан в командной строке. Полезно для cabal, чтобы убедиться, что GHC не подберет модули, не указанные ни в |
динамический | ||
предупреждать, когда в объявлении импорта не указаны все имена, введенные в область видимости |
динамический | ||
предупреждать о полиморфных локальных связях без сигнатур |
динамический | ||
(устарело) предупреждать о полиморфных локальных связях без сигнатур |
динамический | ||
предупреждать, когда методы класса не определены |
динамический | ||
Предупреждать, когда используется шаблон, допускающий ошибку, в блоке do, у которого нет экземпляра |
динамический | ||
предупреждать, когда псевдонимы шаблонов не имеют сигнатур типов |
динамический | ||
предупреждать о функциях верхнего уровня без сигнатур |
динамический | ||
предупреждать, когда применяется ограничение мономорфизма |
динамический | ||
предупреждать, когда имена затеняются |
динамический | ||
Отключает все предупреждения, включенные с помощью |
динамический | ||
предупреждать, когда экземпляры |
динамический |
выводить предупреждение, когда у экземпляров |
динамически | ||
выводить предупреждение, когда у экземпляров |
динамически | ||
выводить предупреждение, когда модуль содержит объявления оторванных экземпляров или правила переписывания |
динамически | ||
выводить предупреждение о литералах, которые переполнят свой тип |
динамически | ||
выводить предупреждение о перекрывающихся шаблонах |
динамически | ||
выводить предупреждение при определении частичного поля записи. |
динамически | ||
выводить предупреждение о пробелах в частичных сигнатурах типов, когда |
динамически | ||
Принудительное выведение предупреждений о излишних ограничениях в сигнатурах типов. |
динамически | ||
Выводить предупреждение об использовании шаблонов-диких карт в записях, когда дикая карта не связывает никаких шаблонов. |
динамически | ||
выводить предупреждение, если компилируемый модуль считается безопасным. |
динамически | ||
выводить предупреждение, если |
динамически | ||
Предупреждать о ограничениях класса в сигнатуре типа, которые можно упростить с помощью объявления экземпляра верхнего уровня. |
динамически | ||
выводить предупреждение об отсутствии пробела перед вторым аргументом инфиксного определения |
динамически | ||
выводить предупреждение о привязке оператора типа |
динамически | ||
выводить предупреждение, когда |
динамически | ||
выводить предупреждение, если в исходном файле есть символы табуляции |
динамически | ||
выводить предупреждение, если модуль, который компилируется, помечен как |
динамически | ||
выводить предупреждение, когда происходит применение по умолчанию |
динамически | ||
Выводить предупреждения, когда ошибки типизированных отверстий откладываются до времени выполнения. См. |
динамически | ||
выводить предупреждение при привязке шаблона к неподнятой переменной, которая не является ни голой, ни с восклицательным знаком. |
динамически | ||
выводить предупреждение об использовании директив, которые GHC не распознает |
динамически | ||
выводить предупреждение, если на командной строке встречен нераспознанный |
динамически | ||
выводить предупреждение, если компилируемый модуль считается небезопасным. См. Безопасный Haskell |
динамически | ||
выводить предупреждение об использовании неподдерживаемой конвенции вызова |
динамически | ||
Выводить предупреждение при использовании |
динамически | ||
выводить предупреждение, если продвинутые конструкторы не отмечены |
динамически |
предупреждать о связываниях, которые не используются. Псевдоним для |
динамический | ||
предупреждать о связываниях do, которые, похоже, выбрасывают значения типов, отличных от |
динамический | ||
предупреждать о переменных типа в пользовательских |
динамический | ||
предупреждать об ненужных импортах |
динамический | ||
предупреждать о локальных связываниях, которые не используются |
динамический | ||
предупреждать о переменных в шаблонах, которые не используются |
динамический | ||
предупреждать, когда пакет запрашивается в командной строке, но никогда не загружался. |
динамический | ||
предупреждать о связываниях шаблонов, которые не используются |
динамический | ||
Предупреждать о совпадениях с дикими картами записей, когда ни одна из связанных переменных не используется. |
динамический | ||
предупреждать о связываниях верхнего уровня, которые не используются |
динамический | ||
предупреждать о неиспользуемых переменных типа, которые возникают из шаблонов в экземплярах семейства типов и семейства данных |
динамический | ||
сделать предупреждения не фатальными |
динамический | ||
предупреждать об использовании функций и типов, имеющих предупреждения или устаревшие прагмы |
динамический | ||
предупреждать о связываниях do, которые, похоже, выбрасывают монадические значения, которые вы должны были связать вместо этого |
динамический |
7.6.14. Уровни оптимизации
Эти параметры описаны более подробно в Оптимизация (улучшение кода).
См. Индивидуальные оптимизации для списка оптимизаций, включённых на уровне 1 и уровне 2.
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Включить оптимизации уровня 1 |
динамический | ||
Отключить оптимизации (по умолчанию) |
динамический | ||
Включить оптимизации уровня 2 |
динамический | ||
Любой -On, где n > 2, эквивалентен -O2. |
динамический |
7.6.15. Индивидуальные оптимизации
Эти параметры описаны более подробно в -f*: независимые от платформы флаги. Если флаг подразумевается -O , то он также подразумевается -O2 (если описание флага явно не говорит обратное). Если флаг подразумевается -O0 только тогда флаг не подразумевается -O и -O2.
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Включить обход на уровне ассемблера. Подразумевается флагом |
динамический | ||
по умолчанию: 500К. Настройка генератора ассемблера для двоичных блоков. |
динамический | ||
Использовать новый алгоритм размещения блоков на основе cfg. |
динамический | ||
Игнорировать веса cfg при размещении кода. |
динамический | ||
Устанавливает веса рёбер, используемые новым алгоритмом размещения кода. |
динамический | ||
Включить оптимизацию по арности вызовов. Подразумевается флагом |
динамический | ||
Включить свёртку констант в выражениях case. Подразумевается флагом |
динамический | ||
Включить слияние case. Подразумевается флагом |
динамический | ||
Включить удаление общих блоков Cmm. Подразумевается флагом |
динамический | ||
Включить sinking в Cmm. Подразумевается флагом |
динамический | ||
Включить анализ CPR в анализаторе запроса. Подразумевается флагом |
динамический | ||
Включить специализацию перегруженных функций, импортированных из других модулей. |
динамический | ||
Включить удаление общих подвыражений. Подразумевается флагом |
динамический | ||
Сделать выражения со словарями для оптимизатора кажущимися дешёвыми. |
динамический | ||
Сделать словари строгими |
динамический | ||
Использовать специальный преобразователь запроса для селекторов словарей. Включен по умолчанию. |
динамический | ||
Включить eta-редукцию. Подразумевается флагом |
динамический | ||
Включить lambda eta-расширение. Включен по умолчанию. |
динамический | ||
Включить жадный blackholing |
динамический | ||
Включить все правила переписывания (включая правила, сгенерированные автоматической специализацией перегруженных функций). Подразумевается флагом |
динамический | ||
Включить избыточную промежуточную точность |
динамический | ||
Включает оптимизацию exitification. Подразумевается флагом |
динамический | ||
Открыть все развёртывания, даже для очень больших или рекурсивных функций. |
динамический | ||
Включить преобразование float-in. Подразумевается флагом |
динамический | ||
Включить полную ленивость (связанные переменные двигаются наружу). Подразумевается флагом |
динамический | ||
Разрешить worker-wrapper преобразовывать замыкания функций в лямбды, если функция не использует ни один из своих аргументов. Отключено по умолчанию. |
динамический | ||
Игнорировать утверждения в исходном коде. Подразумевается флагом |
динамический | ||
Игнорировать директивы в интерфейсных файлах. Подразумевается только флагом |
динамический |
Запустить повторный анализ спроса в конце этапа упрощения |
динамический | ||
Запустить поздний этап специализации |
динамический | ||
Включить преобразование liberate-case. Подразумевается |
динамический | ||
по умолчанию: 2000. Установить порог размера для преобразования liberate-case в ⟨n⟩ |
динамический | ||
Передача векторизованных значений в регистры векторов для вызовов функций |
динамический | ||
Преобразовывать насыщенные рекурсивные вызовы хвостовой рекурсии в локальные переходы в сгенерированном ассемблере. Подразумевается |
динамический | ||
по умолчанию: 128. Установить максимальный размер выделений массивов встраивания в ⟨n⟩ байт (по умолчанию: 128). |
динамический | ||
по умолчанию: 32. Встраивать вызовы |
динамический | ||
по умолчанию: 32. Встраивать вызовы |
динамический | ||
по умолчанию: 4. Установить максимальное количество итераций для упростителя. |
динамический | ||
по умолчанию: 4. Установить максимальное количество шаблонов для отображения в предупреждениях о неполных. |
динамический | ||
по умолчанию: 10. Если у рабочего есть столько аргументов, больше ни один из них не будет распаковываться. |
динамический | ||
Отключить оптимизатор приведения типов |
динамический | ||
Отключить предварительное встраивание |
динамический | ||
Отключить хитрость состояния, в которой любая лямбда с маркером реального состояния в качестве аргумента считается однократной. Следовательно, встраивание вещей внутри нее допустимо. |
динамический | ||
Не генерировать интерфейсные прагмы. Подразумевается только |
динамический | ||
Пропускать проверки кучи, когда не выполняется выделение памяти. |
динамический | ||
Использовать более медленный, но лучший алгоритм для ApplicativeDo |
динамический | ||
Сделать GHC более точным в отношении обработки значений nil (но см. также |
динамический | ||
Использовать алгоритм распределения регистров по принципу окраски графа для распределения регистров в генераторе кода для нативного кода. Подразумевается |
динамический | ||
Использовать итеративный алгоритм распределения регистров по принципу окраски графа в генераторе кода для нативного кода. |
динамический | ||
по умолчанию: 100. Установить процентный коэффициент для тиков упростителя. |
динамический | ||
по умолчанию: 2. Установить количество фаз для упростителя. Игнорируется при |
динамический | ||
При решении ограничений попытаться с оптимизацией решить надклассы, используя доступные словари. |
динамический | ||
Включить преобразование SpecConstr. Подразумевается |
динамический | ||
по умолчанию: 3.* Установить в ⟨n⟩ максимальное количество специализаций, которые будут созданы для любой одной функции преобразованием SpecConstr. |
динамический | ||
Специализировать вызов с явным аргументом конструктора, даже если аргумент не проверяется в теле функции |
динамический | ||
по умолчанию: 2000. Установить порог размера для преобразования SpecConstr в ⟨n⟩. |
динамический | ||
Включить специализацию перегруженных функций. Подразумевается |
динамический | ||
Включить специализацию перегруженных функций независимо от размера, если доступно развертывание |
динамический | ||
Включить преобразование статического аргумента. |
динамический | ||
Включить удаление общих подвыражений на промежуточном языке STG |
динамический |
Включить позднее поднятие лямбда-выражений в промежуточном языке STG. Подразумевается флагом |
динамический | ||
Разрешить преобразование известных вызовов в неизвестные при выполнении позднего поднятия лямбда-выражений. |
динамический | ||
Создавать функции верхнего уровня без рекурсии с не более чем <n> параметрами при выполнении позднего поднятия лямбда-выражений. |
динамический | ||
Создавать рекурсивные функции верхнего уровня с не более чем <n> параметрами при выполнении позднего поднятия лямбда-выражений. |
динамический | ||
Включить анализ строгости. Подразумевается флагом |
динамический | ||
Запустить дополнительный анализ строгости перед фазой упрощения ⟨n⟩ |
динамический | ||
Разворачивать строгие поля конструктора с представлением размером указателя. Подразумевается флагом |
динамический | ||
Разворачивать строгие поля конструктора. |
динамический | ||
По умолчанию: 750. Настройка параметров разворачивания. |
динамический | ||
По умолчанию: 30. Настройка параметров разворачивания. |
динамический | ||
По умолчанию: 60. Настройка параметров разворачивания. |
динамический | ||
По умолчанию: 1.5. Настройка параметров разворачивания. |
динамический | ||
По умолчанию: 60. Настройка параметров разворачивания. |
динамический | ||
Включить трансформацию обертки для рабочих процессов. |
динамический |
7.6.16. Параметры профилирования
Более подробная информация в Профилирование
| Флаг | Описание | Тип | Обратное действие |
|---|---|---|---|
Отключает предыдущие флаги |
динамический | ||
Отключает предыдущий флаг |
динамический | ||
Не собирать счётчики входов. |
динамический | ||
Автоматическое добавление |
динамический | ||
Автоматическое добавление |
динамический | ||
Автоматическое добавление |
динамический | ||
Автоматическое добавление |
динамический | ||
Автоматическое добавление |
динамический | ||
Включить профилирование. |
динамический | ||
|
динамический |
7.6.17. Параметры покрытия кода
Более подробная информация в Наблюдение за покрытием кода
| Флаг | Описание | Тип | Обратное действие |
|---|---|---|---|
Включить инструментирование покрытия Haskell кода. |
динамический |
7.6.18. Параметры препроцессора C
Более подробная информация в Параметры, влияющие на препроцессор C
| Флаг | Описание | Тип | Обратное действие |
|---|---|---|---|
Запустить препроцессор C над файлами исходного кода Haskell. |
динамический | ||
Определить символ в препроцессоре C. |
динамический | ||
Добавить ⟨dir⟩ в список поиска каталогов для файлов |
динамический | ||
Удалить определение символа в препроцессоре C. |
динамический |
7.6.19. Параметры генерации кода
Более подробная информация в Параметры, влияющие на генерацию кода
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Сгенерировать динамические объектные файлы также как статические объектные файлы во время компиляции |
динамический | ||
Использовать генератор кода нативного языка |
динамический | ||
Сгенерировать байткод |
динамический | ||
Сгенерировать код для связывания с динамическими библиотеками |
динамический | ||
Компилировать с помощью генератора кода LLVM |
динамический | ||
Исключить генерацию кода |
динамический | ||
Сгенерировать объектный код |
динамический | ||
Сгенерировать позиционно-независимый код (если доступно) |
динамический | ||
Сгенерировать код для позиционно-независимого исполняемого файла (если доступно) |
динамический | ||
Всегда генерировать файлы интерфейса |
динамический |
7.6.20. Опции линковки
Более подробная информация в Опции, влияющие на линковку
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Остановиться после генерации объектного ( |
режим | ||
Использовать отладочный запуск |
динамический | ||
Установить имя установки (через |
динамический | ||
Сгенерировать динамически подключаемые объектные файлы и исполняемые файлы |
динамический | ||
Выбирает один из способов поиска общих библиотек во время выполнения. |
динамический | ||
Включить трассировку событий во время выполнения |
динамический | ||
Не включать манифест в исполняемый файл (только Windows) |
динамический | ||
Не генерировать файл манифеста (только Windows) |
динамический | ||
Не генерировать библиотеку импорта для DLL (только Windows) |
динамический | ||
Только для Darwin/OS X/iOS, подключить фреймворк ⟨name⟩. Эта опция соответствует опции |
динамический | ||
Только для Darwin/OS X/iOS, добавить ⟨dir⟩ в список каталогов, просматриваемых для фреймворков. Эта опция соответствует опции |
динамический | ||
При линковке исполняемого файла это вставляет флаг |
динамический | ||
Не собирать CAFs (выражения верхнего уровня) во время выполнения |
динамический | ||
Добавить ⟨dir⟩ в список каталогов, просматриваемых для библиотек |
динамический | ||
Подключить библиотеку ⟨lib⟩ |
динамический | ||
Установить основной модуль и функцию |
динамический | ||
Не предполагать, что эта программа содержит |
динамический | ||
Не выводить предложения RTS о линковке с |
динамический | ||
Открыть пакет ⟨pkg⟩ |
динамический | ||
Инструктирует линковщик создать позиционно-независимый исполняемый файл. |
динамический | ||
Инструктирует линковщик добавить все символы, а не только используемые, в динамическую таблицу символов. В настоящее время только Linux и Windows/MinGW32. Это эквивалентно использованию |
динамический | ||
Управление возможностью настройки поведения RTS с помощью флагов командной строки и переменной окружения |
динамический | ||
Сгенерировать общую библиотеку (в отличие от исполняемого файла) |
динамический | ||
Разделить секции для удаления мертвого кода во время линковки |
динамический | ||
Использовать статические библиотеки Haskell |
динамический | ||
Сгенерировать автономную статическую библиотеку (в отличие от исполняемого файла). Это полезно при кросс-компиляции. Библиотека вместе со всеми ее зависимостями оказывается в одной статической библиотеке, к которой можно обратиться. |
динамический | ||
Использовать многопоточную среду выполнения |
динамический | ||
Установить параметры RTS по умолчанию на ⟨opts⟩. |
динамический |
7.6.21. Опции плагинов
Более подробная информация в Плагины компилятора
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Очистить список активных плагинов |
динамический | ||
Передать аргументы модулю плагина; модуль должен быть указан с помощью |
динамический | ||
Доверять используемым плагинам и больше не отмечать скомпилированный модуль как небезопасный |
динамический | ||
Загрузить плагин, экспортированный данным модулем |
динамический | ||
Скрыть все пакеты плагинов по умолчанию |
динамический | ||
Экспонировать ⟨pkg⟩ для плагинов |
динамический | ||
Экспонировать ⟨pkg-id⟩ для плагинов |
динамический |
7.6.22. Замена фаз
Подробнее в Замена программы для одной или нескольких фаз
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Использовать ⟨cmd⟩ в качестве ассемблера |
динамический | ||
Использовать ⟨cmd⟩ в качестве компилятора C |
динамический | ||
Использовать ⟨cmd⟩ в качестве генератора DLL |
динамический | ||
Использовать ⟨cmd⟩ в качестве препроцессора (только с |
динамический | ||
Использовать ⟨cmd⟩ в качестве команды внешнего интерпретатора. |
динамический | ||
Использовать ⟨cmd⟩ в качестве препроцессора лит-текста |
динамический | ||
Использовать ⟨cmd⟩ в качестве компоновщика |
динамический | ||
Использовать ⟨cmd⟩ в качестве компилятора LLVM |
динамический | ||
Использовать ⟨cmd⟩ в качестве команды для libtool (только с |
динамический | ||
Использовать ⟨cmd⟩ в качестве компоновщика при объединении объектных файлов |
динамический | ||
Использовать ⟨cmd⟩ в качестве оптимизатора LLVM |
динамический | ||
Использовать ⟨cmd⟩ в качестве препроцессора C (только с |
динамический | ||
Использовать ⟨cmd⟩ в качестве разделителя |
динамический | ||
Использовать ⟨cmd⟩ в качестве программы для встраивания манифестов в Windows. |
динамический |
7.6.23. Принудительное применение параметров к определённым фазам
Подробнее в Принудительное применение параметров к определённой фазе
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
передать ⟨option⟩ ассемблеру |
динамический | ||
передать ⟨option⟩ компилятору C |
динамический | ||
передать ⟨option⟩ компилятору C++ |
динамический | ||
передать ⟨option⟩ генератору DLL |
динамический | ||
передать ⟨option⟩ пользовательскому препроцессору |
динамический | ||
передать ⟨option⟩ подпроцессу интерпретатора. |
динамический | ||
передать ⟨option⟩ препроцессору лит-текста |
динамический | ||
передать ⟨option⟩ компоновщику |
динамический | ||
передать ⟨option⟩ компилятору LLVM |
динамический | ||
передать ⟨option⟩ компоновщику при объединении объектных файлов. |
динамический | ||
передать ⟨option⟩ оптимизатору LLVM |
динамический | ||
передать ⟨option⟩ cpp (только с |
динамический | ||
передать ⟨option⟩ |
динамический |
7.6.24. Параметры, специфичные для платформы
Подробнее в Параметры, специфичные для платформы
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
(только x86) Использовать BMI2 для операций по обработке битов |
динамический | ||
(только x86) Использовать SSE2 для операций с плавающей точкой |
динамический | ||
(только x86) Использовать SSE4.2 для операций с плавающей точкой |
динамический |
7.6.25. Параметры отладки компилятора
Подробнее в Отладка компилятора
| Флаг | Описание | Тип | Обратное |
|---|---|---|---|
Проверка корректности C-- |
динамический | ||
Включить внутреннюю проверку корректности |
динамический | ||
Вывести конечный ассемблерный код |
динамический | ||
Вывести результат прохода расширения синтетических инструкций. |
динамический | ||
Вывести ассемблерный код с информацией о жизни регистров |
динамический | ||
Вывести исходный ассемблерный код |
динамический | ||
Вывести результат распределения регистров |
динамический | ||
Вывести этапы построения/вытеснения алгоритма распределения регистров |
динамический | ||
Вывести статистику распределения регистров. |
динамический | ||
Вывести байт-код интерпретатора |
динамический | ||
Вывести предполагаемые веса CFG. |
динамический | ||
Вывести конечный C-- код |
динамический | ||
Вывести результаты прохода анализа C-- CAF. |
динамический | ||
Вывести результаты удаления общих блоков |
динамический | ||
Вывести результаты прохода оптимизации потока управления C--. |
динамический | ||
Вывести результаты прохода CPS. |
динамический | ||
Вывести результат преобразования STG в C-- |
динамический | ||
Вывести результаты прохода дополнения таблицы информации C--. |
динамический | ||
Вывести результат анализа точек вызова. |
динамический | ||
Вывести результаты прохода отображения точек вызова C--. |
динамический | ||
Вывести исходный C-- код |
динамический | ||
Вывести результаты прохода утонения C--. |
динамический | ||
Вывести результаты прохода размещения стека C--. |
динамический | ||
Вывести результаты прохода разделения точек вызова C--. |
динамический | ||
Вывести результаты проходов понижения switch. |
динамический | ||
Записывать вывод основных проходов C-- в файлы |
динамический | ||
Показывать вывод основных проходов C-- (сгруппировано по процедурам) |
динамический | ||
Вывести сводную строку размера программы Core в конце оптимизационной цепочки. |
динамический | ||
Вывести вывод CSE |
динамический | ||
Вывести вывод вывода |
динамический | ||
Вывести вывод десуггера. |
динамический | ||
Отслеживание проверки исчерпываемости |
динамический | ||
Установить префикс имен файлов, используемых для отладочного вывода. |
динамический | ||
Вывести |
динамический | ||
Псевдоним для |
динамический | ||
Отслеживание файлов интерфейса |
динамический | ||
Вывести информацию о встраивании |
динамический | ||
Вывести сообщения об ошибках в формате JSON. |
динамический | ||
Вывести промежуточный код LLVM. |
динамический | ||
Вывести состояние базы данных сопоставления модулей. |
динамический | ||
Вывести вывод анализа встречаемости |
динамический | ||
Вывести результаты проходов оптимизации C-- -> C--. |
динамический | ||
Вывести дерево разбора |
динамический | ||
Вывести вывод парсера в виде синтаксического дерева |
динамический | ||
Вывести подготовленное ядро |
динамический | ||
Вывести вывод переименования |
динамический | ||
Вывести вывод переименования в виде синтаксического дерева |
динамический | ||
Статистики переименования |
динамический | ||
Отслеживание переименования |
динамический | ||
Отслеживание вывода инференции типов во время выполнения |
динамический | ||
Вывести информацию о срабатывании правил |
динамический | ||
Вывести подробную информацию о срабатывании правил |
динамический |
Выгрузка правил переписывания |
динамически | ||
Выгрузка результата окончательного упростителя |
динамически | ||
Выгрузка результата каждой итерации упростителя |
динамически | ||
Выгрузка статистики упростителя |
динамически | ||
Выгрузка результата специализации |
динамически | ||
Выгрузка выражений TH со склейками и их результатами вычисления |
динамически | ||
Показать вывод CoreToStg |
динамически | ||
Показать результат последнего прохода STG. |
динамически | ||
Показать неарнозированный STG |
динамически | ||
Выгрузка подписей строгости |
динамически | ||
Выгрузка результата анализа строгости |
динамически | ||
Выгрузка результата типизации |
динамически | ||
Выгрузка результата типизации в виде синтаксического дерева |
динамически | ||
Отслеживание типизации |
динамически | ||
Выгрузка кода, инструментированного HPC (Наблюдение за покрытием кода). |
динамически | ||
Выгрузка статистики времени выполнения и выделения памяти по этапам |
динамически | ||
Выгрузка в файлы вместо стандартного вывода |
динамически | ||
Выгрузка сигнатур типов |
динамически | ||
Выгрузка результата обёртки для рабочих процессов |
динамически | ||
Показать статистику использования быстрых строк по завершении |
динамически | ||
Вывести значения типа |
динамически | ||
Начать выделение памяти |
динамически | ||
Выгрузка информации о решениях инлайнинга |
динамически | ||
Подавить нежелательный вывод отладки |
динамически | ||
Не генерировать связи для методов Typeable |
динамически | ||
Выводить одноальтернативные выражения case как строгие let. |
динамически | ||
Установить ширину вывода отладки. Например, |
динамически | ||
Включить подробный вывод отладки |
динамически | ||
Установить глубину вывода выражений в сообщениях об ошибках |
динамически | ||
Выгрузка информации о потенциальном применении правила |
динамически | ||
Выводить имя каждого прохода по мере его выполнения |
динамически | ||
Проверка корректности проходов STG |
динамически | ||
В выгрузках подавить всё (кроме уникальных элементов), что можно подавить. |
динамически | ||
Подавить вывод приведений в выгрузках Core для сокращения их размера |
динамически | ||
Подавить расширенную информацию об идентификаторах в месте их связывания |
динамически | ||
Подавить вывод префиксов квалификации модулей |
динамически | ||
Подавить вывод списков свободных переменных замыканий в выводе STG |
динамически | ||
Подавить «ticks» в выводе красивого принтера. |
динамически | ||
Подавить временные метки в выгрузках |
динамически | ||
Подавить применение типов |
динамически | ||
Подавить сигнатуры типов |
динамически | ||
Подавить вывод устойчивого разворачивания переменной в месте её связывания |
динамически | ||
Подавить вывод уникальных элементов в выводе отладки (легче использовать |
динамически | ||
Подавить вывод видов переменных |
динамически | ||
Выгрузить вычисленные объявления TH в файлы |
динамически | ||
Установить шаг для сгенерированных |
динамически | ||
Показать вывод каждого прохода core-to-core |
динамически | ||
Показать вывод каждого прохода STG-to-STG |
динамически | ||
Компилировать с проверками выравнивания для всех обращений по ссылкам в таблице информации. |
динамически | ||
Вставлять выражения |
динамически | ||
Инструктировать LLVM заполнять мёртвые регистры STG мусором |
динамически |
Выравнивать функции по заданному границе. |
динамический | ||
Создавать отладочную информацию DWARF в скомпилированных объектных файлах. ⟨n⟩ может быть 0, 1 или 2, где большие значения создают более подробный вывод. Если ⟨n⟩ опущено, предполагается уровень 2. |
динамический |
7.6.26. Дополнительные параметры компилятора
| Флаг | Описание | Тип | Обратный |
|---|---|---|---|
Выполнять интерпретируемый код в отдельном процессе |
динамический | ||
Устарело. Включает большинство расширений языка; см. Параметры языка для точного перечисления. |
динамический | ||
(Только 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/8.10.2/docs/html/users_guide/flags.html