summaryrefslogtreecommitdiff
path: root/dviware/driv-standard/papers/report-9106-board.tex
blob: 65a002333d550009b4c603bb33635c016af48ad2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
% 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}