C-kermit fails

Maciej W. Rozycki macro@linux-mips.org
Fri Jul 31 12:41:04 GMT 2020


On Fri, 24 Jul 2020, Frank da Cruz wrote:

>  The reason I use getchar/getc is that Kernighan and Plauger recommend it
> because it's buffered and avoids needless context switches.  I'm sure you
> guys don't care much about the efficiency of character loops, but some of
> the ancient machines where C-Kermit runs are pretty slow.

 I can't speak for other people, but myself I do care, and I also enjoy 
using vintage computers, although maybe not as old as DECSYSTEM-20 (a VAX 
is probably the oldest piece I have).

 Since you already use #ifdefs to provide code alternatives then may I 
suggest that you keep the relevant piece for the systems where the gain 
from using getchar/getc is actually noticeable and switch to documented 
standard interfaces for contemporary systems?

 This way you'll keep the benefits for everyone: much needed performance 
for the old systems and portability for current systems where any gain 
from fiddling with libc internals accidentally exposed is lost in the 
noise?

>  Computers and
> operating systems are supposed to serve the needs of human beings.  But
> when you make non-backward-compatible changes to operating systems that
> break existing applications, you force people to stop what they are working
> on (a cure for some deadly disease, perhaps) and search for a new version
> of the application they were using that "complies" with the new "standard",
> and then, not finding one, hunt down and contact the developers, if they
> are still alive, and beg them to "update" their software.

 Yes, this is painful indeed, and much overlooked by software developers 
nowadays IMO.

> At Columbia U the transition from DEC-20 to Unix (DEC Ultrix at first) was
> a massive job; NO software could be ported, all the applications had to be
> rewritten from scratch, in C of course.  But going from Ultrix to SunOS to
> Solaris and finally to Linux was relatively painless.  So I think the
> objective of Unix OS developers should be *towards* compatibility rather
> than away from it, as seems to be the case with glibc.

 This is why we have a set of standards for the interfaces we promise to 
support.  Please try and stick to them.

  Maciej


More information about the Libc-alpha mailing list