<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.12.3">
</HEAD>
<BODY>
On Wed, 2007-05-30 at 15:34 -0500, Mike McCarty wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">Rick Stevens wrote:</FONT>
<FONT COLOR="#000000">> On Wed, 2007-05-30 at 14:31 -0500, Mike McCarty wrote:</FONT>
<FONT COLOR="#000000">> </FONT>

<FONT COLOR="#000000">[snip]</FONT>

<FONT COLOR="#000000">>>>As far as the libraries are concerned, the initial draft of what was in</FONT>
<FONT COLOR="#000000">>>>the standard C library made the library so damned big that it wouldn't</FONT>
<FONT COLOR="#000000">>>>fit in the standard process memory footprint of a VAX at the time.</FONT>
<FONT COLOR="#000000">>></FONT>
<FONT COLOR="#000000">>>Care to substantiate that? As far as the Standard is concerned, it does</FONT>
<FONT COLOR="#000000">>>not address packaging issues.</FONT>
<FONT COLOR="#000000">> </FONT>
<FONT COLOR="#000000">> </FONT>
<FONT COLOR="#000000">> I'm talking about the very, very early days of discussing just what goes</FONT>
<FONT COLOR="#000000">> in the libraries--and indeed how many libraries there were going to be.</FONT>

<FONT COLOR="#000000">Ok. Your use of the term "standard C library" is somewhat irregular,</FONT>
<FONT COLOR="#000000">then. That term now has a specific defined meaning. But if that is</FONT>
<FONT COLOR="#000000">what you meant, then fine.</FONT>

<FONT COLOR="#000000">> The working document we had put almost everything in a single library.</FONT>
<FONT COLOR="#000000">> When we implemented it as a test case on the two most common systems we</FONT>
<FONT COLOR="#000000">> had (a PDP-11 and a VAX), the linker couldn't handle the library size.</FONT>
<FONT COLOR="#000000">> Indeed, without segmenting the program and using overlays, the famous</FONT>
<FONT COLOR="#000000">> "hello world" program couldn't fit on a VAX.  Overlays worked, but it</FONT>
<FONT COLOR="#000000">> was spectacularly slow.</FONT>

<FONT COLOR="#000000">One of the first C implementations I used was one on the IBM PC for</FONT>
<FONT COLOR="#000000">PCDOS, with a limit of 64K total code+data. Ever try using overlays on</FONT>
<FONT COLOR="#000000">a two-floppy system? I have.</FONT>

<FONT COLOR="#000000">Grrr, grrr, grrr, was a sound which frequently came not only from the</FONT>
<FONT COLOR="#000000">floppy disc drives, but from other sources as well :-)</FONT>

<FONT COLOR="#000000">[snip]</FONT>

<FONT COLOR="#000000">> </FONT>
<FONT COLOR="#000000">> As I said, I wasn't there at the end.  The money was an issue, but also</FONT>
<FONT COLOR="#000000">> many of the meetings simply degenerated into finger-pointing sessions. </FONT>
<FONT COLOR="#000000">> As Charles Shultz once stated in "Peanuts": "Beneath the calm exterior</FONT>
<FONT COLOR="#000000">> lurk the dynamics of a nursery school recess."  All in all, C is a great</FONT>
<FONT COLOR="#000000">> language, but it does have warts.  It's a giraffe...a horse designed by</FONT>
<FONT COLOR="#000000">> a committee.</FONT>

<FONT COLOR="#000000">Plauger and I exchanged a few e-mails during that period, and</FONT>
<FONT COLOR="#000000">he made comments of a similar nature. I got to meet him over</FONT>
<FONT COLOR="#000000">on comp.lang.c 'way back. I'm sure he doesn't remember me, though.</FONT>

</PRE>
</BLOCKQUOTE>
I am somewhat jealous of your getting to know Plauger.  I did implement PASCAL from the diagrams in the back of the book, and it took some time to do it.  I was working on a CPM based system by then, and only had one single density hardsectored disk drive from Northstar.  It took a while.  I wrote the byte tiny pascal system and an editor and debugger that would all fit in 64 K without overlaps or reloads.  I don't now remember the program size.  I do remember that my video board overlaid some of the ram, so I didn't really have 64K, but since it was character based display, it wasn't too much to pay.<BR>
The disk drive would hold 70K.  I still have it, I think.  I brought the case (real steel with its own powersupply) into the house thinking I might use it to hold some kind of backup drive.  It would power several of today's multihundred gigabyte disks.  Don't know if I will attempt it or not.  That linear supply is probably quite a power hog.  But it sure is built like a sherman tank.<BR>
<BR>
    As to the C stuff, thanks, mike, that comment from the standard about the machine may be what mislead me.  Also the way that I implemented my original C compiler may have been unique.  I just don't remember any more.  I do remember the joy in my heart when I did the "Hello World!" program and it really worked.  By that time I had bought a nice Morrow Microdecision with two floppy disk drives.  Quite the machine at the time.  some 5 years later I bought my first PC, a 386 running at I think 35 or 40MHz.  And on it I used the very first commercial compiler I had ever had, It was a very nice C package from I think Brown Bag software.  How about that for a name from the past.<BR>
<BR>
    Now here I sit with two systems at my disposal, and the "archaic" one is 10 times faster with 2000 times as much memory, and the "good one" is dual processor with so much power it boggles my mind.  What a difference a few decades makes.<BR>
<BR>
    But C is portable.  Just in this thread, we have discussed it running on z80, 8080 up to Xeon processors, AMD, PDP, VAX, DEC, and IBM mainframes.  What a tribute to Kernigan and Ritchie.  Wonderful system, and beautiful to code in.  So close to the native machine, and yet so expressive.  It was truly inspired.  I have used other languages, from BASIC to APL (which is probably the most arcane you can get) and even Cyber systems, but I prefer the simple elegance and efficiency of C whenever possible.<BR>
<BR>
    I also remember the big-endian vs little-endian arguments, and some of the consternation that caused.  And the arguments about re-entrant code, and variable wipes.  C never initializes, so there was a huge contingent that wanted to initialize things, but when this was attempted, it broke some things and made some peoples code even more obscure.  I also remember the arguments over self modifying code, and even remember seeing some C code that did just that, and was capable of porting across platforms with the same performance.  Try that in assembly.  It was and is amazing what a talented mind can do with C.<BR>
<BR>
Regards,<BR>
Les H
</BODY>
</HTML>