script (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

スクリプトの宣言です。

シグネチャ

{script [ SCRIPT-NAME ]
[, manifest = "path" ]
[, locale = "name" ]
[, resync-as-of = {utc-date-time "date"} ]
[, resync-file = "path" ]
[, resync-adjust? = true ]
[, name = value [, ...] ]
[, {compiler-directives directives} ] }
SCRIPT-NAME: is an optional name for the script.この名前は、1 つ、またはドット ('.') で区切られた複数の有効な Curl 識別子で構成されなくてはなりません。パッケージ名で推奨されているのと同じ命名規則を使用することが推奨されます。package ステートメントのドキュメントを参照してください。

説明

この式を指定する場合は、任意の Curl スクリプト ソースファイルの最初で curl 式の後に配置する必要があります。以下を指定できます。
マニフェスト指定
スクリプトでは既定のコンポーネント マニフェストの場所を指定して、コンパイルおよび実行中にパッケージや他のコンポーネントを見つけるためにこれを使用することができます。宣言のフォーマットは次のとおりです。
manifest = "path"
ここで、path は絶対 URL か現在のスクリプトの相対パスです。
マニフェストを指定した場合は script 宣言処理の直後にロードされ、マニフェストへのアクセスが不可能な場合、マニフェストが正しくない場合にはエラーが生成されます。
結果としてのマニフェストには、get-default-manifest を使ってアクセスできます。
『Curl 開発者ガイド』の「マニフェスト」も参照してください。
ロケール
スクリプトで使用する作業ロケールの名前を指定します。ここで指定しない場合、作業ロケールは既定によりホストのロケールになります。
詳細は、get-working-locale を参照してください。
resync-as-of
スクリプトの同期を行う日時を指定します。これにより、ローカルにキャッシュされたすべてのファイルやパッケージが指定日時に強制的に同期されます。
たとえば、次の宣言により 2003 年 10 月 11 日より前にキャッシュされたファイルは必ず再同期されます。
{applet  
    resync-as-of = {utc-date-time "2003-10-11"}
}
詳細は、process-resync-as-of を参照してください。
resync-file
applet宣言についての言語ドキュメンテーションの説明を参照してください。
resync-adjust?
applet宣言についての言語ドキュメンテーションの説明を参照してください。
コンパイラ ディレクティブ
宣言では、{compiler-directives ...} 句を使ってパッケージ内でコンパイル属性をグローバルに設定できます。内部構文は with-compiler-directives と同じです。
メタデータ
次のフォーマットを使って、任意のメタデータを指定できます。
name = value
manifestlocale および resync-as-of はメタデータの特別なケースにすぎません。
スクリプトのメタデータは、スクリプトのトップレベル パッケージの meta-data フィールドを介してアクセスでき、get-current-package によってメタデータが返されます。
『開発者ガイド』にメタデータの詳細が掲載されています。
追加のソース ファイルのリスト
宣言では、{files ...} 句を使って宣言の直後にインクルードする 1 つまたは複数のファイルを指定できます。各ファイルは、その相対または絶対パスを含む文字列リテラルとして指定します。これは、include ステートメントを指定して、リストに各ファイルを含めるのと同じになります。実際には {files ...} 句の使用は推奨されておらず、代わりに include の使用が推奨されています。

改訂

resync-fileresync-adjust? の制御が Curl 7.0 で初めて実装されました。

|| A simple script declaration with a version number:
{script
    version = "1.0"
}

...
|| A more comprehensive declaration:
{script COM.YOUR-COMPANY.YOUR-PRODUCT.YOUR-SCRIPT,
    version = "1.2.3",
    author = "Joe Soap",
    {compiler-directives
        stringent? = true
    }
}