summaryrefslogtreecommitdiff
path: root/info/digests/texline/no10/ed.tex
blob: 6449c3e3406a6b10cba60b2ec302db65f4268f48 (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
\def\mwc{Malcolm Clark}
\centerline{\bf Tripping over our own feet}
\medskip
\noindent
How do you know you are using \TeX? What is it about the
program you are using that makes it \TeX, and not
something that only looks like \TeX? The answer lies in
the trip. Each implementation of \TeX\ has to pass the
trip test. What is the trip test? This is not quite so
easily answered. The trip test is Knuth's torture test
which seeks to flex those muscles which are probably best
never seen: it attempts to verify that the program is
doing what it is supposed too, out in those marginal
situations where you can't really understand what the
fuss is about (`Why would you want to do that anyway?').
That seems simple enough. But there are some minor
problems. 

First, the trip test is not a static test. With
practically every bug fix to \TeX\ the trip test is
extended -- after all, part of the reason for the
existence of the bug is the inadequacy of the testing (so
far). So the trip test is updated to bolt the stable
door. Unfortunately, Knuth has, up to now, not numbered
or dated the trip tests (a fact he acknowledged at the
TUG meeting in 1989). You may very well have a \TeX\ which
passed  trip. That does not necessarily mean it will pass
tomorrow. And who decides when a pass is a pass? The
output from trip is not a simple `Pass' or `Fail'. It is
not possible to pump it through a differencing program:
true, if no differences are found, then you've probably
passed (or cheated); but some differences are legal, while
others are not.


The criterion of \TeX  hood is passing trip: Knuth
will be pretty upset if  you call something \TeX\ when it
isn't: and ultimately, the AMS (who hold the copyright on
\TeX, whatever that means exactly) might set legal wheels
in motion to protect \TeX's integrity. This places some
pressure on \TeX\ implementors to pass trip. In general,
the implementor decides whether trip has been passed.
There appears to be no `regulatory' procedure, or even a
`certification' procedure. There is no third party to
whom an implementor can turn to ask to verify that theirs
is a valid implementation. The AMS don't really want to
know. 

Surely it is time we did something about this? There seem
to be at least two main issues: the first is to ensure
that the `current' version of trip can be identified.
This is presumably in Knuth's hands. But it should not
be too difficult to add the date to trip. The second
issue is who decides on a pass? Is verifying a trip test
really so difficult (one or two implementors have
expressed the opinion to me that they felt it really was
difficult, especially for quiche eaters like me)? Whose
responsibility should it be anyway? 

How can a trip pass be verified? I have been advised that
making the output from trip available is insufficient.
Some implementors considered that it would be pretty easy
to cheat. That seems to indicate that someone, somewhere,
has to be the umpire. I would nominate TUG as the
`disinterested' verifier. 

Obviously there {\it are}
problems: few others may have access to an equivalent
machine on which to test the implementation: I see this
only a problem for mainframe versions. The most critical
area is surely that of the commercial implementations:
commercial versions are expected to sell, so they are done
for machines which are fairly common. This kills two birds
with one stone: the vendors could pay TUG a nominal sum,
and in return receive (say) an  annual certificate of
validity (or not). Doing this annually ensures that the
trip test is re-applied to the software, accounting for
changes both to trip and the implementation. The vendor
then has independent verification, the customer does not
have to depend on the good faith of the vendor (not that I
make any imputations of any {\it lack\/} of good faith!),
and TUG may earn some money.

 Perhaps each
copy of \TeX\ given or sold should have a copy of the trip
test, but if the output is so difficult to understand, this
is only going to require an excessive amount of explanation
on the already overworked implementor. Conformance
testing should be a background activity, not one which is
thrust on the users.

Of course, it is not just \TeX\ which has a rigorous test
to verify its performance. \MF\ has the trap test, and
the drivers committee has suggested a similar sort of
testing of device drivers. We need not stop there. What
about \LaTeX? What about a trip for \LaTeX? Anyone brave
enough?

Clearly these ideas flow on from my previous editorial on
`standards'. Until we can really claim that our {\it de
facto} standards are adhered to (and probably to a far
higher degree than any ISO standard), we should be
cautious in proclaiming our integrity too loudly. But it
must be in all our interests, both in the long and short
terms, to have some independent arbiter of conformance.
We really can't leave everything to Don! Give him  a
break.

\rightline{\sl \mwc}