bug in ctype.c, and a replacement for it

Larry Wall lwall at sdcrdcf.UUCP
Thu Oct 30 05:51:22 AEST 1986


In article <2405 at j.cc.purdue.edu> rsk at j.cc.purdue.edu.UUCP (Wombat) writes:
>Four things; first off, it is common courtesy to report such bugs in
>posted software to the author *first*, thus giving that author the
>opportunity to correct them in whatever way the author feels best.
>There are exceptions--for instance, truly nasty bugs in important
>pieces of software.  This is not one of those cases.

In article <4054 at umcp-cs.UUCP> mark at umcp-cs.UUCP (Mark Weiser) responds:
>I do not agree with this sentiment.  It is common usenet practice,

There are other "common usenet practices" I wouldn't want to try to justify.

>and also a courtesy to the other users of publically posted software,
>to post bug fixes as well.

It is not a courtesy to confuse people.  When people apply "unauthorized"
patches, then "authorized" patches tend not to apply themselves correctly.

>Who knows when the author will get around to fixing the bugs, or posting
>the fixes or the new version?

This is a semi-valid point.  There needs to be some responsibility on both
sides.  Bug finders need to try to respect the author's wishes in this matter.
Authors should make known their wishes so they can be respected.  In all the
packages I send out, I explicitly say to relay bug fixes through me, and I
find that most people respect this.  If someone doesn't want to be responsible
for ongoing support, that should also be clearly stated.

On the other hand, I don't mind if people publish unauthorized patches,
as long as they are CLEARLY LABELLED as such, with directions on how to back
them out when the official patch comes out, and important enough to warrant
the extra work to back out the unofficial patch.  A bug report should also
be mailed to the author, so they can produce an official patch.

>And who knows when some other user may need just this fix, however trivial,
>that I just came up with?  Truly nasty bugs only?  If it costs
>me an hour to fix, and a posting can save someone else that hour,
>that is nasty enough for me.

Suppose you get and apply an unofficial patch, and then get the official one.
If it costs you an hour or some data when you apply the official patch
and it doesn't work, then you've lost your advantage.  If you get confused
and send a message off to the package maintainer saying "patch 23 didn't work",
then he or she gets to be confused for an hour as well, especially if the
unofficial patch didn't propagate to the maintainer's site.  Worse, if the
person posting the unofficial patch doesn't have a good grasp of portability
or the internals of your program, he can break the program in other subtle
but damaging ways.  He can tell you that A should be B, when in fact both
A and B should be there in #ifdefs.  He can screw up your malloc arena,
dereference null pointers, use ints where longs are appropriate, put in
buffers that overflow, reinvent wheels and make your program work twice as
hard as it needs to.  After all, it worked on his system when he tried it.
If he tried it.

All in the name of a quick fix.

The fact is that most bugs are trivial, and have workarounds.  If you
spend an hour tracking down a bug for which there is an obvious workaround,
then I think you've been satisfying your curiosity, which activity I would
not want to deprive you of, though I question your time management techniques.
If the workaround is not obvious, getting a note from the net saying what the
workaround is and that the bug is being looked at may be quite sufficient to
save you your hour's work.  If a temporary patch is included, it gives you
the option of applying it or not, but ONLY if you know it's a temporary patch.

>I have sent code to net.sources, and gotten both postings and letters
>with bugs back.  I found the postings particularly flattering: I
>took them to mean that the poster thought my software sufficiently
>important that the bug fixes (or improvements) ought to get around.

Yes, I find the postings flattering also (though the f key is right under the
r key, and maybe their finger just slipped :-).  However, one should never
assume that just because someone else has posted a patch, it has gotten
everywhere it ought to.  The package maintainer must STILL post an official
version of the patch, hopefully with a sequence number, so that when people get
official patch #28, and patchlevel.h says "#define PATCHLEVEL 24", they
know that they are missing patches 25-27.

Believe me, this happens all the time.  Usenet is not the most reliable
of networks, and even if it were, people still miss things.  Every time
I send out a patch for rn or patch or warp (and soon metaconfig, sigh) I get
a ton of messages saying "I'm missing patches n..m--please send."

As usual, the issue isn't black and white.  And as usual, 10% more effort
on everyone's part will clear up 90% of the confusion.  Just be clear where
you're coming from.  Laziness and impatience are the cardinal virtues of
programmers, but not of writers.

Larry Wall
{allegra,burdvax,cbosgd,hplabs,ihnp4,sdcsvax}!sdcrdcf!lwall



More information about the Comp.sources.bugs mailing list