X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/bb80145308ea388d7c6ed5336c061340e78f66e8..64a7e6515e1e585b420c1c14acda9be9ff84c3db:/doc/misc.tex diff --git a/doc/misc.tex b/doc/misc.tex index a7ac722..c253630 100644 --- a/doc/misc.tex +++ b/doc/misc.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 @@ -30,28 +30,68 @@ These symbols are defined in the @|sod-utilities| package. + +\subsection{Macro utilities} + \begin{describe}{mac} - {with-gensyms (@{ @ @! (@ @[@@]) @}^*) \\ \ind - @^*} + {with-gensyms (@{ @ @! (@ @[@@]) @}^*) \\ \ind + @^* \\ + @
^*} \end{describe} \begin{describe}{mac} {once-only (@[[ :environment @ @]] - @{ @ @! (@ @[@@]) @}^*) \\ \ind - @^*} + @{ @ @! (@ @[@@]) @}^*) \\ \ind + @^* \\ + @^*} \end{describe} \begin{describe}{mac} - {parse-body @ @> @ @ @} + {parse-body @ \&key :docp :declp + @> @ @ @} +\end{describe} + +\begin{describe}{cls}{loc} +\end{describe} + +\begin{describe}{fun}{symbolicate \&rest @ @> @} +\end{describe} + + +\subsection{Locatives} + +\begin{describe}{fun}{locp @ @> @} +\end{describe} + +\begin{describe}{mac}{locf @ @> @} +\end{describe} + +\begin{describe*} + {\dhead{fun}{ref @ @> @} + \dhead{fun}{setf (ref @) @}} +\end{describe*} + +\begin{describe}{mac} + {with-locatives + @{ @ @! (@{ @ @! + (@ @[@@]) @}^*) @} \\ \ind + @^* \\ + @^*} \end{describe} + +\subsection{Anaphorics} + \begin{describe}{sym}{it} \end{describe} \begin{describe}{mac}{aif @ @ @[@@]} \end{describe} -\begin{describe}{mac}{awhen @ @^*} +\begin{describe}{mac}{aand @^*} +\end{describe} + +\begin{describe}{mac}{awhen @ @^*} \end{describe} \begin{describe}{mac}{acond @{ (@ @^*) @}^*} @@ -69,6 +109,9 @@ These symbols are defined in the @|sod-utilities| package. \begin{describe}{mac}{asetf @{ @ @ @}^*} \end{describe} + +\subsection{Metaobject protocol utilities} + \begin{describe}{gf}{instance-initargs @} \end{describe} @@ -85,6 +128,23 @@ These symbols are defined in the @|sod-utilities| package. \dhead{gf}{eql-specializer-object @ @> @}} \end{describe*} + +\subsection{Other CLOS utilities} + +\begin{describe}{mac} + {default-slot (@ @ @[@@]) \\ \ind + @^*} +\end{describe} + +\begin{describe}{mac} + {define-on-demand-slot @ @ (@) \\ \ind + @[[ @^* @! @ @]] \\ + @^*} +\end{describe} + + +\subsection{Building lists} + \begin{describe}{fun}{make-list-builder \&optional @ @> @} \end{describe} @@ -97,35 +157,58 @@ These symbols are defined in the @|sod-utilities| package. \begin{describe}{fun}{lbuild-list @ @> @} \end{describe} -\begin{describe}{fun} - {mappend @ @ \&rest @ @> @} -\end{describe} -\begin{describe}{cls}{inconsistent-merge-error (error) \&key :candidates} +\subsection{Merging lists} + +\begin{describe}{cls} + {inconsistent-merge-error (error) \&key :candidates :present} \end{describe} \begin{describe}{gf}{merge-error-candidates @ @> @} \end{describe} +\begin{describe}{gf}{merge-error-present-function @ @> @} +\end{describe} + +\begin{describe}{fun} + {merge-lists @ \&key :pick (:test \#'eql) :present @> @} +\end{describe} + + +\subsection{Other list utilities} + \begin{describe}{fun} - {merge-lists @ \&key :pick (:test \#'eql) @> @} + {mappend @ @ \&rest @ @> @} +\end{describe} + +\begin{describe}{fun} + {distinguished-point-shortest-paths @ @ + @> @} \end{describe} \begin{describe}{mac} {categorize (\=@ @ - @[[ :bind (@{ @ @! (@ @[@@]) @}^*) @]]) - \\ \ind\ind - (@{ @ @ @}^*) \- \\ - @^* \- - \nlret @^*} + @[[ :bind (@{ @ @! + (@ @[@@]) @}^*) @]]) + \\ \ind\ind + (@{ (@ @) @}^*) \-\\ + @^* \\ + @^* + \-\nlret @^*} +\end{describe} + +\begin{describe}{fun}{partial-order-minima @ @ @> @} \end{describe} \begin{describe}{fun} - {frob-identifier @ \&key :swap-case :swap-hyphen - @> @} + {find-duplicates @ @ \&key :identity :test} \end{describe} -\begin{describe}{fun}{whitespace-char-p @ @> @} + +\subsection{Position tracking} + +\begin{describe}{fun} + {whitespace-char-p @ @> @} \end{describe} \begin{describe}{fun} @@ -138,40 +221,66 @@ These symbols are defined in the @|sod-utilities| package. @> @ @} \end{describe} + +\subsection{Object printing} + +\begin{describe}{mac} + {maybe-print-unreadable-object + (@ @ + @[[ :type @ @! + :identity @ @]]) \\ \ind + @^* \\ + @^*} +\end{describe} + +\begin{describe}{fun}{print-ugly-stuff @ @ @> @^*} +\end{describe} + + +\subsection{Condition utilities} + +\begin{describe}{cls} + {simple-control-error (control-error simple-error) + \&key :format-control :format-arguments} +\end{describe} + \begin{describe}{fun} - {compose @ \&rest @ @> @} + {designated-condition + \=@ @ @ \\ + \>\&key :allow-pointless-arguments + \nlret @} \end{describe} -\begin{describe}{fun}{symbolicate \&rest @ @> @} +\begin{describe}{fun} + {invoke-associated-restart @ @ \&rest @} \end{describe} -\begin{describe}{mac} - {maybe-print-unreadable-object (@ @ - @[[ :type @ @! - :identity @ @]]) \\ \ind - @^*} + +\subsection{Very miscellaneous utilities} + +\begin{describe}{fun} + {frob-identifier @ \&key :swap-case :swap-hyphen + @> @} \end{describe} -\begin{describe}{mac} - {dosequence (@ @ - @[[ :start @ @! :end @ @! - :indexvar @ @]]) \\ \ind - @{ @ @! @ @}^*} +\begin{describe}{fun} + {compose @ \&rest @ @> @} \end{describe} -\begin{describe}{mac} - {define-access-wrapper @ @ - @[[ :read-only @ @]]} +\begin{describe}{mac}{defvar-unbound @ @ @> @} \end{describe} \begin{describe}{mac} - {default-slot (@ @ @[@@]) \\ \ind - @^*} + {dosequence (@ @ + @[[ :start @ @! :end @ @! + :indexvar @ @]]) \\ \ind + @^* \\ + @{ @ @! @ @}^*} \end{describe} \begin{describe}{mac} - {define-on-demand-slot @ @ (@) \\ \ind - @^*} + {define-access-wrapper @ @ + @[[ :read-only @ @]]} \end{describe} %%%-------------------------------------------------------------------------- @@ -186,13 +295,29 @@ These symbols are defined in the @|sod-parser| package. {enclosed-condition @ @> @} \end{describe} +\begin{describe}{cls}{information (condition) \&key} +\end{describe} + +\begin{describe}{cls} + {simple-information (simple-condition information) \\ \ind + \&key :format-control :format-arguments} +\end{describe} + +\begin{describe}{fun}{info @ \&rest @ @> @} +\end{describe} + +\begin{describe*} + {\dhead{rst}{noted} + \dhead{fun}{noted \&optional @}} +\end{describe*} + \begin{describe}{fun}{cerror* @ \&rest @} \end{describe} %%%-------------------------------------------------------------------------- \section{Option parser} \label{sec:misc.optparse} -These symbols are defined in the @!optparse| package. +These symbols are defined in the @|optparse| package. \begin{describe}{fun}{exit \&optional (@ 0) \&key :abrupt} \end{describe} @@ -206,27 +331,6 @@ These symbols are defined in the @!optparse| package. \begin{describe}{fun}{set-command-line-arguments} \end{describe} -\begin{describe}{cls}{loc} -\end{describe} - -\begin{describe}{fun}{locp @ @> @} -\end{describe} - -\begin{describe}{macro}{locf @ @> @} -\end{describe} - -\begin{describe*} - {\dhead{fun}{ref @ @> @} - \dhead{fun}{setf (ref @) @}} -\end{describe*} - -\begin{describe}{mac} - {with-locatives - @{ @ @! (@{ @ @! - (@ @[@@]) @}^*) @} \\ \ind - @^*} -\end{describe} - \begin{describe}{fun}{moan @ \&rest @} \end{describe} @@ -243,9 +347,10 @@ These symbols are defined in the @!optparse| package. \end{describe} \begin{describe}{fun} - {make-option \=@ @ \+ \\ - \&optional @ \\ - \&key :tag :negated-tag :arg-optional-p :documentation \- + {make-option \=@ @ \+\\ + \&optional @ \\ + \&key :tag :negated-tag + :arg-optional-p :documentation \- \nlret @