Currently supported implementations are ACL, CLISP, CMUCL, ECL and SBCL. On all other implementations the following functions are exported but will evaluate to a NOOP where appropriate.
Package Locks Interface
Implementations that support this interface will have the keyword :package-locks
present in *features*
.
Accesses the lock state of a package. t
indicates that the package is locked and nil
indicates that it is not locked.
Disables the checking of package locks during the evaluation of body
. For implementations that do not have the ability to disable all package locks via a dynamic variable (list-all-packages)
will be used to unlock each package before the evaluation of body
and then relock each package that was locked after the evaluation of body
.
Unlocks and relocks each of the named packages
around the evaluation of body
.
Locks and then unlocks each of the named packages
around the evaluation of body
.
Implementation Packages Interface
Implementations that support this interface will have the keyword :implementation-packages
present in *features*
. Currently ACL and SBCL are the only implementations that support this interface.
Accesses the list of packages that are considered implementation packages of package
.
Access the implementation state of an individual package.
Repository: https://github.com/yitzchak/trivial-package-locks/
Author: Tarn W. Burton
language extension, trivial, MIT-LICENSE