ここでは、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") となります。
この関数は、引数 must-suffix が nil
以外である場合に、load が順に試行すべきすべてのサフィックスのリストを返します。ここでは
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 はそれらをすべて検証し、最も新しいファイルを使用します。