% report-9106-board.tex 12 Jul 91 %------------------------------------------------------------ % Copyright 1991 by Joachim Schrod. % % Report from the DVI Driver Standards Committee % (about the year June 1990 -- May 1991) % for the TUG Board % % [LaTeX] \documentstyle{article} \def\committee{\DVI{} Driver Standards Committee} \def\dvistd{\DVI{} Driver Standard} \def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em\TeX}} \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em\TeX}} \def\PiCTeX{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\kern-.11em\TeX} \font\eightlogo=logo8 \font\tenlogo=logo10 \def\MF{{\logo META}\-{\logo FONT\/}} \def\MFfn{{\eightlogo META}\-{\eightlogo FONT\/}} % MF in footnote \def\DVI{{\tt DVI\/}} \def\TFM{{\tt TFM\/}} \def\GF{{\tt GF\/}} \def\PK{{\tt PK\/}} \def\VF{{\tt VF\/}} \def\PS{{\sc Post\-Script}} \begin{document} \title{Report on the year June 1990 -- May 1991} \author{% The \committee{}% \thanks{% This report was compiled by {\sc Joachim Schrod}, Secretary.% }% } \date{June 1991} \maketitle \begin{abstract} In July~1990 the \committee{} changed most of its members. Afterwards it revised a first draft of the \dvistd{}, level~0. The draft is almost finished and will be published in the next TUGboat issue. Future parts of the standard are already under discussion; but it is not decided up to now which part will be handled next. This report describes the structure of the forthcoming standard, which topics were under discussion for the last year, who is in the committee, and which information the committee may provide for the membership-at-large. Future work is outlined. \end{abstract} \section{Introduction} \label{sec:introduction} The \DVI{} Driver Standard will be available in several stages. The basic stage is now called level~0. It covers only those driver capabilities which are really necessary to output a \DVI{} document on an output device. All other driver capabilities will be called features (and may even be realized outside a driver). In the future we will publish several additional standard documents which will cover ranges of features; those documents will represent ``tiers'' built upon level~0 or on previous tiers. In this way they will be available as future stages of a complete standard. (One may doubt whether the standard will ever be complete as there may be always new features to standardize.) The basic stage, level~0, consists of three parts: % \begin{enumerate} \item The pure standard document telling what a driver must be able to do. \item Definitions of all file formats spoken of in part~1. \item A rationale describing why the committee has chosen the given definition in part~1, recalling discussions that led to particular decisions. \end{enumerate} % A draft of the level~0 document is about to be published for public review. Part~1 of the draft is (almost) ready; a few spelling errors and such have to be removed. Part~2 was ready, but Donald Knuth has changed the \GF{} documentation, and this change must be incorporated. Part~3 exists only in part. \bigskip The outline of this report is as follows: Section~\ref{sec:committee} presents the committee, how it works, and how information on former discussions may be fetched. Section~\ref{sec:level0} presents the process which led to the first draft. Section~\ref{sec:discussion} names the discussion topics the group encountered but which are not covered by the standard up to now. Section~\ref{sec:future} names future work which remains to be done. \section{The Committee} \label{sec:committee} \subsection{The Voting Members} Effective June 1, 1991, the \committee{} has the (voting) members as given in table~\ref{tab:members}. \begin{table} \begin{center} \hfuzz=20pt % the table is 19.83186pt too wide \begin{tabular}{ll} \sc Name & \sc Organization /\\ & \qquad \sc Email\\ Don Hosek (Chair) & Quixote Digital Typography\\ & \qquad \tt dhosek@ymir.claremont.edu\\ Joachim Schrod (Secretary) & Technical University of Darmstadt\\ & Representative of DANTE e.V.\\ & \qquad \tt xitijsch@ddathd21.bitnet\\ Nelson Beebe & University of Utah\\ & \qquad \tt beebe@science.utah.edu\\ Bart Childs & Texas A\,\&\,M University\\ & \qquad \tt bart@cssun.tamu.edu\\ Adrian Clark & University of Essex\\ & Representative of uk\TeX{}ug\\ & \qquad \tt alien@essex.ac.uk\\ Andrew Dobrowolski & Arbortext, Inc.\\ & \qquad \tt aed@arbortext.com\\ Bernard Gaulle & Representative of GUTenberg\\ & \qquad \tt ucir001@frors31.bitnet\\ Robert McGaffey & Oak Ridge National Laboratory\\ & \qquad \tt mcgaffey\%orn.mfenet@ccc.mfecc.llnl.gov\\ Tomas G. Rokicki & Radical Eye Software\\ & \qquad \tt rokicki@polya.stanford.edu\\ Jan Michael Rynning & Royal Institute of Technology, Stockholm\\ & Representative of the Nordic Group\\ & \qquad \tt jmr@nada.kth.se\\ Ralph Youngen & AMS\\ & \qquad \tt rey@seed.ams.com\\ \end{tabular} \end{center} \caption{Voting members of the \committee{}. (Apologies if organizations are wrong, they were collected by me from the email exchange.)} \label{tab:members} \end{table} The group of the voting members was established on July~19, 1990, with Don Hosek as chair. We did not have a secretary then. In the report year the following changes occured: % \begin{itemize} \item Adrian Clark entered the committee at July~31, 1990, as a representative for the uk\TeX{}ug. \item Andrew Dobrowolski is a committee member since January 21, 1991. \item Joachim Schrod is secretary since February 3, 1991. \end{itemize} % There are no members belonging to the NTG, to the Japanese \TeX{} Users Group (if there exists one at all), to the Italic \TeX{} Users Group, or to one of the newly founded groups from Eastern Europe (e.g., from Poland). We would like to thank former members of the committee, which resigned on July~19, 1990: David P. Babcock (Hewlett-Packard), Elizabeth Barnhart (TV~Guide), Stephan v.~Bechtolsheim (Integrated Computer Software, Inc.), Jackie Damrau (University of New Mexico), Donald Goldhammer (University of Chicago), David Ness (TV~Guide), Thomas J.~Reid (Texas A\,\&\,M University), David Rodgers (Arbortext, Inc.), Brian Skidmore (Addison-Wesley Publishing Co.), and Glenn Vanderburg (Texas A\,\&\,M University). John Gourlay (Arbortext, Inc.) left the committee on January~21, 1991. \subsection{The Voting Procedure} The committee has no charter up to now. It will create and vote on drafts of the \DVI{} driver standard (structured as outlined in section~\ref{sec:introduction}). Ammendments on the drafts may be made, the process is as follows: % \begin{enumerate} \item The chair will be considered a voting member, but only in the case of a tie vote. \item Anyone may propose an ammendment, but an ammendment not proposed by one of the voting members of the group needs a second by one of the voting members of the group. An ammendment by a voting member does {\it not\/} need a second. An ammendment should be clearly labelled as such and sent to the secretary. He will redistribute it to the voting members. \item While an ammendment is on the floor, voting members may vote ``{\sl Yes},'' ``{\sl No},'' or ``{\sl Abstain}.'' A reminder will be sent out once every 48~hours for every ammendment they have not yet voted on. \item An ammendment will be considered ``{\sl on the floor\/}'' until % \begin{enumerate} \item it has received a number of ``{\sl Yes\/}'' votes greater than half the total number of voters, \item it has received a number of ``{\sl No\/}'' votes greater than half the total number of voters, \item it has been explicitly withdrawn by its original proposer, \item all voting members of the group have voted on it, or \item it has been out for four weeks and has not been settled. Then it will be considered voted on with those votes received. A tie vote by the chair may be necessary then. \end{enumerate} % \item If two ammendments are submitted which would modify the same portion of the draft, the second received by the secretary will be tabled while the first is on the floor. In the event of the passage of the first, the proposer will be asked if he wants to withdraw the ammendment before it is submitted for a vote. \end{enumerate} % \subsection{Retrieving Information} The discussion takes place on a Bitnet discussion list, {\tt driv-l@tamvm1.bitnet}. All postings for one month are saved and may be retrieved from the Bitnet listserver (as described in our report of April~1989). \medskip In addition I began to store all information which is available and which seems to be of interest on the anonymous ftp server {\tt ftp.th-darmstadt.de\/} in the directory {\tt /pub/tex/dvi-standard}. In the subdirectory {\tt driv-l\/} all postings to {\tt driv-l\/} are stored -- this is a mirror to the service of the listserver. But there are two more important files there: {\tt Index\/} contains the important topics of each month as one-liners. This will help the retrieval of earlier contributions to the ongoing discussion. In addition {\tt Index.last-three-months\/} is a copy of the last three months of {\tt Index}, such giving a fast access to the last handled topics. The standard texts itself are placed in the subdirectory {\tt standards}, each tier in a single file. Ammendments are stored in this directory, too. For people which have RCS at hand (it's available for free), a corresponding RCS file is stored in the subdirectory {\tt standards/RCS}. This RCS file enables the retrieval of former revisions of this tier. In the subdirectory {\tt papers\/} all reports of the committee will be found. In addition other important papers are stored here (if they are available and redistributable free of charge). Furthermore a \BibTeX{} database with relevant publications on \DVI{} drivers is available there in the file {\tt dvistd.bib}. In the subdirectory {\tt verification\/} the {\tt DVIASM} processor may be found (see page~\pageref{sec:dviasm}). In future, information on a verification suite (a so-called ``trip test'') will be placed here, too. \section{The Standard, Level~0} \label{sec:level0} On June~1, 1990, a first release of the draft was in existence. This release was not in \TeX{} form, and was not written in sentences, there were only item lists. On June 23, 1990, draft~\#\,2 was announced. This was the first draft in \LaTeX{} markup and with complete sentences. It was reviewed in the following discussion which led to severe changes. The next release, as of July 19, 1990, changed the name of the draft from just a number to $x.y$ with $x$ as a designation for the standard part and $y$ as a designation of the release. So this new draft was named~0.03. It adopted the notion of ``tiers'' for the future structure of other standard levels. This structure was proposed by Joachim Schrod and Klaus Guntermann. Furthermore appendices were added with file format specifications% \footnote{% These appendices were created by Joachim Schrod during a work on a brochure on all file formats which are defined in the context of \TeX{} and \MFfn{}. This work is not connected to the \DVI{} driver standards committee. } and with the specification how to handle the ``maximal drift problem.'' The step from draft~\#\,2 to draft~0.03 was not made with a formal decision, Don Hosek simply collected all relevant contributions and put them in the draft. Almost three months full of discussion passed until the next release (named draft~0.04) was ready on October~6, 1990. The language style of the document was changed more towards a ``standards document style,'' i.e., the usage of ``must'' instead of ``should,'' etc. A difference between standard text and explication was added -- this has been the first (and only) step towards a rationale document. The rationale was proposed by Nelson Beebe; Thomas Reid did the final outline for the now-planned document. The step from draft~0.03 to draft~0.04 was a formal one, eight ammendments were presented (four by Don Hosek, one by Thomas Reid, and three by Joachim Schrod), and five of these eight change requests were accepted. A month later, on November~13, 1990, the next release was ready. Since no formal changes took place, the draft was named~0.04a (such introducing branches to releases). The changes were mainly spelling errors, typographic errors, etc., which were sent to Don Hosek via email (partly via {\tt driv-l\/}). A bunch of these changes was covered additionally by an ammendment by Joachim Schrod, which was withdrawn then. But since Don Hosek forgot to merge {\it all\/} corrections sent to him he had to release draft~0.04b on January~24, 1991. On March~25, 1991, the last two ammendments up to now (sent in on November~14, 1990 [sic!] by Joachim Schrod) passed. They would have resulted in the draft~0.05. But the job of managing the drafts has passed to the newly appointed secretary Joachim Schrod, who uses RCS (the {\sl Revision Control System\/}) for the management task. Therefore we now have the draft~0, release~5.1. The old releases are available via RCS, they were inserted in the system in an appropriate form. Since then no ammendments have arrived, so the level~0 may be considered as settled and will be published in the next TUGboat issue for further discussion by the membership-at-large. \section{Further Topics of Discussion} \label{sec:discussion} In addition to the referee process of the draft, discussions on other topics took place. I want to name the most important of them in this section.% \footnote{% Please note that only those topics are listed which are not found in the standard up to now and which will be addressed in a future tier. If you remember an important topic which is not listed here it may be that it is already part of draft~0. } General things worth to mention are: % \begin{itemize} \item The publication of draft~0 was planned for the last regular TUGboat issue in~1990. We hope now that the end of the year~1991 will see the final approval. \item The problem of incomplete \DVI{} files was discussed. It was raised by the question if one may assume that a driver may randomly position within \DVI{} files and that \DVI{} files always have a postamble. \item A change to file formats was planned: Padding should have been accepted due to transfer problems between different computer systems. This change was rejected. The reason was not only the technical problems, organizational problems must be taken into account, too (the changes would not have been approved by Donald Knuth). \end{itemize} % \paragraph{Fonts:} \begin{sloppy} A lot of discussions handled the fonts issue. In the meantime the discussion of this topic takes place on the email discussion list {\tt tex-fonts@math.utah.edu}, this topic has now nearly disappeared on {\tt driv-l}. But still important background information and important proposals may be fetched from our discussion backlogs. \end{sloppy} \begin{itemize} \item Font naming proposals were discussed in depth (and in breadth). \item How the user may control font searches. \item What to do if a font is missing: % \begin{itemize} \item Due to a rounding error? I.e., up till when a font should be considered the same even when it has an other font resolution. Calculations on the possible range of rounding errors may be found in the discussion backlog. (This will perhaps be included in the rationale.) \item Algorithms were presented how such fonts may be searched without doing a full directory search. \item When to issue error messages and what contents they should have. (This will perhaps be included in the rationale.) \end{itemize} % \item There is still an undefined topic in the draft: What to do with fonts which have a checksum of zero. (The \TFM{} definition contradicts with other definitions, e.g., the \PK{} definition.) \item Mappings for fonts with other codings than Computer Modern (or the new codings developped by the committee on 8-bit chars) may be presented by \VF{} files. These are not covered in the level~0 (as they are not directly needed for the output of a \DVI{} document) but will be added in one of the next tiers. \end{itemize} \paragraph{Specials:} They are always a hot topic. Two groups may be identified: The first one fears a pandora's box to be opened, the second thinks it's the most important thing to do. The most important submissions discussed: \begin{itemize} \item When should a driver issue a warning? Always if it comes to a non-standard special or only if it comes to an unknown special? \item How to specify global specials was still discussed. This discussion was already mentioned in the report of April~1989. \item Teresa A. Ehling and Berthold K. P. Horn called for the standardization of specials for inclusion of \PS{} graphics. This was rejected at the moment: It does not belong to level~0. Of course, it will be mentioned in a future tier, but then it will be more general than just for \PS{} inclusions. \item Nelson Beebe presented a ``keyword-value'' approach for specials, which was widely applaused. \end{itemize} \paragraph{Maximal Drift:} Maximal drift is a concept how to spread divergences between the device position and the device-indepedent position as given in the \DVI{} file. The aim is that a reader is not to be disturbed too much. Maximal drift is covered in the level~0, as it is one of the basic functionalities of a driver. But still some important comments are worth to mention: \begin{itemize} \item \PS{} drivers should do the maximal drift handling by themselves. To quote Stephan v.~Bechtolsheim: ``One of the things {\it I don't like\/} about \PS{} is that when it comes down to it you {\it never\/} know precisely what happens.'' But this is the task of a driver. In fact, this means that a true device independent \PS{} driver is not possible to make. (This will perhaps be included in the rationale.) \item Enhanced maximal drift algorithms were proposed. They cover a special handling of mono-spaced fonts (and how to discover them), problems in \PiCTeX{}-style graphics, etc. \item How to align rules consistently (without overlapping and such) was disscussed in length. Solutions are available, they are a mixture of \TeX{} macros and driver care. \end{itemize} \paragraph{A Trip Test:} Very early the demand for a trip test, i.e., a standard conformance verification suite, was outspoken. But a lot of problems arise here: \begin{itemize} \item How may one control that the output of a driver is correct? Perhaps there must be special versions of conformant drivers which output protocol stuff to which the correct results may be compared. \item A special subproblem of the item above is: How may one assert the correct maximal drift handling when source code is not available? \item What cases must be handled by a trip test? \end{itemize} As a first step towards the creation of such a test, Thomas Reid wrote {\tt DVIASM}, \label{sec:dviasm} a processor which takes a textual description of a \DVI{} file and compiles it into the binary form. (A processor for the other direction which produces an output to be read by {\tt DVIASM\/} would be of use, too.) \section{Future Work} \label{sec:future} A lot of work remains to do: % \begin{itemize} \item The draft~0 must still be published, and approved. \item The rationale for the draft~0 must be written (and published). \item The committee should write a charter for itself so that it's clearer which tasks it will handle and which not. \item The committee must decide which tier will be handled next and must formulate a first draft for it. (Public pressure calls for the tier on specials.) \item The trip test must be worked out. \item The available information on \DVI{} drivers and the standard must be more structured and must be made available on a wider base. The newly created ftp-server in Darmstadt is a first step in this direction. After it has consolidated it will be distributed to other interested sites. \end{itemize} % \section*{Acknowledgements} A lot of people sent their helpful comments. But we must mention a few which do not belong to the voting members and which spend a large amount of work on the standard (more than most voting members): First of all, Thomas Reid, without whom this standard would never exist. Stephan v.~Bechtolsheim, Karl Berry, Pierre MacKay, and Jan Michael Rynning made substantial contributions, too. \end{document}