Next: Truenames and other dangers, Previous: ASDFがシステムを探す場所を設定する, Up: ASDFがシステムを探す場所を設定する [Contents][Index]
ASDFがシステム定義ファイルを探す場所は、ソースレジストリ(source registry)に指定されています。
[訳者補足]
ソースレジストリ(や次章で解説するアウトプットトランスレーション)の設定を記述したファイルは、システム設定ファイル(system configuration file)または単に設定ファイル(configuration file)と呼ばれます。ファイル形式は.confです。システム定義ファイル(.asdファイル)と混同しないようにしましょう。さらに、設定ディレクトリ(configuration directory)という概念もあります。設定ディレクトリは設定ファイルを含むディレクトリですが、設定ディレクトリ中の設定ファイルはその文法が微妙に異なるので注意が必要です。詳しくはソースレジストリを設定するDSLと設定ディレクトリ(ソースレジストリ)を参照してください。
また、以下の記述は、OSや処理系、環境変数によって異なる複雑なロジックを漏れなく解説したものではありませんが、これを補完するのは訳者の手に余ります。正確な挙動を把握する必要がある場合はsource-registry.lispとuiop/configuration.lispを参照してください。
ソースレジストリは次のように設定されます。おおむね、上から順に処理されていくと考えてかまいません。
[訳者補足終わり]
CL_SOURCE_REGISTRY
が存在する場合は、ソースレジストリがこの変数によって設定されます。
XDG_CONFIG_DIRS
とユーザー設定ファイル$XDG_CONFIG_DIRS/common-lisp/source-registry.confが存在する場合は、ソースレジストリがこのファイルによって設定されます。XDG_CONFIG_DIRS
のデフォルトの値は~/.config/です。
XDG_CONFIG_DIRS
とユーザー設定ディレクトリ$XDG_CONFIG_DIRS/common-lisp/source-registry.conf.d/が存在する場合は、ソースレジストリがこのディレクトリ内の設定ファイルによって設定されます。
XDG_DATA_HOME
のデフォルトの値は~/.local/share/です。Windowsで環境変数XDG_DATA_HOME
が存在しない場合は、代わりにLocal AppData
またはAppData
が使われます。
XDG_DATA_DIRS
のデフォルトは/usr/local/shareと/usr/shareです。WindowsでXDG_DATA_DIRS
が存在しない場合、代わりにAppData
とCommon AppData
が使われるでしょう。
これらの設定は、S式による簡単なDSLで記述します。(→ ソースレジストリを設定するDSL) 加えて、環境変数で設定する場合は、よりシェルに向いた文法も用意されています。(→ シェル向けの設定の構文(ソースレジストリ))
また、上に挙げた各設定は、必ずしもすべてが「結合」して使われるわけではありません。各設定が、継承する設定を明示的にあるいは暗黙にインクルードしない限り、以降の設定は無視されることになります。
さらに、処理系依存のディレクトリが、設定ファイルで指定されたディレクトリ群の先頭に自動的に加わることがあり、これは設定ファイルで継承をどのように設定しても変えられません。(訳注: 上記リストの1番目の処理のこと)
[訳注] このリストの3番目以降の処理は、asdf:*default-source-registries*
中の7つの関数に順に対応しています。リストの最後の項目の意図は判然としませんが、処理系などが独自にこの変数を編集していると、処理が加わったり(あるいは減ったり)するでしょう。Mezzanoなどにその例があります。