User Tools

Site Tools


ch2_3_pack_sym

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ch2_3_pack_sym [2025/01/28 12:04] adminch2_3_pack_sym [2025/01/29 08:35] (current) admin
Line 133: Line 133:
 ''USE-PACKAGE'' ''USE-PACKAGE''
  
-Adds one or more packages to be used by a target package. Exported symbols from the source package(s), will be accessible through the target package. First argument is package designator or list of package designators. Second argument is optional target package designator, default is the dynamic current package. +Adds one or more packages to be used by a target package. Exported symbols from the source package(s), will be accessible through the target package. First argument is package designator or list of package designators. Second argument is optional target package designator, default is the dynamic current package.((dynamic current package means package bound to *PACKAGE* symbol in dynamic environment))  
 + 
 +Beware of name conflicts!
  
 <code lisp> <code lisp>
->(use-package "P1" "P2"   +>(use-package "P1" "P2"    ; use P1 in P2 
 T T
 </code> </code>
Line 145: Line 147:
  
 <code lisp> <code lisp>
->(unuse-package "P1" "P2"   +>(unuse-package "P1" "P2"  ; stop using P1 in P2 
 T T
 </code> </code>
Line 152: Line 154:
  
 Lists all packages that are used by a target package. Single argument is target package designator. The argument is optional, defaults to the dynamic current package.  Lists all packages that are used by a target package. Single argument is target package designator. The argument is optional, defaults to the dynamic current package. 
 +
 +Following two examples assume the situation after the ''USE-PACKAGE'' example above.
  
 <code lisp> <code lisp>
Line 164: Line 168:
 <code lisp> <code lisp>
 >(package-used-by-list "P1") >(package-used-by-list "P1")
-(#<The P2 package>)+(#<The P2 package>            ; package P1 is used by P2
 </code> </code>
  
-''UNINTERN'' 
- 
-removes symbol from package, first arg is symbol or list of symbols 
-second argument package designators, optional, defaults to dynamic current((dynamic current package means package bound to *PACKAGE* symbol in dynamic environment)) 
- FIXME 
  
 ''IMPORT'' ''IMPORT''
  
-FIXME+Symbol becomes internal of the target package, if the symbol was //homeless//, the target package becomes symbol's home package. First argument is symbol or list of symbols. Second argument is optional target package designator, default is the dynamic current package.
  
-''EXPORT''+Beware of name conflicts!
  
-FIXME 
  
 +''UNINTERN''
 +
 +Removes symbol from package, so it is no longer accessible as internal or external symbol. If the package is the symbol's home pacakge, then the symbol becomes //homeless//. First argument is symbol or list of symbols. Second argument is optional target package designator, default is the dynamic current package.
 +
 +The name ''UNINTERN'' is slightly misleading, the command is mostly used to revert ''IMPORT'', but it revets ''INTERN'' as well.
 +
 +''EXPORT''
 +
 +Makes inherited or internal symbol to be external in given package. If the symbol is inherited, ''EXPORT'' will first ''IMPORT'' the symbol, them move from internal list to external list. First argument is symbol or list of symbols. Second argument is optional target package designator, default is the dynamic current package.
  
 +Beware of name conflicts!
  
 ''UNEXPORT'' ''UNEXPORT''
  
-FIXME+Undoes ''EXPORT'', moves symbol from external list to internal list. First argument is symbol or list of symbols. Second argument is optional target package designator, default is the dynamic current package.
  
 ''PACKAGE-INTERNAL-SYMBOLS'' ''PACKAGE-INTERNAL-SYMBOLS''
ch2_3_pack_sym.1738091077.txt.gz · Last modified: 2025/01/28 12:04 by admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki