Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the cl-package-locks Reference Manual, version 0.0.2, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Dec 22 12:38:06 2020 GMT+0.
• Introduction | What cl-package-locks is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
= cl-package-locks overview = This library aims to provide a uniform way of dealing with package-locks across those common lisp implementations that provide them. If a given implementation does not provide a package-lock mechanism then no action will be taken by the use of this library. = Motivation = In loading LISA I noticed a package lock violation during compilation. I was interested in correcting the violation since I assume it's the reason the package isn't included in quicklisp, etc. I found the package lock violation was due to a class reader function being named CLASS-NAME, which would add a method to the package-lock protected CLASS-NAME generic-function. I thought about modifing the name of the function, but then realized that the LISA has been around a while and how altering the name might cause compatability issues (however small). So I decided I'd hack in some code to disable the package-lock and after dealing with sbcl, cmucl, AllegroCL.. I realized this might be better suited for a general purpose library, so I created this small lib to accomplish the task. In doing some early research to see if others had delt with this issue I discovered this thread: http://coding.derkeiler.com/Archive/Lisp/comp.lang.lisp/2009-02/msg01372.html This library distinguishes itself from the above by not trying to eleminiate redefinition warnings or use the native without-package-locks macro's provided by most package-locking implementations. It also provides some general use functions and macros that might be useful in dealing with package locking. I find this library to satisfy my needs with loading LISA and I hope it suits others in their moments of package-lock violation need :) = Status = Barely coded and tested using sbcl. Needs more testing on AllegroCL, clisp, and cmucl. I'm also interested in creating a uniform way of dealing with package-lock errors and providing implementation agnostic restarts. Another important piece is looking at how the various implementations implement without-package-locks to see if I'm missing anything important . = A Brief HowTo = (in-package :cl-package-locks) ; Testing if packages are locked (package-locked-p :cl-user) ; Locking a package (lock-package (find-package :cl-user)) ; Unlocking a package, notice that packages can be described ; in several different ways (currently symbol & package). (unlock-package 'cl-user) ; Working on lists of packages. The RESOLVE-PACKAGES function ; converts a list of package descriptors to packages or errors. (let ((pkgs (resolve-packages '(:cl-package-locks :swank)))) (lock-packages pkgs) ; your code here (unlock-packages)) ; Temporarily unlocking a list of packages (with-packages-unlocked (cl mop) ; something dangerous t) ; Temporarily unlock all packages (without-package-locks ; something dangerous nil) ; List all unlocked packages (all-unlocked-packages) ; List all locked packages (all-locked-packages)
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The cl-package-locks system |
Elliott Johnson <elliott@elliottjohnson.net>
Copyright 2011 Elliott Johnson
A library to provide a unified way to work with package locks across supported common lisp implementations.
0.0.2
cl-package-locks.asd (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
• The cl-package-locks.asd file | ||
• The cl-package-locks/package.lisp file | ||
• The cl-package-locks/cl-package-locks.lisp file |
Next: The cl-package-locks/package․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
cl-package-locks.asd
cl-package-locks (system)
Next: The cl-package-locks/cl-package-locks․lisp file, Previous: The cl-package-locks․asd file, Up: Lisp files [Contents][Index]
cl-package-locks (system)
package.lisp
Previous: The cl-package-locks/package․lisp file, Up: Lisp files [Contents][Index]
package.lisp (file)
cl-package-locks (system)
cl-package-locks.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The cl-package-locks package |
package.lisp (file)
common-lisp
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions |
Previous: Definitions, Up: Definitions [Contents][Index]
• Exported macros | ||
• Exported functions |
Next: Exported functions, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
Accepts a list of packages that be unlocked for the duration of BODY and locked upon return.
cl-package-locks.lisp (file)
Unlocks all packages for the duration of body.
cl-package-locks.lisp (file)
Previous: Exported macros, Up: Exported definitions [Contents][Index]
Returns a list of all locked packages.
cl-package-locks.lisp (file)
Returns a list of all unlocked packages.
cl-package-locks.lisp (file)
Locks a provided package.
cl-package-locks.lisp (file)
Locks the provided packages.
cl-package-locks.lisp (file)
Accepts a list of packages and returns those that are locked.
cl-package-locks.lisp (file)
Returns true if a given resolveable PACKAGE is locked.
cl-package-locks.lisp (file)
Resolves a descriptor to a package object.
cl-package-locks.lisp (file)
Resolves a list of packages.
cl-package-locks.lisp (file)
Unlocks a provided package.
cl-package-locks.lisp (file)
Unlocks the provided packages.
cl-package-locks.lisp (file)
Accepts a list of packages and returns those that are unlocked.
cl-package-locks.lisp (file)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | C F L |
---|
Jump to: | C F L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | A F L M P R U W |
---|
Jump to: | A F L M P R U W |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | C P S |
---|
Jump to: | C P S |
---|