Next: , Previous: , Up: ASDFがコンパイルされたファイルを保持する場所を設定する   [Contents][Index]


9.2 後方互換性のための機能

アウトプットトランスレーションと同様の機能を持つ従来のツールとしてASDF-Binary-Locationscommon-lisp-controllercl-launchなどがありましたが、ASDFにはこれらの以前のバージョンとの後方互換性がありません。(この仕様は意図的なものです。)従来のツールは、ユーザーが設定ファイルで簡単に設定できるようなデザインになっていませんでした。なお、最近のバージョンのcommon-lisp-controller (7.2)とcl-launch (3.000)はasdf-output-translationsのAPIを使っており、また、ASDF-Binary-Locationsは完全に置き換えられているのでもはや使うべきではありません。

もっとも、この非互換性によって不便を被る人はあまりいないでしょう。実のところ、これらのツールをカスタマイズして使っている人はほとんどいませんし、その少数の人々はエキスパートであり、新しい設定に容易に適応するでしょう。そして、エキスパートでないほとんどの人々は(デフォルトの設定で使えている限りは)これらのツールを適切に設定することができず、システムのディストリビュータによる設定やデフォルト設定によってソフトウェアが「ただ動く」ことを知るだけでしょうから。

しかし、ASDF-Binary-Locationsを好む方のために、限定的なエミュレーションモードが用意されています:

関数: enable-asdf-binary-locations-compatibility &key centralize-lisp-binaries default-toplevel-directory include-per-user-information map-all-source-files source-to-target-mappings

この機能はasdf-output-translationsの初期化をASDF-Binary-Locationsと似た仕組みで行います。ASDF-Binary-Locationsはいくつかのグローバル変数(*centralize-lisp-binaries**default-toplevel-directory**include-per-user-information**map-all-source-files**source-to-target-mappings*)で設定を行っていましたが、この関数では同名のキーワード引数に値を渡すことで、設定が可能になります。なお、留意点として、:source-to-target-mappings引数の値は、単に文字列とパス名だけではなくasdf-output-translationsで使える有効なパス名指示子であればなんでもよい、ということを述べておきます。

また、アウトプットトランスレーションはデフォルトで有効になっていることに気をつけましょう。無効にするためには(asdf:disable-output-translations)を実行します。特に、従来のASDF-Binary-Locations(ASDFの古いバージョンに組み込まれたものではなく、最新版に拡張としてロードできるもの)を使い続ける方は、始めに無効にするように気を付けてください。そうしないと「興味深い」問題が起きるかもしれません。