Поддержка более старых версий Emacs
Пакеты, которым требуется поддерживать старые выпуски Emacs, не отказываясь при этом от новых возможностей последних выпусков Emacs, могут воспользоваться пакетом Compat из GNU ELPA. Добавив этот пакет в зависимости, можно обеспечить Emacs определениями, обеспечивающими совместимость с отсутствующими функциями.
Нумерация версий Compat следует нумерации версий Emacs, поэтому наряду с самой старой версией, от которой зависит пакет (через emacs-package), можно также указать самую новую версию Emacs, определения из которой пакет намерен использовать:
;; Package-Requires: ((emacs "27.2") (compat "29.1"))
Обратите внимание, что Compat предоставляет замещающие функции с расширенной функциональностью для функций, которые уже определены (sort, assoc, …). У этих функций могли измениться соглашения о вызове (добавлены необязательные аргументы) или поведение. Такие функции необходимо явно искать с помощью compat-function или явно вызывать с помощью compat-call. Мы называем их расширенными определениями. В отличие от них, новые добавленные определения можно вызывать как обычно.
- Макрос: compat-call fun &rest args
Этот макрос вызывает функцию совместимости fun с аргументами args. Многие функции, предоставляемые Compat, можно вызывать напрямую, без этого макроса. Однако если Compat предоставляет альтернативную версию уже существующей функции, вызов функции необходимо выполнять через
compat-call.
- Макрос: compat-function fun
Этот макрос возвращает символ функции совместимости для fun. См.
compat-call— более удобный макрос для прямого вызова функций совместимости.
Дополнительные сведения об использовании пакета см. в разделе Использование руководства «Compat». Если руководство не установлено, можно также прочитать руководство Compat в Интернете.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Forwards_002dCompatibility.html