* [TUHS] Question: stdio - Who invented and ... @ 2020-03-23 10:18 Ed Bradford 2020-03-23 10:32 ` arnold 0 siblings, 1 reply; 11+ messages in thread From: Ed Bradford @ 2020-03-23 10:18 UTC (permalink / raw) To: TUHS main list [-- Attachment #1: Type: text/plain, Size: 625 bytes --] I've forgotten who created stdio, USG or the research group. Can any of the youthful BTL folks of the 1970's refresh my mind. Given that stdio was invented and, in my opinion at the time, a reasonable and usable standard interface to IO on Unix, I am curious why no standard for networking was developed or proposed and discussed. Sockets just defined a new and very quirky IO interface for Unix based systems. Was any thought given to defining networking using the creat/open/read/write/close/mknod/link/unlink/chmod/chown model of IO in UNIX? Ed Bradford -- Advice is judged by results, not by intentions. Cicero [-- Attachment #2: Type: text/html, Size: 1545 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 10:18 [TUHS] Question: stdio - Who invented and Ed Bradford @ 2020-03-23 10:32 ` arnold 2020-03-23 13:46 ` Clem Cole 0 siblings, 1 reply; 11+ messages in thread From: arnold @ 2020-03-23 10:32 UTC (permalink / raw) To: tuhs, egbegb2 Ed Bradford <egbegb2@gmail.com> wrote: > I've forgotten who created stdio, USG or the research group. Can any of the > youthful BTL folks of the 1970's refresh my mind. It was part of V7. I think DMR gets most of the credit. > Given that stdio was invented and, in my opinion at the time, a reasonable > and usable standard interface to IO on Unix, I am curious why no standard > for networking was developed or proposed and discussed. Sockets just > defined a new and very quirky IO interface for Unix based systems. > > Was any thought given to defining networking > using the > creat/open/read/write/close/mknod/link/unlink/chmod/chown > > model of IO in UNIX? Much of this has been discussed (to death) already on this list, and fairly recently, too. At that time networking was still a research topic. The Bell Labs folks worked on it, and this is visible in the streams stuff in V8/V9/V10 and early Plan 9, but by that time their work was less influential on the wider Unix community. There were efforts to integrate networking into the Unix file namespace, but it doesn't fit overly cleanly, and such things didn't spread. BSD networking adopted sockets from other, earlier efforts. IMHO less thought was given to "integration with Unix ideas" as opposed to just getting something working and usable, but that's just my opinion based on hindsight. BSD sockets spread because BSD was in the right place at the right time: it ran on the Vax, it also provided paging. Straight research Unix did not support the vax at the time, and people were looking to move to the 32 bit environment. All that plus csh with its interactive features (history, job control) and the vi screen editor (with ed inside it), made BSD (and thus its networking) very popular. Again, all of this is my 2 cents, and there's much more to be found in the list archives. HTH, Arnold ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 10:32 ` arnold @ 2020-03-23 13:46 ` Clem Cole 2020-03-23 13:59 ` arnold ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Clem Cole @ 2020-03-23 13:46 UTC (permalink / raw) To: Aharon Robbins; +Cc: TUHS main list [-- Attachment #1: Type: text/plain, Size: 1488 bytes --] On Mon, Mar 23, 2020 at 6:33 AM <arnold@skeeve.com> wrote: > Ed Bradford <egbegb2@gmail.com> wrote: > > > I've forgotten who created stdio, USG or the research group. Can any of > the > > youthful BTL folks of the 1970's refresh my mind. > > It was part of V7. I think DMR gets most of the credit. At this risk of putting too fine a point on it, the stdio library was released in the wild before V7 or UNIX/TS *et al.* To answer Ed's question, it came out of Research, but first as part of the typesetter support - *i.e.* 'Typesetter C', which was on V6 and PWB 1.0 [the new troff replacement was being written by Brian] . The C Language and associated libraries in the 'Typesetter C' release maps to the compiler described in the original K&R book. Dennis explains this in his paper: The Development of the C Language <https://www.bell-labs.com/usr/dmr/www/chist.html>. *"Lesk wrote a `portable I/O package' [Lesk 72] that was later reworked to become the C `standard I/O' routines. In 1978 Brian Kernighan and I published The C Programming Language [Kernighan 78]. "* I have the Lesk paper, as PDF (which I have not idea where I obtained). I did a quick google search and could not find it for download, so if you are interested, send me an e-mail offline and I'll pass you a copy. I've forgotten when 'enum' and 'void' got added (which are not in the white book - Steve Johnson or Doug may remember). But, I think they were in the V7 compiler, and not Typesetter C. Clem [-- Attachment #2: Type: text/html, Size: 3902 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 13:46 ` Clem Cole @ 2020-03-23 13:59 ` arnold 2020-03-23 14:24 ` Jaap Akkerhuis 2020-03-23 21:38 ` Dave Horsfall 2020-03-24 2:02 ` Greg A. Woods 2 siblings, 1 reply; 11+ messages in thread From: arnold @ 2020-03-23 13:59 UTC (permalink / raw) To: clemc, arnold; +Cc: tuhs Clem Cole <clemc@ccc.com> wrote: > To answer Ed's question, it came out of Research, but first as part of the > typesetter support - *i.e.* 'Typesetter C', which was on V6 and PWB > 1.0 [the new troff replacement was being written by Brian] . The troff replacement was somewhat after V7. The troff that shipped with V7 was still only for the CAT. See https://www.cs.princeton.edu/~bwk/202/summer.reconstructed.pdf which is dated January 1980. Arnold ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 13:59 ` arnold @ 2020-03-23 14:24 ` Jaap Akkerhuis 2020-03-23 14:45 ` Clem Cole 2020-03-23 18:47 ` Richard Salz 0 siblings, 2 replies; 11+ messages in thread From: Jaap Akkerhuis @ 2020-03-23 14:24 UTC (permalink / raw) To: arnold; +Cc: tuhs [-- Attachment #1: Type: text/plain, Size: 577 bytes --] > On Mar 23, 2020, at 14:59, arnold@skeeve.com wrote: > > Clem Cole <clemc@ccc.com> wrote: > >> To answer Ed's question, it came out of Research, but first as part of the >> typesetter support - *i.e.* 'Typesetter C', which was on V6 and PWB >> 1.0 [the new troff replacement was being written by Brian] . > > The troff replacement was somewhat after V7. The troff that shipped with V7 > was still only for the CAT. Yes, "Typesetter C" was to accommodate the C Version of troff written by Ossana and I checked the source, it doesn't use stdio. jaap [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 267 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 14:24 ` Jaap Akkerhuis @ 2020-03-23 14:45 ` Clem Cole 2020-03-23 18:47 ` Richard Salz 1 sibling, 0 replies; 11+ messages in thread From: Clem Cole @ 2020-03-23 14:45 UTC (permalink / raw) To: Jaap Akkerhuis; +Cc: TUHS main list [-- Attachment #1: Type: text/plain, Size: 2223 bytes --] On Mon, Mar 23, 2020 at 10:24 AM Jaap Akkerhuis <jaapna@xs4all.nl> wrote: > Yes, "Typesetter C" was to accommodate the C Version of troff written > by Ossana and I checked the source, it doesn't use stdio. > Interesting. The compiler described in K&R was a v6 compiler -- we had it at CMU before we had V7. I thought we got it from the Typesetter C release. But Ted may have brought even before that. Brian K. might have also. He was Brian Ried's thesis committee and was coming to CMU reasonably often in 77/78 timeframe - when Reid was writing Scribe and Brian ditroff. I'm pretty sure we got some stuff via that channel too, as I was the person moving some of that around campus and its how I first met Brian. I admit that I might have some void in my memory, but I do remember part of this pretty well. Because CS had the 11/40E with writable microcode (they had been developed for C.mmp). The CS PDP-11's running UNIX (IUS and SUS) had CSV/CRET instructions (as well as a couple of others for BLISS and support capabilities, IIRC). Someone (Paul Rubin I think), had modified the original V6 compiler to generate CSV/CRET. That meant that binaries from CS would not run on the 11/34's which most of the UNIX box on campus had by then become. Ted and I were in EE and there was a small battle as to which systems were more current. Since Ted worked officially for USG, he had a direct line to much of there stuff. Ted had xerographic proofs of the book when it was being reviewed BTW. When CMU got the new Ritchie compiler and I had the task of rippling it out to all the sites in EE, Mellon Institute, et al. CS did not pick it up originally because it did not have the CSAV/CRET changes. CMU did not get V7 until late winter '78/early spring '79 around the time I was leaving. So, we definitely had a Ritchie based K&R compiler with stdio. I had thought that come to us with Typesetter C, but it sounds like it had a different path. FWIW: that would actually be the compiler sources I started with at Tektronix 6 months later, when I started to retarget it for what would become the 68000 (it was not yet released and was an experimental chip), as I had brought the CMU UNIX systems with me. [-- Attachment #2: Type: text/html, Size: 3205 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 14:24 ` Jaap Akkerhuis 2020-03-23 14:45 ` Clem Cole @ 2020-03-23 18:47 ` Richard Salz 2020-03-23 19:22 ` Jaap Akkerhuis 1 sibling, 1 reply; 11+ messages in thread From: Richard Salz @ 2020-03-23 18:47 UTC (permalink / raw) To: Jaap Akkerhuis; +Cc: TUHS main list [-- Attachment #1: Type: text/plain, Size: 229 bytes --] > Yes, "Typesetter C" was to accommodate the C Version of troff written > by Ossana and I checked the source, it doesn't use stdio. > I thought Ossana's troff was written in assembler and translitered back into C after he died. [-- Attachment #2: Type: text/html, Size: 491 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 18:47 ` Richard Salz @ 2020-03-23 19:22 ` Jaap Akkerhuis 0 siblings, 0 replies; 11+ messages in thread From: Jaap Akkerhuis @ 2020-03-23 19:22 UTC (permalink / raw) To: Richard Salz; +Cc: TUHS main list [-- Attachment #1.1: Type: text/plain, Size: 1108 bytes --] > On Mar 23, 2020, at 19:47, Richard Salz <rich.salz@gmail.com> wrote: > > > Yes, "Typesetter C" was to accommodate the C Version of troff written > by Ossana and I checked the source, it doesn't use stdio. > > I thought Ossana's troff was written in assembler and translitered back into C after he died. Nope. I have it from good a good source he did it himself. I seem to remember that the old assembler version had build in constructs for headers and footers and which got radically removed in the C-version. That one gave you the famous trap mechanism etc. Although the basic structure of the assembler version starts out the same it quickly deviates, so it cannot have been turned from as into C. The N/TROFF manual describing the C version stems from 1977. Wikipedia dates the rewrite into C from 1975 (See <https://en.wikipedia.org/wiki/Joe_Ossanna <https://en.wikipedia.org/wiki/Joe_Ossanna>>). I seem to remember that there where actually two versions of Edition 6 unix. The second one came with typesetter C but my memory is foggy about these details. jaap [-- Attachment #1.2: Type: text/html, Size: 2136 bytes --] [-- Attachment #2: Message signed with OpenPGP --] [-- Type: application/pgp-signature, Size: 267 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 13:46 ` Clem Cole 2020-03-23 13:59 ` arnold @ 2020-03-23 21:38 ` Dave Horsfall 2020-03-24 2:02 ` Greg A. Woods 2 siblings, 0 replies; 11+ messages in thread From: Dave Horsfall @ 2020-03-23 21:38 UTC (permalink / raw) To: The Eunuchs Hysterical Society [-- Attachment #1: Type: text/plain, Size: 267 bytes --] On Mon, 23 Mar 2020, Clem Cole wrote: > At this risk of putting too fine a point on it, the stdio library was > released in the wild before V7 or UNIX/TS et al. Yep; I was running it on V6, post "portable I/O library". I think I grabbed it from PWB. -- Dave ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-23 13:46 ` Clem Cole 2020-03-23 13:59 ` arnold 2020-03-23 21:38 ` Dave Horsfall @ 2020-03-24 2:02 ` Greg A. Woods 2020-05-11 1:00 ` scj 2 siblings, 1 reply; 11+ messages in thread From: Greg A. Woods @ 2020-03-24 2:02 UTC (permalink / raw) To: The Unix Heritage Society mailing list [-- Attachment #1: Type: text/plain, Size: 1507 bytes --] At Mon, 23 Mar 2020 09:46:52 -0400, Clem Cole <clemc@ccc.com> wrote: Subject: Re: [TUHS] Question: stdio - Who invented and ... > > I've forgotten when 'enum' and 'void' got added (which are not in the white > book - Steve Johnson or Doug may remember). But, I think they were in the > V7 compiler, and not Typesetter C. Since I was recently researching these myself: There was an extra page in the 7th Edition manual titled "Recent Changes to C" which described both structure assignment and the enumeration type: https://www.bell-labs.com/usr/dmr/www/cchanges.pdf This paper appears in the UNIX System III "The C Programming Language Reference Manual", but there's no mention of "void" in that manual. On the other hand the UNIX System III PDP-11 compiler mentions "void" (1980). I don't see any mention of "void" in 7th Edition sources. However the version of 'awk' on the v7addenda tape from "12/2/80" has one "(void)" cast. The only mention of "void" in dmr's "The Development of the C Language" paper (from HOPL-II, 1993) seems to be in the "Standardization" section where it's mentioned that it's not described in the first edition of K&R. There's mention in the CSTR#102 paper from Sept. 1981 of the "void" type. The 2.9BSD code uses "void", but the sources I have don't include a copy of the compiler. -- Greg A. Woods <gwoods@acm.org> Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> [-- Attachment #2: OpenPGP Digital Signature --] [-- Type: application/pgp-signature, Size: 195 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [TUHS] Question: stdio - Who invented and ... 2020-03-24 2:02 ` Greg A. Woods @ 2020-05-11 1:00 ` scj 0 siblings, 0 replies; 11+ messages in thread From: scj @ 2020-05-11 1:00 UTC (permalink / raw) To: The Unix Heritage Society mailing list I can't help with enum. It sticks in my mind that some other language had something similar but details are gone. However, void was more interesting. The original default return type for both B and C was int. As part of doing lint, I started wondering whether it would be good to have a message "function returns a value that is unused". In some cases, this would be a really useful message. That feature never made it into lint, but the idea persisted, and Dennis and I discussed void as a keyword to say "I'm not returning anything". It became useful as a message if you try to return a value from a function declared as void. But the real brilliance, to my mind, was the invention of void *. Larry Rosler and I were at a Usenix meeting together, and after a bit of alcoholic lubrication, I started complaining about trying to use malloc and also have strong typing. Larry suddenly said -- "we need a pointer that can't be indirected through, but can be assigned to any other pointer!" and after a minute or so he said "void *. We should call it void * ." My memory is that Dennis was instantly enthusiastic and it was in PCC a day or two later. Steve --- On 2020-03-23 19:02, Greg A. Woods wrote: > At Mon, 23 Mar 2020 09:46:52 -0400, Clem Cole <clemc@ccc.com> wrote: > Subject: Re: [TUHS] Question: stdio - Who invented and ... >> >> I've forgotten when 'enum' and 'void' got added (which are not in the >> white >> book - Steve Johnson or Doug may remember). But, I think they were >> in the >> V7 compiler, and not Typesetter C. > > Since I was recently researching these myself: > > There was an extra page in the 7th Edition manual titled "Recent > Changes > to C" which described both structure assignment and the enumeration > type: > > https://www.bell-labs.com/usr/dmr/www/cchanges.pdf > > This paper appears in the UNIX System III "The C Programming Language > Reference Manual", but there's no mention of "void" in that manual. On > the other hand the UNIX System III PDP-11 compiler mentions "void" > (1980). > > I don't see any mention of "void" in 7th Edition sources. However the > version of 'awk' on the v7addenda tape from "12/2/80" has one "(void)" > cast. The only mention of "void" in dmr's "The Development of the C > Language" paper (from HOPL-II, 1993) seems to be in the > "Standardization" section where it's mentioned that it's not described > in the first edition of K&R. There's mention in the CSTR#102 paper > from > Sept. 1981 of the "void" type. The 2.9BSD code uses "void", but the > sources I have don't include a copy of the compiler. > > -- > Greg A. Woods <gwoods@acm.org> > > Kelowna, BC +1 250 762-7675 RoboHack <woods@robohack.ca> > Planix, Inc. <woods@planix.com> Avoncote Farms <woods@avoncote.ca> ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2020-05-11 1:00 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-23 10:18 [TUHS] Question: stdio - Who invented and Ed Bradford 2020-03-23 10:32 ` arnold 2020-03-23 13:46 ` Clem Cole 2020-03-23 13:59 ` arnold 2020-03-23 14:24 ` Jaap Akkerhuis 2020-03-23 14:45 ` Clem Cole 2020-03-23 18:47 ` Richard Salz 2020-03-23 19:22 ` Jaap Akkerhuis 2020-03-23 21:38 ` Dave Horsfall 2020-03-24 2:02 ` Greg A. Woods 2020-05-11 1:00 ` scj
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).