The trivial-package-locks Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The trivial-package-locks Reference Manual

This is the trivial-package-locks Reference Manual, version 0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed Jun 15 06:02:05 2022 GMT+0.

Table of Contents


1 Introduction

trivial-package-locks

A standard interface to the various package lock implementations. 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*.

(package-locked-p &optional (package *package*)) => lock-state
(setf (package-locked-p &optional (package *package*)) new-lock-state)

Accesses the lock state of a package. t indicates that the package is locked and nil indicates that it is not locked.

(without-package-locks &body body) => results

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.

(with-unlocked-packages (&rest packages) &body body) => results

Unlocks and relocks each of the named packages around the evaluation of body.

(with-locked-packages (&rest packages) &body body) => results

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.

(package-implementation-packages (&optional (package *package*)) => packages
(setf (package-implementation-packages &optional (package *package*)) packages)

Accesses the list of packages that are considered implementation packages of package.

(package-implements-package-p (implementation-package 
                               &optional (package *package*)) => state
(setf (package-implements-package-p implementation-package
                                    &optional (package *package*))
      new-state)

Access the implementation state of an individual package.


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 trivial-package-locks

A standard interface to the various package lock implementations.

Author

Tarn W. Burton

Home Page

https://github.com/yitzchak/trivial-package-locks

Bug Tracker

https://github.com/yitzchak/trivial-package-locks/issues

License

MIT

Version

0.1

Source

trivial-package-locks.asd.

Child Component

code (module).


3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 trivial-package-locks/code

Source

trivial-package-locks.asd.

Parent Component

trivial-package-locks (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


4.1.1 trivial-package-locks/trivial-package-locks.asd

Source

trivial-package-locks.asd.

Parent Component

trivial-package-locks (system).

ASDF Systems

trivial-package-locks.


4.1.2 trivial-package-locks/code/packages.lisp

Source

trivial-package-locks.asd.

Parent Component

code (module).

Packages

trivial-package-locks.


4.1.3 trivial-package-locks/code/locks.lisp

Dependency

packages.lisp (file).

Source

trivial-package-locks.asd.

Parent Component

code (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

5.1 trivial-package-locks

A standard interface to the various package lock implementations.

Source

packages.lisp.

Nickname

package-locks

Use List

common-lisp.

Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


6.1.1 Macros

Macro: with-locked-packages ((&rest packages) &body body)
Package

trivial-package-locks.

Source

locks.lisp.

Macro: with-unlocked-packages ((&rest packages) &body body)
Package

trivial-package-locks.

Source

locks.lisp.

Macro: without-package-locks (&body body)
Package

trivial-package-locks.

Source

locks.lisp.


Previous: , Up: Public Interface   [Contents][Index]

6.1.2 Ordinary functions

Function: package-implementation-packages (&optional package)
Package

trivial-package-locks.

Source

locks.lisp.

Function: (setf package-implementation-packages) (&optional package)
Package

trivial-package-locks.

Source

locks.lisp.

Function: package-implements-package-p (implementation-package &optional package)
Package

trivial-package-locks.

Source

locks.lisp.

Function: (setf package-implements-package-p) (implementation-package &optional package)
Package

trivial-package-locks.

Source

locks.lisp.

Function: package-locked-p (&optional package)
Package

trivial-package-locks.

Source

locks.lisp.

Function: (setf package-locked-p) (&optional package)
Package

trivial-package-locks.

Source

locks.lisp.


6.2 Internals


Previous: , Up: Internals   [Contents][Index]

6.2.1 Ordinary functions

Function: with-locked-packages/fallback (packages body-func)
Package

trivial-package-locks.

Source

locks.lisp.

Function: with-unlocked-packages/fallback (packages body-func)
Package

trivial-package-locks.

Source

locks.lisp.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables