[11967] in Athena Bugs
decmips 7.6G: zephyr
daemon@ATHENA.MIT.EDU (cfields@MIT.EDU)
Sun Apr 17 02:37:23 1994
From: cfields@MIT.EDU
Date: Sun, 17 Apr 94 02:37:11 -0400
To: bugs@MIT.EDU
System name: entropy
Type and version: KN02ca 7.6G (1 update(s) to same version)
Display type: PMAG-DV
What were you trying to do?
Have a zephyr conversation, dialed into my DECstation,
in tty mode.
What's wrong:
I received a message:
-->
"Signature long enough so timestamp is r-justif" <user@machine>
hi
2.718282 Wednesday at 1:16pm
<--
Now, I found it rather odd that e appeared in this message.
Yes, e does pop up in a lot of places, but not usually in
zephyrgrams, and particularly not as part of a salutation.
I am not a number, I am a free man, you know?
So I asked the sender, "e?" To which she responded "huh?"
(These are in fact direct quotes.) She claimed that she
had not in fact sent e as a part of her zephyr message,
which I later verified. I rarely log out, and am always
running a zwgc on both of my machines. The actual
windowgrams on both of my workstations utterly failed to
contain the digits of e to any precision whatsoever.
Immediately after her claim of innocence of including an
annoyingly rounded representation of e in her message, I
made a quick check of my workstation and relevant dotfiles
for hacks, but found nothing unusual. I have since grepped
all of the zephyr sources for various instances of code that
might conceivably print e, but found nothing.
I have also tried to consider various other mechanisms that
might result in this phenomenon, but have come up with nothing
that could happen with significantly greater than zero
probability. One of the most interesting aspects of this
occurence is the fact that the timestamp, as usual, is
correctly right justified, indicating that the digits of
e somehow replaced the spaces right justifying the
timestamp. e did not occur in any further zephyrgrams.
What should have happened:
e (or indeed, any transcendental number) should not
gratuitously pop up in zephyrgrams. And if it
does insist on doing so, it should at least present itself
dressed in a respectable number of digits of precision.
Please describe any relevant documentation references:
If you don't want to know where e came from, stop reading
now. I figured it out while writing this bug report, which
I'm just going to send in anyway. It must at least be
educational or something. There's a moral to this story,
but no bug.
It occurred to me to wonder if the number of digits of e I
saw happened to be the same number of digits that a single
precision float would show ('cause that really is an annoying
place to round it). Then I suddenly remembered a recent (turns
out to be April 12th) conversation on zephyr instance help
about the fexp() function and interesting ways in which it
was failing to function correctly on the DECstation. I had
been playing around with that and compiling a tiny little
test C program in /tmp to a.out. When we finally worked things
out, I had just left this thing in /tmp that prints fexp(1.0)
correctly, 2.718282...
Well, a couple of weeks earlier, someone else over instance
help had asked for some scheme for numbering his zephyrgrams
(with serial numbers). Why, I don't know. But I hacked
something up - a little C program, which just prints the
numbers 1-infinity to stdout. Then I hacked my .zwgc.desc
to open this program when zwgc starts up and let its output
spew into a variable, which would then be printed left justified
on the same line where the timestamp was right justified.
Of course, I did this hack in /tmp, and the binary my .zwgc.desc
opens is /tmp/a.out. If there isn't a /tmp/a.out, zwgc fails
silently and nothing appears next to the timestamp. When I had
to logout for some reason and the /tmp cleaner had rm'd a.out,
I just didn't notice when I failed to get serial numbers and
forgot about the hack. Later of course, I generated a new,
unrelated a.out, and logged in still later starting a tty mode
zwgc...
And when did I start this little hack on myself? I swear, I'm not
making this up. You can check yourself:
entropy 2:15am 14> ls -l .zwgc.desc
-rw------- 1 cfields 7923 Apr 1 15:16 .zwgc.desc