From 1edb774eed8bea3f6dbde5b02db6ecd209394cf8 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sun, 25 Aug 2019 00:12:46 +0100 Subject: [PATCH] doc/: Switch to a manually maintained bibliography database. Actually, the database is maintained mostly by Emacs's BibTeX mode. In particular, I (mostly) allow it to choose the citation keys, rather than using Beebe's somewhat annoying key format, so hack up the document to match. --- doc/Makefile.am | 3 ++ doc/concepts.tex | 9 +++-- doc/cutting-room-floor.tex | 3 +- doc/misc.tex | 2 +- doc/sod.bib | 94 ++++++++++++++++++++++++++++++++++++++++++++++ doc/sod.tex | 4 +- doc/structures.tex | 2 +- 7 files changed, 107 insertions(+), 10 deletions(-) create mode 100644 doc/sod.bib diff --git a/doc/Makefile.am b/doc/Makefile.am index ec29260..a1d6ec9 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -90,6 +90,9 @@ TEX_FILES += output.tex ## Other hacks. TEX_FILES += cutting-room-floor.tex +## Bibliography database. +BIB_FILES += sod.bib + ## Building the bibliography style. EXTRA_DIST += mdwalpha.dbj diff --git a/doc/concepts.tex b/doc/concepts.tex index 68780e2..8e774fe 100644 --- a/doc/concepts.tex +++ b/doc/concepts.tex @@ -159,8 +159,8 @@ following properties are expected to hold. list, i.e., $B$ is a more specific superclass of $C$ than $A$ is. \end{itemize} The default linearization algorithm used in Sod is the \emph{C3} algorithm, -which has a number of good properties described in~\cite{Barrett:1996:MSL}. -It works as follows. +which has a number of good properties described +in~\cite{barrett-1996:monot-super-linear-dylan}. It works as follows. \begin{itemize} \item A \emph{merge} of some number of input lists is a single list containing each item that is in any of the input lists exactly once, and no @@ -263,8 +263,9 @@ It works as follows. \end{itemize} - (This example combines elements from \cite{Barrett:1996:MSL} and - \cite{Ducournau:1994:PMM}.) + (This example combines elements from + \cite{barrett-1996:monot-super-linear-dylan} and + \cite{ducournau-1994:monot-multip-inher-linear}.) \end{example} \subsubsection{Class links and chains} diff --git a/doc/cutting-room-floor.tex b/doc/cutting-room-floor.tex index f4b19b3..5590f45 100644 --- a/doc/cutting-room-floor.tex +++ b/doc/cutting-room-floor.tex @@ -153,7 +153,8 @@ edge from each class to each of its direct superclasses. This is the In order to resolve inheritance of items, we define a \emph{class precedence list} (or CPL) for each class, which imposes a total order on that class's superclasses. The default algorithm for computing the CPL is the \emph{C3} -algorithm \cite{fixme-c3}, though extensions may implement other algorithms. +algorithm \cite{barrett-1996:monot-super-linear-dylan}, though extensions may +implement other algorithms. The default algorithm works as follows. Let $C$ be the class whose CPL we are to compute. Let $X$ and $Y$ be two of $C$'s superclasses. diff --git a/doc/misc.tex b/doc/misc.tex index 859ec51..b7ed6e5 100644 --- a/doc/misc.tex +++ b/doc/misc.tex @@ -184,7 +184,7 @@ refer to the same place; but that doesn't work for these locatives. An anaphoric macro implicitly binds a well-known name to a value of interest, in the course of doing something else. The concept was popularized by Paul -Graham \cite{FIXME:OnLisp}. +Graham \cite{graham-1993:on-lisp}. The macros described here all bind the variable @|it|. diff --git a/doc/sod.bib b/doc/sod.bib new file mode 100644 index 0000000..fed8d6d --- /dev/null +++ b/doc/sod.bib @@ -0,0 +1,94 @@ +%%% -*-latex-*- +%%% +%%% Bibliography database for Sod manual +%%% +%%% (c) 2019 Straylight/Edgeware +%%% + +%%%----- Licensing notice --------------------------------------------------- +%%% +%%% This file is part of the Simple Object Definition system. +%%% +%%% SOD is free software; you can redistribute it and/or modify +%%% it under the terms of the GNU General Public License as published by +%%% the Free Software Foundation; either version 2 of the License, or +%%% (at your option) any later version. +%%% +%%% SOD is distributed in the hope that it will be useful, +%%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%%% GNU General Public License for more details. +%%% +%%% You should have received a copy of the GNU General Public License +%%% along with SOD; if not, write to the Free Software Foundation, +%%% Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +%%% +%%% Much of the bibliographic data in this file was originally compiled +%%% and placed in the public domain by Nelson H. F. Beebe of the University +%%% of Utah Department of Mathematics. + +@Article{barrett-1996:monot-super-linear-dylan, + author = "Kim Barrett and Bob Cassels and Paul Haahr and David + A. Moon and Keith Playford and Andrew L. M. Shalit and + P. Tucker Withington", + title = "A Monotonic Superclass Linearization for {Dylan}", + journal = "ACM SIG{\-}PLAN Notices", + year = 1996, + volume = 31, + number = 10, + pages = "69--82", + month = oct, + issn = "0362-1340 (print), 1523-2867 (print), 1558-1160 + (electronic)" +} + +@Article{ducournau-1994:monot-multip-inher-linear, + author = "R. Ducournau and M. Habib and M. Huchard and + M. L. Mugnier", + title = "Proposal for a Monotonic Multiple Inheritance + Linearization", + journal = "ACM SIG{\-}PLAN Notices", + year = 1994, + volume = 29, + number = 10, + pages = "164--175", + month = oct, + issn = "0362-1340 (print), 1523-2867 (print), 1558-1160 + (electronic)" +} + +@Book{ansi-1999:c, + author = "{American National Standards Institute}", + title = "{ANSI\slash ISO\slash IEC 9899-1999}: Programming + Languages --- {C}", + publisher = "American National Standards Institute", + year = 1999, + address = "1430 Broadway, New York, NY 10018, USA", + pages = "????", + isbn = "????", + url = "http://webstore.ansi.org/ansidocstore/product.asp?sku=ANSI%2FISO%2FIEC+9899%2D1999" +} + +@Book{graham-1993:on-lisp, + author = "Paul Graham", + title = "On {Lisp}", + publisher = "Prentice Hall", + year = 1993, + pages = 432, + isbn = "0130-305529", + url = "http://www.paulgraham.com/onlisp.html" +} + +@Book{iso-1990:c, + author = "{ISO}", + title = "{ISO\slash IEC 9899:1990}: {Programming} languages --- + {C}", + publisher = "International Organization for Standardization", + year = 1990, + address = "Geneva, Switzerland", + pages = "????", + isbn = "????", + url = "http://www.iso.ch/cate/d17782.html" +} + +%%%----- That's all, folks -------------------------------------------------- diff --git a/doc/sod.tex b/doc/sod.tex index 1e2a1a6..9b2964d 100644 --- a/doc/sod.tex +++ b/doc/sod.tex @@ -174,9 +174,7 @@ %%%-------------------------------------------------------------------------- \backmatter -\bibliography{% - isostd,% - sigplan1990} +\bibliography{sod} \printindex %%%----- That's all, folks -------------------------------------------------- diff --git a/doc/structures.tex b/doc/structures.tex index 242d199..01e1ecd 100644 --- a/doc/structures.tex +++ b/doc/structures.tex @@ -422,7 +422,7 @@ and this is followed by corresponding members \end{prog} for each of $C$'s superclasses $A$ in the same chain in some (unimportant) order. The (somewhat obtuse) purpose of this union is to engage the `common -initial sequence' rule of \cite[6.5.2.3]{ISO:1990:IIP,ANSI:1999:AII}. +initial sequence' rule of \cite[6.5.2.3]{iso-1990:c,ansi-1999:c}. \subsubsection{The ichain structure} The @|ichain| structure contains (in order), a pointer -- 2.11.0