GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Forwards_002dCompatibility.html ・ emacs-doc.conao3.com

44.6 Emacsの旧バージョンへの対応

最新のEmacsリリースで導入された新機能を活用しつつ、旧バージョンのEmacsもサポートしたいパッケージは、GNU ELPAのCompatパッケージを利用できます。このパッケージに依存することで、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』マニュアルのUsageを参照してください。マニュアルがインストールされていない場合は、オンライン版Compatマニュアルもご覧いただけます。