Здесь мы описываем некоторые технические детали о точных суффиксах, которые
load пытается использовать.
Это список суффиксов, указывающих на файлы Emacs Lisp (скомпилированные или исходные). В него не следует включать пустую строку. load использует эти суффиксы по порядку, когда добавляет суффиксы Lisp к указанному имени файла. Стандартное значение — (".elc" ".el"), которое обеспечивает поведение, описанное в предыдущем разделе.
Это список суффиксов, указывающих на представления одного и того же файла. Этот список обычно должен начинаться с пустой строки. Когда load ищет файл, он добавляет суффиксы из этого списка по порядку к имени файла, прежде чем искать другой файл.
Включение режима автоматического сжатия добавляет суффиксы из
jka-compr-load-suffixes в этот список, а отключение режима автоматического
сжатия удаляет их. Стандартное значение load-file-rep-suffixes, если режим
автоматического сжатия отключен, равно (""). Учитывая, что стандартное
значение jka-compr-load-suffixes равно (".gz"), стандартное
значение load-file-rep-suffixes, если режим автоматического сжатия включен,
равно ("" ".gz").
Эта функция возвращает список всех суффиксов, которые 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,
он пропускает вторую группу.
Если этот вариант не равен nil, то вместо остановки на
первом существующем суффиксе load проверяет их все и использует
самый новый файл.