Next: 新しいコンポーネント型を定義する, Previous: コンポーネントの共通の属性, Up: コンポーネント [Contents][Index]
ソースファイルとは、システムの他のコンポーネントから生成する方法をシステムが知らないファイルを指します。
これは一般的な意味でのソースファイル、つまり「コンパイラに渡すデータを含んだファイル」と必ずしも同じでないことに注意してください。何らかのプリプロッセンシグを経て生成されたファイル(例えば.h.inからautoconfによって生成された.hファイルなど)は、定義上、ソースファイルとは呼ばれないことになります。逆に、(毎回自動生成されない)画像ファイルや、バイナリとして得られるプロプライエタリな共有ライブラリなどは、我々の目的においてはソースファイルとみなすことになります。
さまざまな言語に対してsource-file
のサブクラスが存在します。
[訳者補足]
cl-source-file
、c-source-file
、java-source-file
はそれぞれCL、C、Javaのソースファイルに対応し、ファイル形式はlisp、c、javaです。static-file
はビルドの際にそのまま出力されることを意図したファイルを表し、ファイル形式は不定です。doc-file
はstatic-file
のサブクラス、html-file
はdoc-file
のサブクラスであり、html-file
のファイル形式はhtmlです。
defsystem
フォームの:components
オプションにコンポーネントを記述するとき、:file
は既定ではcl-source-file
を意味します。このクラスは親コンポーネントの:default-component-class
オプションで書き換えることができます。
[訳者補足終わり]
モジュールは、コンポーネントのまとまりとしてのコンポーネントです。
モジュールコンポーネントには次の追加の属性が指定できます。
:components
このモジュールに含まれるコンポーネント群です。
:default-component-class
クラスが明示されていない子コンポーネントはこのクラスであるとみなされます。
:if-component-dep-fails
この属性はASDF 3で削除されたので、使わないでください。代わりに:if-feature
を使いましょう。(→ 必要なフィーチャー あるいは → if-featureオプション)
:serial
この属性が真の場合、(:components
に指定された)それぞれの子コンポーネントは、それ以前のすべての子コンポーネントに依存しているとみなされます。
デフォルトのオペレーションはモジュールをどのように走査すれば良いか知っているため、ほとんどのオペレーションにはモジュールに特定化されたメソッドを定義する必要はないでしょう。
他の言語のライブラリ群やアーカイブファイルを表すのに、module
のサブクラスを定義することもできるでしょう。
システムはモジュールのサブクラスです。
システムは、主にドキュメントを付けるためにいくつかの属性を追加されたモジュールです。詳細はdefsystemの文法を参照してください。
ユーザーは自分のシステムのために自ら新しいクラスを定義することもできます。定義したクラスはdefsystem
マクロの:class
オプションに指定することで使えます。