\end{describe}
\begin{describe}{gf}
+ {find-class-initializer @<slot> @<class> @> @<init-or-nil>}
+\end{describe}
+
+\begin{describe}{gf}{find-slot-initargs @<class> @<slot> @> @<list>}
+\end{describe}
+
+\begin{describe}{gf}
{compute-effective-slot @<class> @<slot> @> @<effective-slot>}
\end{describe}
\begin{describe}{gf}{compute-islots @<class> @<subclass> @> @<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*}
\dhead{gf}{vtable-pointer-chain-tail @<vtable-pointer> @> @<class>}}
\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 @<ichain> @> @<class>}
- \dhead{gf}{ichain-chain-head @<ichain> @> @<class>}
- \dhead{gf}{ichain-chain-tail @<ichain> @> @<class>}
+ \dhead{gf}{ichain-head @<ichain> @> @<class>}
+ \dhead{gf}{ichain-tail @<ichain> @> @<class>}
\dhead{gf}{ichain-body @<ichain> @> @<list>}}
\end{describe*}
\begin{describe}{gf}{compute-ichain @<class> @<chain> @> @<ichain>}
\end{describe}
-\begin{describe}{gf}{ilayout () \&key :class :ichains}
+\begin{describe}{cls}{ilayout () \&key :class :ichains}
\end{describe}
\begin{describe*}
\dhead{gf}{ilayout-ichains @<ilayout> @> @<list>}}
\end{describe*}
-\begin{describe}{gf}{sod-class-ilayout <class> @> @<ilayout>}
+\begin{describe}{gf}{sod-class-ilayout @<class> @> @<ilayout>}
\end{describe}
\begin{describe}{gf}{compute-ilayout @<class> @> @<ilayout>}
\dhead{gf}{vtmsgs-entries @<vtmsgs> @> @<list>}}
\end{describe*}
+\begin{describe}{gf}
+ {compute-vtmsgs @<class> @<subclass> @<chain-head> @<chain-tail>
+ @> @<vtmsgs>}
+\end{describe}
+
\begin{describe}{cls}
{class-pointer () \&key :class :chain-head :metaclass :meta-chain-head}
\end{describe}
@> @<chain-offset>}
\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*}
\end{describe*}
\begin{describe}{gf}
+ {sod-message-applicable-methods @<message> @<class> @> list}
+\end{describe}
+
+\begin{describe}{gf}
+ {sod-message-keyword-argument-lists @<message> @<class>
+ @<direct-methods> @<state>
+ \nlret @<list>}
+\end{describe}
+
+\begin{describe}{fun}
+ {compute-effective-method-keyword-arguments @<message>
+ @<class>
+ @<direct-methods>
+ \nlret @<list>}
+\end{describe}
+
+\begin{describe}{gf}
+ {sod-message-check-methods @<message> @<class> @<direct-methods>}
+\end{describe}
+
+\begin{describe}{gf}
{sod-message-effective-method-class @<message> @> @<class>}
\end{describe}
\begin{describe}{gf}{sod-method-next-method-type @<method> @> @<c-type>}
\end{describe}
+\begin{describe}{gf}{sod-method-description @<method> @> @<string>}
+\end{describe}
+
\begin{describe}{gf}{sod-method-function-name @<method> @> @<string>}
\end{describe}
{effective-method-basic-argument-names @<method> @> @<list>}
\end{describe}
+\begin{describe}{gf}
+ {effective-method-live-p @<method> @> @<generalized-boolean>}
+\end{describe}
\begin{describe}{cls}
- {method-codegen (codegen) \\ \ind
+ {method-codegen (codegen) \\ \ind
\&key :vars :insts :temp-index
:message :class :method :target}
\end{describe}
{\dhead{cls}{convert-to-ilayout-inst (inst)}
\dhead{fun}
{make-convert-to-ilayout-inst @<class> @<chain-head> @<expr>}}
+ \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(@<class>, @<chain-head-nick>, @<expr>)
\end{prog}
+
+ \makelabels{\descindex}{|)}
\end{describe*}
\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}
\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}
\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}
\&key :name :location :class :type :combination}
\end{describe}
+\begin{describe*}
+ {\dhead{gf}{sod-message-combination @<message> @> @<keyword>}
+ \dhead{gf}{sod-message-kernel-function @<message> @> @<function>}}
+\end{describe*}
+
\begin{describe}{gf}
{aggregating-message-properties @<message> @<combination> @> @<plist>}
\end{describe}
\begin{describe}{gf}
{compute-aggregating-message-kernel
- \=@<message> @<combination> @<target> \+ \\
+ \=@<message> @<combination> @<target> \+\\
@<methods> @<arg-names> \&key}
\end{describe}
\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 @<combination> \\ \ind\ind
+ {define-aggregating-method-combination @<combination> \\ \ind\ind
((@<var-name>^*)
@[[ :codegen @<codegen-var> @!
- :methods @<methods-var> @]]) \- \\
+ :methods @<methods-var> @]]) \-\\
@[[ \=:properties (@{ (@{ @<name> @! (@[@<keyword>@] @<name>) @}
@<c-type>
@[@<default>
- @[@<suppliedp-var>@]@]) @}^*) @! \+ \\
- :return-type @<c-type> @! \\
+ @[@<suppliedp-var>@]@]) @}^*) @! \+\\
+ :return-type @<c-type> @! \\
:around @<around-func> @!
:first-method @<first-method-func> @!
:method @<method-func> @]]}