X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/7f2917d28642cfbdf590ff26f0cdd91a79b1c489..7f9f8b0729bcbe8da67957d56ea2dace7fd12bad:/doc/layout.tex diff --git a/doc/layout.tex b/doc/layout.tex index 688d693..da4ee38 100644 --- a/doc/layout.tex +++ b/doc/layout.tex @@ -7,7 +7,7 @@ %%%----- Licensing notice --------------------------------------------------- %%% -%%% This file is part of the Sensble Object Design, an object system for C. +%%% This file is part of the Sensible Object Design, an object system for C. %%% %%% SOD is free software; you can redistribute it and/or modify %%% it under the terms of the GNU General Public License as published by @@ -69,6 +69,13 @@ \end{describe} \begin{describe}{gf} + {find-class-initializer @ @ @> @} +\end{describe} + +\begin{describe}{gf}{find-slot-initargs @ @ @> @} +\end{describe} + +\begin{describe}{gf} {compute-effective-slot @ @ @> @} \end{describe} @@ -124,6 +131,9 @@ \dhead{gf}{ilayout-ichains @ @> @}} \end{describe*} +\begin{describe}{gf}{sod-class-ilayout @ @> @} +\end{describe} + \begin{describe}{gf}{compute-ilayout @ @> @} \end{describe} @@ -201,21 +211,46 @@ \begin{describe}{gf}{compute-vtable @ @ @> @} \end{describe} +\begin{describe}{gf}{sod-class-vtables @ @> @} +\end{describe} + \begin{describe}{gf}{compute-vtables @ @> @} \end{describe} %%%-------------------------------------------------------------------------- \section{Method combination} \label{sec:layout.methods} -\begin{describe}{cls}{effective-method () \&key :message :class} +\begin{describe}{cls}{effective-method () \&key :message :class :keywords} \end{describe} \begin{describe*} {\dhead{gf}{effective-method-message @ @> @} - \dhead{gf}{effective-method-class @ @> @}} + \dhead{gf}{effective-method-class @ @> @} + \dhead{gf}{effective-method-keywords @ @> @}} \end{describe*} \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} + {sod-message-check-methods @ @ @} +\end{describe} + +\begin{describe}{gf} {sod-message-effective-method-class @ @> @} \end{describe} @@ -226,6 +261,9 @@ {compute-sod-effective-method @ @ @> @} \end{describe} +\begin{describe}{gf}{sod-class-effective-methods @ @> @} +\end{describe} + \begin{describe}{gf}{compute-effective-methods @ @> @} \end{describe} @@ -249,21 +287,24 @@ \begin{describe}{gf}{sod-message-argument-tail @ @> @} \end{describe} -\begin{describe}{gf}{sod-message-no-varargs-tail @ @> @} -\end{describe} - \begin{describe}{gf}{sod-method-function-type @ @> @} \end{describe} \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} \begin{describe}{fun}{varargs-message-p @ @> @} \end{describe} +\begin{describe}{fun}{keyword-message-p @ @> @} +\end{describe} + \begin{describe}{gf}{method-entry-function-type @ @> @} \end{describe} @@ -278,10 +319,13 @@ {effective-method-basic-argument-names @ @> @} \end{describe} +\begin{describe}{gf} + {effective-method-live-p @ @> @} +\end{describe} \begin{describe}{cls} - {method-codegen (codegen) \\ \ind + {method-codegen (codegen) \\ \ind \&key :vars :insts :temp-index :message :class :method :target} \end{describe} @@ -352,17 +396,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} @@ -377,7 +421,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} @@ -391,7 +435,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} @@ -407,7 +451,7 @@ \begin{describe}{gf} {compute-aggregating-message-kernel - \=@ @ @ \+ \\ + \=@ @ @ \+\\ @ @ \&key} \end{describe} @@ -416,21 +460,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 @ @]]}