0.8.12.19: Restructure the manual chapter "Package Locks" into consepts
authorNikodemus Siivola <nikodemus@random-state.net>
Sun, 4 Jul 2004 15:03:46 +0000 (15:03 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sun, 4 Jul 2004 15:03:46 +0000 (15:03 +0000)
           and a dictionary, which also incidentally fixes the broken
           section numbering there.

doc/manual/make-tempfiles.sh
doc/manual/package-locks-basic.texinfo
doc/manual/package-locks-extended.texinfo
version.lisp-expr

index 777d03c..9b87b90 100644 (file)
@@ -18,12 +18,14 @@ sbclsystem=`pwd`/../../src/runtime/sbcl
 sbclcore=`pwd`/../../output/sbcl.core
 if [ -e $sbclsystem ] && [ -e $sbclcore ] 
 then
-    SBCL="${1:-$sbclsystem --core $sbclcore}"
+    SBCLRUNTIME="${1:-$sbclsystem --core $sbclcore}"
     export SBCL_HOME=`pwd`/../../contrib
 else
-    SBCL="${1:-`which sbcl`}"
+    SBCLRUNTIME="${1:-`which sbcl`}"
 fi
 
+SBCL=$SBCLRUNTIME --noinform --sysinit /dev/null --userinit /dev/null --noprint --disable-debugger
+
 # Output directory.  This has to end with a slash (it's interpreted by
 # Lisp's `pathname' function) or you lose.  This is normally set from
 # Makefile.
@@ -37,14 +39,14 @@ DOCSTRINGDIR="${DOCSTRINGDIR:-docstrings/}"
 # is normally set from Makefile.
 #PACKAGES="${PACKAGES:-:COMMON-LISP :SB-ALIEN :SB-DEBUG :SB-EXT :SB-GRAY :SB-MOP :SB-PROFILE :SB-THREAD}"
 
-echo /creating docstring snippets from SBCL=\'$SBCL\' for packages \'$PACKAGES\'
-echo "(progn (load \"docstrings.lisp\") (dolist (module (quote ($MODULES))) (require module)) (docstrings-to-texinfo \"$DOCSTRINGDIR\" $PACKAGES) (sb-ext:quit))" | $SBCL --noinform --sysinit /dev/null --userinit /dev/null --noprint --disable-debugger
+echo /creating docstring snippets from SBCL=\'$SBCLRUNTIME\' for packages \'$PACKAGES\'
+echo "(progn (load \"docstrings.lisp\") (dolist (module (quote ($MODULES))) (require module)) (docstrings-to-texinfo \"$DOCSTRINGDIR\" $PACKAGES) (sb-ext:quit))" | $SBCL
 
 echo /creating contrib-docs.texi-temp
-echo "(load \"create-contrib-doc-list.lisp\")" | $SBCL --noinform --sysinit /dev/null --userinit /dev/null --noprint --disable-debugger
+echo "(load \"create-contrib-doc-list.lisp\")" | $SBCL
 
 echo /creating package-locks.texi-temp
-if $SBCL --noinform --sysinit /dev/null --userinit /dev/null --noprint --disable-debugger --eval '(quit :unix-status #+sb-package-locks 0 #-sb-package-locks 1)'
+if $SBCL --eval "(let ((plp (find-symbol \"PACKAGE-LOCKED-P\" :sb-exit))) (quit :unix-status (if (and plp (fboundp plp)) 0 1)))";
 then
     cp package-locks-extended.texinfo package-locks.texi-temp
 else
index d5fa812..a4740b6 100644 (file)
@@ -1,7 +1,13 @@
 @node Package Locks
+@comment  node-name,  next,  previous,  up
 @chapter Package Locks
 
-SBCL does not currently include package locking support by default. To
-build SBCL with package locking enabled add @code{:sb-package-locks}
-to target @code{*features*} as per instructions in the file
+SBCL can be built with support for package locks to protect against
+unintentional modifications of packages. The full documentation for
+package locks is only built if package locks are enabled in the image
+the documentation was built from,
+
+Package locking support is currently not built by default. To build
+SBCL with package locking enabled add @code{:sb-package-locks} to
+target @code{*features*} as per instructions in the file
 @file{INSTALL}.
index 8a1435d..e584673 100644 (file)
@@ -1,22 +1,35 @@
-@include package-locks-basic.texinfo
+@node Package Locks
+@comment  node-name,  next,  previous,  up
+@chapter Package Locks
 
-None of the following sections apply to SBCL built
-without package locks.
+None of the following sections apply to SBCL built without package
+locksing support.
 
-The interface described here is experimental: incompatible changes
-in future SBCL releases are possible, even expected.
+The interface described here is experimental: incompatible changes in
+future SBCL releases are possible, even expected: most notably the
+consept of implementation packages and the associated operators may be
+renamed.
 
 @menu
-* Package Locking Overview::                    
+* Package Lock Concepts::
+* Package Lock Dictionary::
+@end menu
+
+@node Package Lock Concepts
+@section Package Lock Concepts
+
+@menu
+* Package Lock Overview::                    
 * Implementation Packages::     
-* Package Locked Errors::       
+* Package Lock Violations::
 * Package Locks in Compiled Code::               
-* Package Lock Violations::     
-* Package Lock Dictionary::
+* Operations Violating Package Locks::
 @end menu
 
-@node Package Locking Overview
-@section Package Locking Overview
+@node Package Lock Overview
+@comment  node-name,  next,  previous,  up
+@subsection Package Locking Overview
+
 Package locks protect against unintentional modifications of a
 package: they provide similar protection to user packages as is
 mandated to @code{common-lisp} package by the ANSI specification. They
@@ -33,7 +46,7 @@ ensure that various libraries don't pollute it without asking,
 but this is not currently done by default.
 
 @node Implementation Packages
-@section Implementation Packages
+@subsection Implementation Packages
 
 Each package has a list of associated implementation packages. A
 locked package, and the symbols whose home package it is, can be
@@ -45,8 +58,8 @@ Unless explicitly altered by @code{defpackage},
 @code{sb-ext:remove-implementation-package} each package is its own
 (only) implementation package.
 
-@node Package Locked Errors
-@section Package Locked Errors
+@node Package Lock Violations
+@subsection Package Lock Violations
 
 If an operation violates a package lock, a continuable error that is
 of a subtype of @code{sb-ext:package-lock-violation} (subtype of
@@ -61,9 +74,9 @@ violation: operations on packages signal errors of type
 errors of type @code{sb-ext:symbol-package-locked-error}.
 
 @node Package Locks in Compiled Code
-@section Package Locks in Compiled Code
+@subsection Package Locks in Compiled Code
 
-@subsection Lexical bindings and declarations
+@subsubsection Lexical bindings and declarations
 
 Compiling lexical binding constructs or lexical declarations that
 violate package locks package cause a compile-time package-lock
@@ -91,13 +104,13 @@ Example:
        ,@@body)))
 @end lisp
 
-@subsection Interned symbols
+@subsubsection Interned symbols
 
 If compiled code contains interned symbols, then loading that code
 into an image without the said symbols will not cause a package lock
 violation even if the packages in question are locked.
 
-@subsection Other limitations on compiled code
+@subsubsection Other limitations on compiled code
 
 With the exception of the aforementioned contructs, and interned
 symbols, behaviour is unspecified if package locks affecting compiled
@@ -112,10 +125,10 @@ unlocked.
 In practise all this means that package-locks have a neglible
 performance penalty in compiled code as long as they are not violated.
 
-@node Package Lock Violations
-@section Package Lock Violations
+@node Operations Violating Package Locks
+@subsection Operations Violating Package Locks
 
-@heading Operations on Packages
+@subsubsection Operations on Packages
 
 Following actions cause a package lock violation if the package
 operated on is locked, and @code{*package*} is not an implementation
@@ -151,7 +164,7 @@ Deleting a package.
 
 @end enumerate
 
-@heading Operations on Symbols
+@subsubsection Operations on Symbols
 
 Following actions cause a package lock violation if the home package
 of the symbol operated on is locked, and @code{*package*} is not an
index 120f163..e65feee 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.12.18"
+"0.8.12.19"