(rontolisp) docs
← cl パッケージの関数

shadow

(shadow symbol-names &optional package)

各名前(文字列指示子、またはそのリスト)を package(省略時はカレントパッケージ)のシャドーイングシンボルにします。その名前のシンボルがすでにパッケージに存在すれば(所有・インポートを問わず)そのまま印を付け、なければまず新しい自前のシンボルとしてインターンします。以降、use しているパッケージが同名のシンボルをエクスポートしていても find-symbol はこのシンボルをステータス :internal で返し、package-shadowing-symbols に列挙されます。t を返します。defpackage の :shadow 節の実行時版です。

パッケージはこの記録をメンバーテーブルに保持するため、すべてのバックエンドで動作します。インタプリタは生きたレジストリに書き込み、コンパイル系バックエンドはプログラムが make-package で作ったパッケージのテーブルに書き込みます。読み込み/コンパイル時パッケージ(組み込み、およびコンパイルされたプログラムの defpackage 産物)はそこでは凍結されており、何も変えずに t を返します。どのパッケージも指さない指示子は、すべてのバックエンドで捕捉可能な package-error を通知します。