16.2 Загрузка суффиксов

Здесь мы описываем некоторые технические детали о точных суффиксах, которые load пытается использовать.

Переменная: load-suffixes

Это список суффиксов, указывающих на файлы Emacs Lisp (скомпилированные или исходные). В него не следует включать пустую строку. load использует эти суффиксы по порядку, когда добавляет суффиксы Lisp к указанному имени файла. Стандартное значение — (".elc" ".el"), которое обеспечивает поведение, описанное в предыдущем разделе.

Переменная: load-file-rep-suffixes

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

Включение режима автоматического сжатия добавляет суффиксы из jka-compr-load-suffixes в этот список, а отключение режима автоматического сжатия удаляет их. Стандартное значение load-file-rep-suffixes, если режим автоматического сжатия отключен, равно (""). Учитывая, что стандартное значение jka-compr-load-suffixes равно (".gz"), стандартное значение load-file-rep-suffixes, если режим автоматического сжатия включен, равно ("" ".gz").

Функция: get-load-suffixes

Эта функция возвращает список всех суффиксов, которые load должен попробовать по порядку, когда его аргумент must-suffix не равен nil. Она учитывает как load-suffixes, так и load-file-rep-suffixes. Если load-suffixes, jka-compr-load-suffixes и load-file-rep-suffixes имеют свои стандартные значения, эта функция возвращает (".elc" ".elc.gz" ".el" ".el.gz"), если режим автоматического сжатия включен, и (".elc" ".el"), если режим автоматического сжатия отключен.

Таким образом, load обычно сначала пробует суффиксы из значения (get-load-suffixes), а затем те, которые находятся в load-file-rep-suffixes. Если nosuffix не равен nil, он пропускает первую группу, а если must-suffix не равен nil, он пропускает вторую группу.

Пользовательский вариант: load-prefer-newer

Если этот вариант не равен nil, то вместо остановки на первом существующем суффиксе load проверяет их все и использует самый новый файл.