X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/e45a106df3272c787444bc6f7b8920016b7fc677..00d59354c311fb28730b7c9b117b0d91aac092cc:/doc/meta.tex diff --git a/doc/meta.tex b/doc/meta.tex index 726e28b..f341414 100644 --- a/doc/meta.tex +++ b/doc/meta.tex @@ -39,6 +39,7 @@ \begin{describe*} {\dhead{gf}{sod-class-name @ @> @} + \dhead{meth}{sod-class}{file-location (@ sod-class) @> @} \dhead{gf}{sod-class-nickname @ @> @} \dhead{gf}{sod-class-direct-superclasses @ @> @} \dhead{gf}{sod-class-chain-link @ @> @} @@ -62,23 +63,10 @@ \end{describe*} \begin{describe}{fun} - {make-sod-class @ @ @ \&optional @ + {make-sod-class @ @ @ \&key :location @> @} \end{describe} -\begin{describe*} - {\dhead{lmac}{slot @ @ @{ @ @ @}^*} - \dhead{lmac}{instance-initializer @ @ - @ @ - @{ @ @ @}^*} - \dhead{lmac}{class-initializer @ @ - @ @ - @{ @ @ @}^*} - \dhead{lmac}{message @ @ @{ @ @ @}^*} - \dhead{lmac}{method @ @ @ @ - @{ @ @ @}^*}} -\end{describe*} - \begin{describe}{fun} {find-superclass-by-nick @ @ @> @} \end{describe} @@ -99,6 +87,9 @@ \nlret @} \end{describe} +\begin{describe}{gf}{guess-metaclass @ @> @} +\end{describe} + \begin{describe}{fun} {sod-subclass-p @ @ @> @} \end{describe} @@ -117,12 +108,13 @@ \begin{describe*} {\dhead{gf}{sod-slot-name @ @> @} + \dhead{meth}{sod-slot}{file-location (@ sod-slot) @> @} \dhead{gf}{sod-slot-class @ @> @} \dhead{gf}{sod-slot-type @ @> @}} \end{describe*} \begin{describe}{gf} - {make-sod-slot @ @ @ @ \&optional @ + {make-sod-slot @ @ @ @ \&key :location @> @} \end{describe} @@ -135,11 +127,6 @@ @> @}} \end{describe*} -\begin{describe}{fun} - {find-instance-slot-by-name @ @ @ - @> @} -\end{describe} - \begin{describe}{cls} {sod-class-slot (sod-slot) \\ \ind \&key :name :location :pset :class :type @@ -153,98 +140,98 @@ \begin{describe*} {\dhead{cls}{sod-initializer () - \&key :slot :location :class :value} + \&key :slot :location :class :value} \dhead{cls}{sod-instance-initializer (sod-initializer) - \&key :slot :location :class :value} + \&key :slot :location :class :value} \dhead{cls}{sod-class-initializer (sod-initializer) - \&key :slot :location :class :value}} + \&key :slot :location :class :value}} \end{describe*} \begin{describe*} {\dhead{gf}{sod-initializer-slot @ @> @} - \dhead{gf}{sod-initializer-value @ @> @}} + \dhead{meth}{sod-initializer} + {file-location (@ sod-initializer) @> @} + \dhead{gf}{sod-initializer-value @ @> @} + \dhead{gf}{sod-initializer-class @ @> @}} \end{describe*} \begin{describe*} {\dhead{gf} - {make-slot-instance-initializer - \=@ @ @ @ @ \&optional @ + {make-sod-instance-initializer + \=@ @ @ @ @ \\ + \>\&key :inhibit-initargs :location :add-to-class \nlret @} \dhead{gf} - {make-slot-class-initializer - \=@ @ @ @ @ \&optional @ + {make-sod-class-initializer + \=@ @ @ @ @ \\ + \>\&key :location :add-to-class \nlret @}} \end{describe*} \begin{describe}{gf} {make-sod-initializer-using-slot - \=@ @ @ @ @ \&optional @ + @ @ @ @ @ @ \nlret @} \end{describe} -\begin{describe}{cls}{sod-initarg () \&key :class :location :name :type} -\end{describe} +\begin{describe*} + {\dhead{cls}{sod-initarg () \&key :class :location :name :type} + \dhead{cls}{sod-user-initarg (sod-initarg) + \&key :class :location :name :type :default} + \dhead{cls}{sod-slot-initarg (sod-initarg) + \&key :class :location :name :type :slot}} +\end{describe*} \begin{describe*} {\dhead{gf}{sod-initarg-class @ @> @} \dhead{gf}{sod-initarg-name @ @> @} - \dhead{gf}{sod-initarg-type @ @> @}} + \dhead{gf}{sod-initarg-type @ @> @} + \dhead{gf}{sod-initarg-default @ @> @} + \dhead{gf}{sod-initarg-slot @ @> @}} \end{describe*} -\begin{describe}{cls} - {sod-user-initarg (sod-initarg) - \&key :class :location :name :type :default} -\end{describe} - -\begin{describe}{gf} - {make-sod-user-initarg @ @ @ @ - \&optional @ @} -\end{describe} - -\begin{describe}{gf}{sod-initarg-default @ @> @} -\end{describe} - -\begin{describe}{cls} - {sod-slot-initarg (sod-initarg) - \&key :class :location :name :type :slot} -\end{describe} - -\begin{describe}{gf}{sod-initarg-slot @ @> @} -\end{describe} - -\begin{describe}{gf} - {make-sod-slot-initarg @ @ @ @ @ - \&optional @} +\begin{describe}{gf}{sod-initarg-argument @ @> @} \end{describe} \begin{describe}{gf} - {make-sod-slot-initarg @ @ @ @ @ - \&optional @} + {make-sod-user-initarg @ @ @ @ + \&key :default :location + \nlret @} \end{describe} -\begin{describe}{gf} - {make-sod-slot-initarg-using-slot @ @ @ @ - \&optional @} -\end{describe} +\begin{describe*} + {\dhead{gf} + {make-sod-slot-initarg @ @ @ @ @ + \&key :location + \nlret @} + \dhead{gf} + {make-sod-slot-initarg-using-slot @ @ @ @ + \&key :location + \nlret @}} +\end{describe*} \begin{describe*} {\dhead{gf}{make-sod-class-initfrag @ @ @ - \&optional @} + \&key :location} \dhead{gf}{make-sod-class-tearfrag @ @ @ - \&optional @}} + \&key :location}} \end{describe*} -\begin{describe}{cls}{sod-message () \&key :name :location :class :type} +\begin{describe}{cls} + {sod-message () \&key :name :location :readonly :class :type} \end{describe} \begin{describe*} {\dhead{gf}{sod-message-name @ @> @} + \dhead{meth}{sod-message} + {file-location (@ sod-message) @> @} + \dhead{gf}{sod-message-readonly-p @ @> @} \dhead{gf}{sod-message-class @ @> @} \dhead{gf}{sod-message-type @ @> @}} \end{describe*} \begin{describe}{gf} - {make-sod-message @ @ @ @ \&optional @ + {make-sod-message @ @ @ @ \&key :location @> @} \end{describe} @@ -262,6 +249,8 @@ \begin{describe*} {\dhead{gf}{sod-method-message @ @> @} + \dhead{meth}{sod-method} + {file-location (@ sod-method) @> @} \dhead{gf}{sod-method-class @ @> @} \dhead{gf}{sod-method-type @ @> @} \dhead{gf}{sod-method-body @ @> @}} @@ -270,7 +259,7 @@ \begin{describe}{gf} {make-sod-method \=@ @ @ @ @ \+\\ - @ \&optional @ \- + @ \&key :location \- \nlret @} \end{describe} @@ -278,7 +267,7 @@ {make-sod-method-using-message \=@ @ @ @ \+\\ - @ \&optional @ \- + @ \&key :location \- \nlret @} \end{describe} @@ -305,6 +294,29 @@ {check-method-argument-lists @ @} \end{describe} +\begin{describe}{cls} + {static-instance () + \&key :name :location :externp :constp :class :initializers} +\end{describe} + +\begin{describe*} + {\dhead{gf}{static-instance-name @ @> @} + \dhead{gf}{static-instance-extern-p @ + @> @} + \dhead{gf}{static-instance-const-p @ + @> @} + \dhead{gf}{static-instance-class @ @> @} + \dhead{gf}{static-instance-initializers @ @> @} + \dhead{gf} + {setf (static-instance-initializers @) @}} +\end{describe*} + +\begin{describe}{gf} + {make-static-instance @ @ @ + @ @ \&key + \nlret @} +\end{describe} + %%%-------------------------------------------------------------------------- \section{Class finalization protocol} \label{sec:meta.finalization} @@ -330,23 +342,35 @@ \begin{describe}{gf}{compute-cpl @ @> @} \end{describe} -\begin{describe}{fun}{merge-class-lists @ @ @> @} +\begin{describe}{fun} + {report-class-list-merge-error @ @ @} +\end{describe} + +\begin{describe}{fun}{merge-class-lists @ @ @ @> @} \end{describe} \begin{describe}{gf}{compute-chains @ @> @} \end{describe} -\begin{describe}{gf}{guess-metaclass @ @> @} +\begin{describe}{gf}{check-class-initializer @ @} + \begin{describe}{meth}{effective-slot,sod-class} + {check-class-initializer (@ effective-slot) (@ sod-class)} + \end{describe} + \begin{describe}{meth}{sod-class-effective-slot,sod-class} + {check-class-initializer (@ sod-class-effective-slot) + (@ sod-class)} + \end{describe} \end{describe} \begin{describe}{gf}{check-sod-class @} \end{describe} \begin{describe}{gf}{finalize-sod-class @ @> @} - \begin{describe}{meth}{finalize-sod-class (@ sod-class)} + \begin{describe}{meth}{sod-class} + {finalize-sod-class (@ sod-class)} \end{describe} - \begin{describe}{ar-meth}{finalize-sod-class (@ sod-class) - @> @} + \begin{describe}{ar-meth}{sod-class} + {finalize-sod-class (@ sod-class) @> @} \end{describe} \end{describe}