Function USE-PACKAGE
use-package
packages-to-use &optional
package => t
packages-to-use - パッケージ指定子のリストの指定子。 KEYWORD
パッケージは指定されません。
package - パッケージ指定子。デフォルトは現在のパッケージ。 packageにはKEYWORD
パッケージは指定できません。
use-package
は、packageに対して、 packages-to-useの全ての外部シンボルを継承します。 継承されたシンボルは、packageの内部シンボルとして アクセスできるようになります。
packages-to-useは、packageのuse
リストに、 もしそれらが現れていないときは追加されます。 packages-to-useの全ての外部シンボルは、 packageの内部シンボルとしてアクセスできるようになります。 use-package
はpackageに新しいシンボルが現れるようなことはせず、 ただそれらを継承によってアクセス可能にするだけです。
use-package
は、新しく入ってくるシンボルと、 それらがpackage内ですでにアクセス可能なものとの間で 名前の衝突のチェックを行います。 packages-to-useからpackageによって継承される 2つの外部シンボル間に生じたuse-package
の名前衝突は、 それらのpackage内に入ってくるどちらかのシンボルを選び、 それをshadowing
シンボルにすることで解決できます。
export (intern "LAND-FILL" (make-package 'trash)) 'trash) => T
(find-symbol "LAND-FILL" (make-package 'temp)) => NIL, NIL
(package-use-list 'temp) => (#<PACKAGE "TEMP">)
(use-package 'trash 'temp) => T
(package-use-list 'temp) => (#<PACKAGE "TEMP"> #<PACKAGE "TRASH">)
(find-symbol "LAND-FILL" 'temp) => TRASH:LAND-FILL, :INHERITED (
packageのuse
リストは修正されます。
なし。
なし。
unuse-package
, package-use-list
, 11.1. パッケージの説明
パッケージP2
がすでにパッケージP1
を使用していたときでさえ、 P1
がP2
を使用することは許されます。 パッケージのuse
は推移的ではないので、 循環構造が現れても問題がありません。