Переменные нативной компиляции
В этом разделе документированы переменные, которые управляют нативной компиляцией.
- Параметр пользователя: native-comp-speed
Эта переменная задаёт уровень оптимизации для нативной компиляции. Её значение должно быть числом от -1 до 3. Значения от 0 до 3 задают уровни оптимизации, эквивалентные соответствующим опциям командной строки компилятора -O0, -O1 и т.д. Значение -1 означает отключение нативной компиляции: функции и файлы будут скомпилированы только в байт-код; однако файлы *.eln всё равно будут созданы, они просто будут содержать скомпилированный код в форме байт-кода. (Этого можно добиться на уровне функций, используя форму
(declare (speed -1)), см. Форму объявления.) Значение по умолчанию равно 2.
- Параметр пользователя: native-comp-debug
Эта переменная задаёт уровень отладочной информации, генерируемой нативной компиляцией. Её значение должно быть числом от нуля до 3 со следующим значением:
- 0
Вывод отладки отключён. Это значение по умолчанию.
- 1
Генерировать символы отладки вместе с нативным кодом. Это позволяет легче отлаживать нативный код с помощью отладчиков, таких как
gdb.- 2
Как 1, а также выводит псевдо-C код.
- 3
Как 2, а также выводит промежуточные этапы GCC и логирование libgccjit.
- Параметр пользователя: native-comp-verbose
Эта переменная управляет подробностью вывода нативной компиляции, подавляя некоторые или все сообщения в журнале, выводимые ею. Если её значение равно нулю, как по умолчанию, все сообщения в журнале подавляются. Установка значения от 1 до 3 позволит включить логирование сообщений, уровень которых выше заданного значения. Значения имеют следующие интерпретации:
- 0
Логирование выключено. Это значение по умолчанию.
- 1
Записать финальное представление кода в формате LIMPLE.
- 2
Записать LAP, финальное LIMPLE и информацию о некоторых дополнительных этапах.
- 3
Максимальная подробность: записывать всё.
- Параметр пользователя: native-comp-async-jobs-number
Эта переменная определяет максимальное количество подпроцессов нативной компиляции, которые будут запущены одновременно. Она должна быть неотрицательным числом. Значение по умолчанию равно нулю, что означает использование половины числа единиц выполнения ЦП или 1, если ЦП имеет только одну единицу выполнения.
- Параметр пользователя: native-comp-async-report-warnings-errors
Если значение этой переменной не
nil, предупреждения и ошибки от асинхронных подпроцессов нативной компиляции будут сообщены в основной сессии Emacs в буфере с именем *Warnings*. Значение по умолчаниюtозначает отобразить получившийся буфер. Чтобы записывать предупреждения без появления буфера *Warnings*, установите эту переменную вsilent.Распространённой причиной предупреждений при асинхронной нативной компиляции является компиляция файла, в котором отсутствует какая-то
requireнеобходимой функции. Функция может быть загружена в основной emacs, но так как нативная компиляция всегда начинается с подпроцесса с первоначальной средой, это может не быть справедливо для подпроцесса.
- Параметр пользователя: native-comp-async-query-on-exit
Если значение этой переменной отлично от nil, Emacs спросит при выходе, нужно ли выйти и убить все асинхронные подпроцессы нативной компиляции, которые всё ещё выполняются, тем самым предотвращая запись соответствующих файлов .eln. Если значение равно
nil, по умолчанию, Emacs убьёт эти подпроцессы без запроса.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Native_002dCompilation-Variables.html