Next: アウトプットトランスレーションを設定するDSL, Previous: アウトプットトランスレーションの設定, Up: ASDFがコンパイルされたファイルを保持する場所を設定する [Contents][Index]
アウトプットトランスレーションと同様の機能を持つ従来のツールとしてASDF-Binary-Locations
、common-lisp-controller
、cl-launch
などがありましたが、ASDFにはこれらの以前のバージョンとの後方互換性がありません。(この仕様は意図的なものです。)従来のツールは、ユーザーが設定ファイルで簡単に設定できるようなデザインになっていませんでした。なお、最近のバージョンのcommon-lisp-controller
(7.2)とcl-launch
(3.000)はasdf-output-translations
のAPIを使っており、また、ASDF-Binary-Locations
は完全に置き換えられているのでもはや使うべきではありません。
もっとも、この非互換性によって不便を被る人はあまりいないでしょう。実のところ、これらのツールをカスタマイズして使っている人はほとんどいませんし、その少数の人々はエキスパートであり、新しい設定に容易に適応するでしょう。そして、エキスパートでないほとんどの人々は(デフォルトの設定で使えている限りは)これらのツールを適切に設定することができず、システムのディストリビュータによる設定やデフォルト設定によってソフトウェアが「ただ動く」ことを知るだけでしょうから。
しかし、ASDF-Binary-Locations
を好む方のために、限定的なエミュレーションモードが用意されています:
この機能は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の古いバージョンに組み込まれたものではなく、最新版に拡張としてロードできるもの)を使い続ける方は、始めに無効にするように気を付けてください。そうしないと「興味深い」問題が起きるかもしれません。