chiark / gitweb /
src/method-{impl,proto}.lisp: Add `sod-method-description'.
[sod] / doc / layout.tex
index 688d6933e65611cb753cc60187070ad192f0a6d8..80c264e1d9b39452fb50491bbfc2c3147f77ae78 100644 (file)
@@ -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
@@ -68,6 +68,9 @@
     {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}
 \begin{describe}{gf}{primary-method-class @<message> @> @<class>}
 \end{describe}
 
+\begin{describe}{gf}
+    {method-keyword-argument-lists @<method> @<direct-methods> @> @<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> @]]}