16 Загрузка

Загрузка файла с кодом Lisp означает помещение его содержимого в среду Lisp в виде объектов Lisp. Emacs находит и открывает файл, считывает текст, вычисляет каждую форму, а затем закрывает файл. Такой файл также называется библиотекой Lisp.

Функции загрузки вычисляют все выражения в файле точно так же, как функция eval-buffer вычисляет все выражения в буфере. Разница в том, что функции загрузки считывают и вычисляют текст в файле, как он находится на диске, а не текст в буфере Emacs.

Загруженный файл должен содержать выражения Lisp, либо в виде исходного кода, либо в виде байт-скомпилированного кода. Каждая форма в файле называется формой верхнего уровня. Для форм в загружаемом файле нет специального формата; любая форма в файле может так же быть введена непосредственно в буфер и вычислена там. (Действительно, большинство кода тестируется таким образом.) Чаще всего это определения функций и определения переменных.

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

Для загрузки внешних библиотек по требованию, которые заранее известны как необходимые для определенных примитивов Emacs, см. Динамически загружаемые библиотеки.