diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 6813080..dfff2b9 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -19727,7 +19727,7 @@ Formal for libdb.text:
\calls{buildLibdbString}{stringimage}
\begin{chunk}{defun buildLibdbString}
(defun |buildLibdbString| (arg)
- (let (x u (result ""))
+ (let (x u)
(setq x (car arg))
(setq u (cdr arg))
(strconc (stringimage x)
@@ -19809,8 +19809,7 @@ Formal for libdb.text:
\defsdollar{buildLibdbConEntry}{conname}
\begin{chunk}{defun buildLibdbConEntry}
(defun |buildLibdbConEntry| (conname)
- (let (abb conform pname tmp3 z kind argl tmp1 tmp2 r conComments argpart
- sigpart header)
+ (let (abb conform pname kind argl tmp1 conComments argpart sigpart header)
(declare (special |$exposed?| |$doc| |$kind| |$conname| |$conform|))
(cond
((null (getdatabase conname 'constructormodemap)) nil)
@@ -19862,6 +19861,126 @@ Formal for libdb.text:
\end{chunk}
+\defun{buildLibOps}{buildLibOps}
+\calls{buildLibOps}{buildLibOp}
+\begin{chunk}{defun buildLibOps}
+(defun |buildLibOps| (oplist)
+ (loop for item in oplist
+ do (|buildLibOp| (car item) (cadr item) (cddr item))))
+
+\end{chunk}
+
+\defun{buildLibOp}{buildLibOp}
+\calls{buildLibOp}{sublislis}
+\calls{buildLibOp}{msubst}
+\calls{buildLibOp}{form2LispString}
+\calls{buildLibOp}{stringimage}
+\calls{buildLibOp}{strconc}
+\calls{buildLibOp}{libdbTrim}
+\calls{buildLibOp}{concatWithBlanks}
+\calls{buildLibOp}{lassoc}
+\calls{buildLibOp}{checkCommentsForBraces}
+\calls{buildLibOp}{writedb}
+\calls{buildLibOp}{buildLibdbString}
+\refsdollar{buildLibOp}{kind}
+\refsdollar{buildLibOp}{doc}
+\refsdollar{buildLibOp}{exposed?}
+\refsdollar{buildLibOp}{conform}
+\begin{chunk}{defun buildLibOp}
+(defun |buildLibOp| (op sig pred)
+ (let (nsig sigpart predString s sop header conform comments)
+ (declare (special |$kind| |$doc| |$exposed?| |$conform|))
+ (setq nsig (sublislis (cdr |$conform|) |$FormalMapVariableList| sig))
+ (setq pred (sublislis (cdr |$conform|) |$FormalMapVariableList| pred))
+ (setq nsig (msubst 't 't$ nsig))
+ (setq pred (msubst 't 't$ pred))
+ (setq sigpart (|form2LispString| (cons '|Mapping| nsig)))
+ (setq predString (if (eq pred t) "" (|form2LispString| pred)))
+ (setq sop
+ (cond
+ ((string= (setq s (stringimage op)) "One") "1")
+ ((string= s "Zero") "0")
+ (t s)))
+ (setq header (strconc "o" sop))
+ (setq conform (strconc |$kind| (|form2LispString| |$conform|)))
+ (setq comments
+ (|libdbTrim| (|concatWithBlanks| (lassoc sig (lassoc op |$doc|)))))
+ (|checkCommentsForBraces| '|operation| sop sigpart comments)
+ (|writedb|
+ (|buildLibdbString|
+ (list header (|#| (cdr sig)) |$exposed?| sigpart
+ conform predString comments)))))
+
+\end{chunk}
+
+\defun{buildLibAttrs}{buildLibAttrs}
+\calls{buildLibAttrs}{buildLibAttr}
+\begin{chunk}{defun buildLibAttrs}
+(defun |buildLibAttrs| (attrlist)
+ (let (name argl pred)
+ (loop for item in attrlist
+ do (|buildLibAttr| (car item) (cadr item) (cddr item)))))
+
+\end{chunk}
+
+\defun{buildLibAttr}{buildLibAttr}
+\begin{verbatim}
+ attributes AKname\#\args\conname\pred\comments (K is U or C)
+\end{verbatim}
+\calls{buildLibAttr}{stringimage}
+\calls{buildLibAttr}{form2LispString}
+\calls{buildLibAttr}{sublislis}
+\calls{buildLibAttr}{concatWithBlanks}
+\calls{buildLibAttr}{lassoc}
+\calls{buildLibAttr}{checkCommentsForBraces}
+\calls{buildLibAttr}{writedb}
+\calls{buildLibAttr}{buildLibdbString}
+\calls{buildLibAttr}{length}
+\refsdollar{buildLibAttr}{conform}
+\refsdollar{buildLibAttr}{FormalMapVariableList}
+\refsdollar{buildLibAttr}{kind}
+\refsdollar{buildLibAttr}{doc}
+\refsdollar{buildLibAttr}{exposed?}
+\refsdollar{buildLibAttr}{conname}
+\begin{chunk}{defun buildLibAttr}
+(defun |buildLibAttr| (name argl pred)
+ (let (argPart predString header conname comments)
+ (declare (special |$kind| |$conname| |$doc| |$conform|
+ |$FormalMapVariableList| |$exposed?|))
+ (setq header (strconc "a" (stringimage name)))
+ (setq argPart (substring (|form2LispString| (cons '|f| argl)) 1 nil))
+ (setq pred (sublislis (cdr |$conform|) |$FormalMapVariableList| pred))
+ (setq predString (if (eq pred t) "" (|form2LispString| pred)))
+ (setq header (strconc "a" (stringimage name)))
+ (setq conname (strconc |$kind| (|form2LispString| |$conname|)))
+ (setq comments
+ (|concatWithBlanks| (lassoc (cons '|attribute| argl) (lassoc name |$doc|))))
+ (|checkCommentsForBraces| '|attribute| (stringimage name) argl comments)
+ (|writedb|
+ (|buildLibdbString|
+ (list header (|#| argl) |$exposed?| argPart
+ conname predString comments)))))
+
+\end{chunk}
+
+\defun{screenLocalLine}{screenLocalLine}
+\calls{screenLocalLine}{dbPart}
+\calls{screenLocalLine}{charPosition}
+\calls{screenLocalLine}{dbName}
+\calls{screenLocalLine}{dbKind}
+\begin{chunk}{defun screenLocalLine}
+(defun |screenLocalLine| (line conlist)
+ (let (s k con)
+ (setq k (|dbKind| line))
+ (setq con
+ (intern (cond ((or (char= k #\o) (char= k #\a))
+ (setq s (|dbPart| line 5 1))
+ (setq k (|charPosition| #\( s 1))
+ (substring s 1 (1- k)))
+ (t (|dbName| line)))))
+ (member con conlist)))
+
+\end{chunk}
\chapter{Comment Syntax Checking}
@@ -26216,9 +26335,13 @@ The current input line.
\getchunk{defun blankp}
\getchunk{defun bootStrapError}
+\getchunk{defun buildLibAttr}
+\getchunk{defun buildLibAttrs}
\getchunk{defun buildLibdb}
\getchunk{defun buildLibdbConEntry}
\getchunk{defun buildLibdbString}
+\getchunk{defun buildLibOp}
+\getchunk{defun buildLibOps}
\getchunk{defun bumperrorcount}
\getchunk{defun canReturn}
@@ -26832,6 +26955,7 @@ The current input line.
\getchunk{defun /RQ,LIB}
\getchunk{defun rwriteLispForm}
+\getchunk{defun screenLocalLine}
\getchunk{defun setDefOp}
\getchunk{defun seteltModemapFilter}
\getchunk{defun setqMultiple}
diff --git a/changelog b/changelog
index f4efa46..1fa19a3 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20120102 tpd src/axiom-website/patches.html 20120102.01.tpd.patch
+20120101 tpd src/interp/br-con.lisp treeshake compiler
+20120101 tpd books/bookvol9 treeshake compiler
20120101 tpd src/axiom-website/patches.html 20120101.03.tpd.patch
20120101 tpd src/interp/cattable.lisp treeshake compiler
20120101 tpd books/bookvol9 treeshake compiler
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 081cd71..86c2806 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3759,5 +3759,7 @@ books/bookvol9 treeshake compiler
books/bookvol9 treeshake compiler
20120101.03.tpd.patch
books/bookvol9 treeshake compiler
+20120102.01.tpd.patch
+books/bookvol9 treeshake compiler