X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/b2983f3591981a916f748362d91ff0e2817552cb..d5fdd49e70b734b791eb907706f92da5775e2a8b:/doc/layout.tex diff --git a/doc/layout.tex b/doc/layout.tex index 7a82634..458ceef 100644 --- a/doc/layout.tex +++ b/doc/layout.tex @@ -68,6 +68,10 @@ {find-slot-initializer @ @ @> @} \end{describe} +\begin{describe}{gf} + {find-class-initializer @ @ @> @} +\end{describe} + \begin{describe}{gf}{find-slot-initargs @ @ @> @} \end{describe} @@ -97,7 +101,7 @@ \begin{describe}{gf}{compute-islots @ @ @> @} \end{describe} -\begin{describe}{gf}{vtable-pointer () \&key :class :chain-head :chain-tail} +\begin{describe}{cls}{vtable-pointer () \&key :class :chain-head :chain-tail} \end{describe} \begin{describe*} @@ -106,20 +110,20 @@ \dhead{gf}{vtable-pointer-chain-tail @ @> @}} \end{describe*} -\begin{describe}{gf}{ichain () \&key :class :chain-head :chain-tail :body} +\begin{describe}{cls}{ichain () \&key :class :chain-head :chain-tail :body} \end{describe} \begin{describe*} {\dhead{gf}{ichain-class @ @> @} - \dhead{gf}{ichain-chain-head @ @> @} - \dhead{gf}{ichain-chain-tail @ @> @} + \dhead{gf}{ichain-head @ @> @} + \dhead{gf}{ichain-tail @ @> @} \dhead{gf}{ichain-body @ @> @}} \end{describe*} \begin{describe}{gf}{compute-ichain @ @ @> @} \end{describe} -\begin{describe}{gf}{ilayout () \&key :class :ichains} +\begin{describe}{cls}{ilayout () \&key :class :ichains} \end{describe} \begin{describe*} @@ -127,7 +131,7 @@ \dhead{gf}{ilayout-ichains @ @> @}} \end{describe*} -\begin{describe}{gf}{sod-class-ilayout @> @} +\begin{describe}{gf}{sod-class-ilayout @ @> @} \end{describe} \begin{describe}{gf}{compute-ilayout @ @> @} @@ -145,6 +149,11 @@ \dhead{gf}{vtmsgs-entries @ @> @}} \end{describe*} +\begin{describe}{gf} + {compute-vtmsgs @ @ @ @ + @> @} +\end{describe} + \begin{describe}{cls} {class-pointer () \&key :class :chain-head :metaclass :meta-chain-head} \end{describe} @@ -188,7 +197,7 @@ @> @} \end{describe} -\begin{describe}{gf}{vtable () \&key :class :chain-head :chain-tail :body} +\begin{describe}{cls}{vtable () \&key :class :chain-head :chain-tail :body} \end{describe} \begin{describe*} @@ -226,14 +235,35 @@ \end{describe*} \begin{describe}{gf} - {sod-message-effective-method-class @ @> @} + {sod-message-receiver-type @ @ @> @} \end{describe} -\begin{describe}{gf}{primary-method-class @ @> @} +\begin{describe}{gf} + {sod-message-applicable-methods @ @ @> list} +\end{describe} + +\begin{describe}{gf} + {sod-message-keyword-argument-lists @ @ + @ @ + \nlret @} +\end{describe} + +\begin{describe}{fun} + {compute-effective-method-keyword-arguments @ + @ + @ + \nlret @} \end{describe} \begin{describe}{gf} - {method-keyword-argument-lists @ @ @> @} + {sod-message-check-methods @ @ @} +\end{describe} + +\begin{describe}{gf} + {sod-message-effective-method-class @ @> @} +\end{describe} + +\begin{describe}{gf}{primary-method-class @ @> @} \end{describe} \begin{describe}{gf} @@ -272,6 +302,9 @@ \begin{describe}{gf}{sod-method-next-method-type @ @> @} \end{describe} +\begin{describe}{gf}{sod-method-description @ @> @} +\end{describe} + \begin{describe}{gf}{sod-method-function-name @ @> @} \end{describe} @@ -301,7 +334,7 @@ \begin{describe}{cls} - {method-codegen (codegen) \\ \ind + {method-codegen (codegen) \\ \ind \&key :vars :insts :temp-index :message :class :method :target} \end{describe} @@ -317,9 +350,17 @@ {\dhead{cls}{convert-to-ilayout-inst (inst)} \dhead{fun} {make-convert-to-ilayout-inst @ @ @}} + \def\makelabels#1#2{% + #1{gf}{inst-class}[#2]#1{gf}{inst-chain-head}[#2]% + \descindex{gf}{inst-expr}[#2]% + } + \makelabels{\desclabel}{|(} + \begin{prog} SOD_ILAYOUT(@, @, @) \end{prog} + + \makelabels{\descindex}{|)} \end{describe*} @@ -372,17 +413,17 @@ \end{describe} \begin{describe}{cls} - {daemon-direct-method (basic-direct-method) \\ \ind + {daemon-direct-method (basic-direct-method) \\ \ind \&key :message :location :class :type :body :role} \end{describe} \begin{describe}{cls} - {delegating-direct-method (basic-direct-method) \\ \ind + {delegating-direct-method (basic-direct-method) \\ \ind \&key :message :location :class :type :body :role} \end{describe} \begin{describe}{cls} - {basic-effective-method (effective-method) \\ \ind + {basic-effective-method (effective-method) \\ \ind \&key :message :class :around-methods :before-methods :after-methods} \end{describe} @@ -397,7 +438,7 @@ \end{describe*} \begin{describe}{cls} - {simple-effective-method (basic-effective-method) \\ \ind + {simple-effective-method (basic-effective-method) \\ \ind \&key :message :class :around-methods :before-methods :after-methods :primary-methods} \end{describe} @@ -411,7 +452,7 @@ \end{describe} \begin{describe}{cls} - {standard-effective-method (simple-effective-method) \\ \ind + {standard-effective-method (simple-effective-method) \\ \ind \&key :message :class :around-methods :before-methods :after-methods :primary-methods} \end{describe} @@ -421,13 +462,18 @@ \&key :name :location :class :type :combination} \end{describe} +\begin{describe*} + {\dhead{gf}{sod-message-combination @ @> @} + \dhead{gf}{sod-message-kernel-function @ @> @}} +\end{describe*} + \begin{describe}{gf} {aggregating-message-properties @ @ @> @} \end{describe} \begin{describe}{gf} {compute-aggregating-message-kernel - \=@ @ @ \+ \\ + \=@ @ @ \+\\ @ @ \&key} \end{describe} @@ -436,21 +482,21 @@ \end{describe} \begin{describe}{cls} - {aggregating-effective-method (simple-effective-method) \\ \ind + {aggregating-effective-method (simple-effective-method) \\ \ind \&key :message :class :around-methods :before-methods :after-methods :primary-methods} \end{describe} \begin{describe}{mac} - {define-aggregating-method-combination @ \\ \ind\ind + {define-aggregating-method-combination @ \\ \ind\ind ((@^*) @[[ :codegen @ @! - :methods @ @]]) \- \\ + :methods @ @]]) \-\\ @[[ \=:properties (@{ (@{ @ @! (@[@@] @) @} @ @[@ - @[@@]@]) @}^*) @! \+ \\ - :return-type @ @! \\ + @[@@]@]) @}^*) @! \+\\ + :return-type @ @! \\ :around @ @! :first-method @ @! :method @ @]]}