diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 7090eff..b78a285 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -6420,6 +6420,168 @@ $\rightarrow$
\end{chunk}
+\defun{compDefineLisplib}{compDefineLisplib}
+\calls{compDefineLisplib}{sayMSG}
+\calls{compDefineLisplib}{fillerSpaces}
+\calls{compDefineLisplib}{getConstructorAbbreviation}
+\calls{compDefineLisplib}{compileDocumentation}
+\calls{compDefineLisplib}{bright}
+\calls{compDefineLisplib}{finalizeLisplib}
+\calls{compDefineLisplib}{rshut}
+\calls{compDefineLisplib}{lisplibDoRename}
+\calls{compDefineLisplib}{filep}
+\calls{compDefineLisplib}{rpackfile}
+\calls{compDefineLisplib}{unloadOneConstructor}
+\calls{compDefineLisplib}{localdatabase}
+\calls{compDefineLisplib}{getdatabase}
+\calls{compDefineLisplib}{updateCategoryFrameForCategory}
+\calls{compDefineLisplib}{updateCategoryFrameForConstructor}
+\refsdollar{compDefineLisplib}{compileDocumentation}
+\refsdollar{compDefineLisplib}{filep}
+\refsdollar{compDefineLisplib}{spadLibFT}
+\refsdollar{compDefineLisplib}{algebraOutputStream}
+\refsdollar{compDefineLisplib}{newConlist}
+\refsdollar{compDefineLisplib}{lisplibKind}
+\defsdollar{compDefineLisplib}{lisplib}
+\defsdollar{compDefineLisplib}{op}
+\defsdollar{compDefineLisplib}{lisplibParents}
+\defsdollar{compDefineLisplib}{lisplibPredicates}
+\defsdollar{compDefineLisplib}{lisplibCategoriesExtended}
+\defsdollar{compDefineLisplib}{lisplibForm}
+\defsdollar{compDefineLisplib}{lisplibKind}
+\defsdollar{compDefineLisplib}{lisplibAbbreviation}
+\defsdollar{compDefineLisplib}{lisplibAncestors}
+\defsdollar{compDefineLisplib}{lisplibModemap}
+\defsdollar{compDefineLisplib}{lisplibModemapAlist}
+\defsdollar{compDefineLisplib}{lisplibSlot1}
+\defsdollar{compDefineLisplib}{lisplibOperationAlist}
+\defsdollar{compDefineLisplib}{lisplibSuperDomain}
+\defsdollar{compDefineLisplib}{libFile}
+\defsdollar{compDefineLisplib}{lisplibVariableAlist}
+\defsdollar{compDefineLisplib}{lisplibCategory}
+\defsdollar{compDefineLisplib}{newConlist}
+\begin{chunk}{defun compDefineLisplib}
+(defun |compDefineLisplib| (df m env prefix fal fn)
+ (let ($LISPLIB |$op| |$lisplibAttributes| |$lisplibPredicates|
+ |$lisplibCategoriesExtended| |$lisplibForm| |$lisplibKind|
+ |$lisplibAbbreviation| |$lisplibParents| |$lisplibAncestors|
+ |$lisplibModemap| |$lisplibModemapAlist| |$lisplibSlot1|
+ |$lisplibOperationAlist| |$lisplibSuperDomain| |$libFile|
+ |$lisplibVariableAlist| |$lisplibCategory| op libname res ok filearg)
+ (declare (special $lisplib |$op| |$lisplibAttributes| |$newConlist|
+ |$lisplibPredicates| |$lisplibCategoriesExtended|
+ |$lisplibForm| |$lisplibKind| |$algebraOutputStream|
+ |$lisplibAbbreviation| |$lisplibParents| |$spadLibFT|
+ |$lisplibAncestors| |$lisplibModemap| $filep
+ |$lisplibModemapAlist| |$lisplibSlot1|
+ |$lisplibOperationAlist| |$lisplibSuperDomain|
+ |$libFile| |$lisplibVariableAlist|
+ |$lisplibCategory| |$compileDocumentation|))
+ (when (eq (car df) 'def) (car df))
+ (setq op (caadr df))
+ (|sayMSG| (|fillerSpaces| 72 "-"))
+ (setq $lisplib t)
+ (setq |$op| op)
+ (setq |$lisplibAttributes| nil)
+ (setq |$lisplibPredicates| nil)
+ (setq |$lisplibCategoriesExtended| nil)
+ (setq |$lisplibForm| nil)
+ (setq |$lisplibKind| nil)
+ (setq |$lisplibAbbreviation| nil)
+ (setq |$lisplibParents| nil)
+ (setq |$lisplibAncestors| nil)
+ (setq |$lisplibModemap| nil)
+ (setq |$lisplibModemapAlist| nil)
+ (setq |$lisplibSlot1| nil)
+ (setq |$lisplibOperationAlist| nil)
+ (setq |$lisplibSuperDomain| nil)
+ (setq |$libFile| nil)
+ (setq |$lisplibVariableAlist| nil)
+ (setq |$lisplibCategory| nil)
+ (setq libname (|getConstructorAbbreviation| op))
+ (cond
+ ((and (boundp '|$compileDocumentation|) |$compileDocumentation|)
+ (|compileDocumentation| libname))
+ (t
+ (|sayMSG| (cons " initializing " (cons |$spadLibFT|
+ (append (|bright| libname) (cons "for" (|bright| op))))))
+ (|initializeLisplib| libname)
+ (|sayMSG|
+ (cons " compiling into " (cons |$spadLibFT| (|bright| libname))))
+ (setq ok nil)
+ (unwind-protect
+ (progn
+ (setq res (funcall fn df m env prefix fal))
+ (|sayMSG| (cons " finalizing " (cons |$spadLibFT| (|bright| libname))))
+ (|finalizeLisplib| libname)
+ (setq ok t))
+ (rshut |$libFile|))
+ (when ok (|lisplibDoRename| libname))
+ (setq filearg ($filep libname |$spadLibFT| 'a))
+ (rpackfile filearg)
+ (fresh-line |$algebraOutputStream|)
+ (|sayMSG| (|fillerSpaces| 72 "-"))
+ (|unloadOneConstructor| op libname)
+ (localdatabase (list (getdatabase op 'abbreviation)) nil)
+ (setq |$newConlist| (cons op |$newConlist|))
+ (cond (eq |$lisplibKind| '|category|)
+ (|updateCategoryFrameForCategory| op)
+ (|updateCategoryFrameForConstructor| op))
+ res))))
+
+\end{chunk}
+
+\defun{initializeLisplib}{initializeLisplib}
+\calls{initializeLisplib}{erase}
+\calls{initializeLisplib}{writeLib1}
+\calls{initializeLisplib}{addoptions}
+\calls{initializeLisplib}{pathnameTypeId}
+\calls{initializeLisplib}{LAM,FILEACTQ}
+\refsdollar{initializeLisplib}{erase}
+\refsdollar{initializeLisplib}{libFile}
+\defsdollar{initializeLisplib}{libFile}
+\defsdollar{initializeLisplib}{lisplibForm}
+\defsdollar{initializeLisplib}{lisplibModemap}
+\defsdollar{initializeLisplib}{lisplibKind}
+\defsdollar{initializeLisplib}{lisplibModemapAlist}
+\defsdollar{initializeLisplib}{lisplibAbbreviation}
+\defsdollar{initializeLisplib}{lisplibAncestors}
+\defsdollar{initializeLisplib}{lisplibOpAlist}
+\defsdollar{initializeLisplib}{lisplibOperationAlist}
+\defsdollar{initializeLisplib}{lisplibSuperDomain}
+\defsdollar{initializeLisplib}{lisplibVariableAlist}
+\defsdollar{initializeLisplib}{lisplibSignatureAlist}
+\uses{initializeLisplib}{/editfile}
+\uses{initializeLisplib}{/major-version}
+\uses{initializeLisplib}{errors}
+\begin{chunk}{defun initializeLisplib}
+(defun |initializeLisplib| (libName)
+ (declare (special $erase |$libFile| |$lisplibForm|
+ |$lisplibModemap| |$lisplibKind| |$lisplibModemapAlist|
+ |$lisplibAbbreviation| |$lisplibAncestors|
+ |$lisplibOpAlist| |$lisplibOperationAlist|
+ |$lisplibSuperDomain| |$lisplibVariableAlist|
+ |$lisplibSignatureAlist| /editfile /major-version errors))
+ ($erase libName 'errorlib 'a)
+ (setq errors 0)
+ (setq |$libFile| (|writeLib1| libname 'errorlib 'a))
+ (addoptions 'file |$libFile|)
+ (setq |$lisplibForm| nil)
+ (setq |$lisplibModemap| nil)
+ (setq |$lisplibKind| nil)
+ (setq |$lisplibModemapAlist| nil)
+ (setq |$lisplibAbbreviation| nil)
+ (setq |$lisplibAncestors| nil)
+ (setq |$lisplibOpAlist| nil)
+ (setq |$lisplibOperationAlist| nil)
+ (setq |$lisplibSuperDomain| nil)
+ (setq |$lisplibVariableAlist| nil)
+ (setq |$lisplibSignatureAlist| nil)
+ (when (eq (|pathnameTypeId| /editfile) 'spad)
+ (|LAM,FILEACTQ| 'version (list '/versioncheck /major-version))))
+
+\end{chunk}
+
\defun{compDefineFunctor}{compDefineFunctor}
\calls{compDefineFunctor}{compDefineLisplib}
\calls{compDefineFunctor}{compDefineFunctor1}
@@ -17043,6 +17205,7 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun compDefineCategory2}
\getchunk{defun compDefineFunctor}
\getchunk{defun compDefineFunctor1}
+\getchunk{defun compDefineLisplib}
\getchunk{defun compDefWhereClause}
\getchunk{defun compElt}
\getchunk{defun compExit}
@@ -17153,6 +17316,7 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun initialize-preparse}
\getchunk{defun initial-substring}
\getchunk{defun initial-substring-p}
+\getchunk{defun initializeLisplib}
\getchunk{defun is-console}
\getchunk{defun isListConstructor}
\getchunk{defun isSuperDomain}
diff --git a/changelog b/changelog
index 6af8def..231027e 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20110716 tpd src/axiom-website/patches.html 20110716.01.tpd.patch
+20110716 tpd src/interp/lisplib.lisp treeshake compiler
+20110716 tpd books/bookvol9 treeshake compiler
20110715 tpd src/axiom-website/patches.html 20110715.02.tpd.patch
20110715 tpd src/interp/database.lisp treeshake interpreter
20110715 tpd src/interp/lisplib.lisp treeshake interpreter
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 9a730e9..58aee9d 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3546,5 +3546,7 @@ src/interp/axext_l.lisp removed
src/interp/Makefile add (si::reset-sys-paths) per Camm
20110715.02.tpd.patch
books/bookvol5 treeshake interpreter
+20110716.01.tpd.patch
+books/bookvol9 treeshake compiler