ライブラリアクセス可能な定義を指定します。
説明
ライブラリの外のコードへアクセスをさせずに、同じマニフェストで定義されたパッケージのライブラリ内でコードを共有したい場合に、library を使用します。
例
二つの A と B パッケージがあると仮定します。B は A をインポートし、両方のパッケージは同じマニフェストで定義された同じライブラリの一部です。:
{curl 8.0 manifest}
{manifest MY-LIBRARY}
{component package A, location = "A/load.scurl"}
{component package B, location = "B/load.scurl"}
もし、パッケージ A がユーティリティー関数 library-error を定義し、それが全てのエラーについてフォーマットしスローする機能を持ち、ライブラリの外側から呼び出されるのを防ぐには、library 属性を使用することができます。:
{define-proc library {library-error
fmt:String, ...:any
}:never-returns
{throw {MyLibraryException {format fmt, ...}}}
}
注意事項
セキュリティやプライバシーのために外部からアクセスさせてはいけないコードに
library 属性を使用すべきではありません。これは任意のアプレットやスクリプトが主のマニフェストとしてどのマニフェストでも使用される可能性があるからです。したがって library-protected メンバーを使用してください。デフォルトのマニフェストとしてライブラリのマニフェストを使用することや library-protected メンバーにアクセスするために
evaluate を使用することで
OpenPackage を作成することが可能です。
導入:
バージョン 7.0