X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-extensions.lisp;h=6963eebb8b78f44be9ebccf28cbec2aa0e1f0903;hb=a6a12ed609d5467ec43b411283e5b3568fee81df;hp=259f3d7ed4e264a00cdf5a68b06050f380e0b3a6;hpb=c0ddb38a1b638c32f3c691995227408bdbb476d1;p=sbcl.git diff --git a/src/code/target-extensions.lisp b/src/code/target-extensions.lisp index 259f3d7..6963eeb 100644 --- a/src/code/target-extensions.lisp +++ b/src/code/target-extensions.lisp @@ -35,6 +35,13 @@ order when a saved core image starts up, after the system itself has been initialized. Unused by SBCL itself: reserved for user and applications.") +(defvar *exit-hooks* nil + #!+sb-doc + "This is a list of functions which are called in an unspecified +order when SBCL process exits. Unused by SBCL itself: reserved for +user and applications. Using (QUIT :RECKLESSLY-P T), or calling +exit(3) directly will circumvent these hooks.") + ;;; Binary search for simple vectors (defun binary-search (value seq &key (key #'identity)) @@ -112,3 +119,8 @@ applications.") (%shrink-vector string size) string))) ,@body)))) + +;;; The smallest power of two that is equal to or greater than X. +(defun power-of-two-ceiling (x) + (declare (index x)) + (ash 1 (integer-length (1- x))))