% Function USE-PACKAGE
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
は推移的ではないので、
循環構造が現れても問題がありません。