Function COMPILE-FILE

UP


Function COMPILE-FILE

Function COMPILE-FILE

構文

compile-file input-file &key output-file verbose print external-format => output-truename, warnings-p, failure-p

引数と戻り値

input-file - パス名指定子(デフォルトでは未指定の要素は *default-pathname-defaults*の値から取得し埋められます)。
output-file - パス名指定子。デフォルトは実装依存。
verbose - generalized-boolean。デフォルトは*compile-verbose*の値。
print - generalized-boolean。デフォルトは*compile-print*の値。
external-format - 外部ファイルフォーマット指定子。デフォルトは:default
output-truename - パス名(出力ファイルのtruename)か、 nil
warnings-p - generalized-boolean
failure-p - generalized-boolean

定義

compile-fileは、 input-fileで指定されたファイルの内容を、 output-fileによって指定されたファイルの位置へ 実装依存のバイナリデータに変換します。

input-fileで示すファイルはソースファイルでなければなりません。 output-fileは出力パス名を指定することができます。 コンパイルされたコードを出力する コンパイルファイルの実際のパス名は、 compile-file-pathnameを呼び出されたかのように計算されます。

もしinput-fileoutput-fileが論理パス名のとき、 それはtranslate-logical-pathnameが呼び出されたかのように 物理パス名に変換されます。

もしverbosetrueのとき、 compile-fileはコメントのフォーム(例えば先頭にセミコロン) で メッセージを標準出力に対して どのようなファイルがコンパイルされたかや、 その他の有益な情報などを印刷します。 もしverbosefalseのときは、そのような情報は印刷されません。

もしprinttrueのとき、 コンパイルされるファイル内の トップレベルフォームについての情報を、 標準出力に印刷します。 どのようなものが印刷されるかの 正確な内容は実装依存ですが、 それでも何らかの情報が印刷されます。 もしprintnilのときは 何の情報も印刷されません。

external-formatは、 ファイルを開くときに使われる外部ファイルフォーマットを指定します。 関数openをご確認ください。 結果のコンパイルされたファイルは、 改めて外部ファイルフォーマットの指定をせずに ロードすることができるので、 compile-fileloadは このような方法を実現するために協調しなければなりません。 関数loadをご確認ください。

compile-file*readtable**package*に対して、 ファイル処理する前に保持されていた値に束縛します。

*compile-file-truename*は、 compile-fileによって束縛が行われ、 その内容はコンパイルされているファイルのパス名のtruenameです。

*compile-file-pathname*compile-fileによって束縛が行われ、 その内容はcompile-fileの最初の引数と デフォルト値がマージされたものを示します。 つまり(pathname (merge-pathnames input-file))です。

コンパイルされたファイル内に含まれるコンパイルされた関数は、 Lispがそのコンパイルされたファイルをロードしたときに使用できるようになります。 コンパイラーによって処理されたどのような関数定義でも、 それは#'(lambda ...)フォームや、 fletlabelsによって生成されたローカル関数、 defunフォームなどの結果は、 型compiled-functionのオブジェクトです。

compile-fileの返却値の主値であるoutput-truenameは、 出力ファイルのtruenameか、 もしファイルが生成できなかったときはnilです。

2つめの返却値であるwarnings-pは、 コンパイラーによって型errorwarningのコンディションが 検出されなかったときはfalseを、 それ以外のときはtrueを返却します。

3つめの返却値であるfailure-pは、 コンパイラーによって型errorwarningstyle-warning以外)コンディションが 検出されなかったときはfalseを、 それ以外のときはtrueを返却します。

ファイルコンパイラーによって どのようにファイルを処理するかについての 一般的な情報は3.2.3. ファイルのコンパイルをご確認ください。

ファイルコンパイラーによってコンパイルされるプログラムは、 ただ外部化可能なオブジェクトのみが含まれます。 そのようなオブジェクトの詳細については3.2.4. ファイルコンパイル時のリテラルオブジェクトをご確認ください。 どのようにして外部化可能なオブジェクトの集合を拡張するかについては 関数make-load-formと3.2.4.4. 外部オブジェクトの制約の追記をご確認ください。

例文

なし。

影響

*error-output*, *standard-output*, *compile-verbose*, *compile-print*

コンピューターのファイルシステム

例外

コンパイル処理中のエラーの検出についての情報は、 3.2.5. コンパイラーの例外状況をご確認ください。

もし(wild-pathname-p input-file)trueのとき、 型file-errorのエラーが通知することができます。

入力としてソースファイルをオープンしようとしたか、 あるいは出力としてコンパイルされるファイルをオープンしようとしたときに 失敗したときは、 型file-errorのエラーが通知されます。

参考

compile, declare, eval-when, pathname, logical-pathname, 20.1. ファイルシステムの説明, 19.1.2. ファイル名としてのパス名

備考

なし。


TOP, Github