%%%----- 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
{find-slot-initializer @<class> @<slot> @> @<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}
\dhead{gf}{ilayout-ichains @<ilayout> @> @<list>}}
\end{describe*}
+\begin{describe}{gf}{sod-class-ilayout <class> @> @<ilayout>}
+\end{describe}
+
\begin{describe}{gf}{compute-ilayout @<class> @> @<ilayout>}
\end{describe}
\begin{describe}{gf}{compute-vtable @<class> @<chain> @> @<vtable>}
\end{describe}
+\begin{describe}{gf}{sod-class-vtables @<class> @> @<list>}
+\end{describe}
+
\begin{describe}{gf}{compute-vtables @<class> @> @<list>}
\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 @<method> @> @<message>}
- \dhead{gf}{effective-method-class @<method> @> @<class>}}
+ \dhead{gf}{effective-method-class @<method> @> @<class>}
+ \dhead{gf}{effective-method-keywords @<method> @> @<list>}}
\end{describe*}
-\begin{describe}{gf}{message-effective-method-class @<message> @> @<class>}
+\begin{describe}{gf}
+ {sod-message-effective-method-class @<message> @> @<class>}
\end{describe}
\begin{describe}{gf}{primary-method-class @<message> @> @<class>}
\end{describe}
+\begin{describe}{gf}
+ {method-keyword-argument-lists @<method> @<direct-methods> @<state>
+ @> @<list>}
+\end{describe}
+
\begin{describe}{gf}
{compute-sod-effective-method @<message> @<class> @> @<method>}
\end{describe}
+\begin{describe}{gf}{sod-class-effective-methods @<class> @> @<list>}
+\end{describe}
+
\begin{describe}{gf}{compute-effective-methods @<class> @> @<list>}
\end{describe}
\begin{describe}{gf}{sod-message-argument-tail @<message> @> @<list>}
\end{describe}
-\begin{describe}{gf}{sod-message-no-varargs-tail @<message> @> @<list>}
-\end{describe}
-
\begin{describe}{gf}{sod-method-function-type @<method> @> @<c-type>}
\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}
\begin{describe}{fun}{varargs-message-p @<message> @> @<generalized-boolean>}
\end{describe}
+\begin{describe}{fun}{keyword-message-p @<message> @> @<generalized-boolean>}
+\end{describe}
+
\begin{describe}{gf}{method-entry-function-type @<entry> @> @<c-type>}
\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}
\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}
\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> @]]}