The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [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).