diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 0ee6bf9..d4de7ff 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -6395,10 +6395,8 @@ $\rightarrow$
(declare (special |$prefix| |$formalArgList|) (ignore specialCases))
(let (|$insideCategoryIfTrue| $TOP_LEVEL |$definition| |$form| |$op|
|$extraParms| |$functionStats| |$functorStats| |$frontier|
- |$getDomainCode| |$addForm| argl sargl aList
- signaturep tmp1 opp formalBody formals
- actuals g fun pairlis parSignature parForm
- modemap formp)
+ |$getDomainCode| |$addForm| argl sargl aList signaturep opp formp
+ formalBody formals actuals g fun pairlis parSignature parForm modemap)
(declare (special |$insideCategoryIfTrue| $top_level |$definition|
|$form| |$op| |$extraParms| |$functionStats|
|$functorStats| |$frontier| |$getDomainCode|
@@ -6505,6 +6503,60 @@ $\rightarrow$
\end{chunk}
+\defun{mkConstructor}{mkConstructor}
+\calls{mkConstructor}{mkConstructor}
+\begin{chunk}{defun mkConstructor}
+(defun |mkConstructor| (form)
+ (cond
+ ((atom form) (list '|devaluate| form))
+ ((null (rest form)) (list 'quote (list (first form))))
+ (t
+ (cons 'list
+ (cons (mkq (first form))
+ (loop for x in (rest form) collect (|mkConstructor| x)))))))
+
+\end{chunk}
+
+\defun{compDefineCategory}{compDefineCategory}
+\calls{compDefineCategory}{compDefineLisplib}
+\calls{compDefineCategory}{compDefineCategory1}
+\usesdollar{compDefineCategory}{domainShell}
+\usesdollar{compDefineCategory}{lisplibCategory}
+\usesdollar{compDefineCategory}{lisplib}
+\usesdollar{compDefineCategory}{insideFunctorIfTrue}
+\begin{chunk}{defun compDefineCategory}
+(defun |compDefineCategory| (df mode env prefix fal)
+ (let (|$domainShell| |$lisplibCategory|)
+ (declare (special |$domainShell| |$lisplibCategory| $lisplib
+ |$insideFunctorIfTrue|))
+ (setq |$domainShell| nil) ; holds the category of the object being compiled
+ (setq |$lisplibCategory| nil)
+ (if (and (null |$insideFunctorIfTrue|) $lisplib)
+ (|compDefineLisplib| df mode env prefix fal '|compDefineCategory1|)
+ (|compDefineCategory1| df mode env prefix fal))))
+
+\end{chunk}
+
+\defun{compDefineFunctor}{compDefineFunctor}
+\calls{compDefineFunctor}{compDefineLisplib}
+\calls{compDefineFunctor}{compDefineFunctor1}
+\usesdollar{compDefineFunctor}{domainShell}
+\usesdollar{compDefineFunctor}{profileCompiler}
+\usesdollar{compDefineFunctor}{lisplib}
+\usesdollar{compDefineFunctor}{profileAlist}
+\begin{chunk}{defun compDefineFunctor}
+(defun |compDefineFunctor| (df mode env prefix fal)
+ (let (|$domainShell| |$profileCompiler| |$profileAlist|)
+ (declare (special |$domainShell| |$profileCompiler| $lisplib |$profileAlist|))
+ (setq |$domainShell| nil)
+ (setq |$profileCompiler| t)
+ (setq |$profileAlist| nil)
+ (if $lisplib
+ (|compDefineLisplib| df mode env prefix fal '|compDefineFunctor1|)
+ (|compDefineFunctor1| df mode env prefix fal))))
+
+\end{chunk}
+
\section{Indirect called comp routines}
In the {\bf compExpression} function there is the code:
\begin{verbatim}
@@ -15651,7 +15703,9 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun compDefine}
\getchunk{defun compDefine1}
\getchunk{defun compDefineAddSignature}
+\getchunk{defun compDefineCategory}
\getchunk{defun compDefineCategory2}
+\getchunk{defun compDefineFunctor}
\getchunk{defun compElt}
\getchunk{defun compExit}
\getchunk{defun compExpression}
@@ -15773,6 +15827,7 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun match-token}
\getchunk{defun meta-syntax-error}
\getchunk{defun mkCategoryPackage}
+\getchunk{defun mkConstructor}
\getchunk{defun modifyModeStack}
\getchunk{defun ncINTERPFILE}
diff --git a/changelog b/changelog
index f67a158..90e27be 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20110518 tpd src/axiom-website/patches.html 20110518.01.tpd.patch
+20110518 tpd src/interp/define.lisp treeshake compiler
+20110518 tpd books/bookvol9 treeshake compiler
20110517 tpd src/axiom-website/patches.html 20110517.01.tpd.patch
20110517 tpd src/interp/define.lisp treeshake compiler
20110517 tpd books/bookvol9 treeshake compiler
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index ba85357..2ab7916 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3480,5 +3480,7 @@ books/bookvol9 treeshake compiler
books/bookvol9 treeshake compiler
20110517.01.tpd.patch
books/bookvol9 treeshake compiler
+20110518.01.tpd.patch
+books/bookvol9 treeshake compiler