The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Paul Winalski <paul.winalski@gmail.com>
To: Peter Yardley <peter.martin.yardley@gmail.com>
Cc: Marc Rochkind <mrochkind@gmail.com>, "tuhs@tuhs.org" <tuhs@tuhs.org>
Subject: [TUHS] Re: History of non-Bell C compilers?
Date: Tue, 12 Mar 2024 12:41:17 -0400	[thread overview]
Message-ID: <CABH=_VQvtK=ZRTiP9qygP4nEXE8dpfCFW486VNysDfDv33fbXg@mail.gmail.com> (raw)
In-Reply-To: <EC9B447B-924B-47D8-AF26-F86D3EA804A4@gmail.com>

On 3/11/24, Peter Yardley <peter.martin.yardley@gmail.com> wrote:
> I used the DEC VMS C compiler extensively while I was at NSWIT. I ported a
> lot of Berkley (I think) C code to VMS. Some of their VLSI design suite, KIC
> etc. There weren’t a lot of changes to make, the compiler and library was
> pretty K&R from what I remember. The usual small header issues applied

The developers of the original DEC VMS C compiler took great pains to
be K&R-friendly by default.  There was a strict ANSI C option
available.

There later was a later, C89 compiler produced by Dave Cutler's
DECwest engineering team in Seattle.  I think it ran on Unix as well
as VMS.  It enforced the C89 standard very strictly--no option for
relaxations or extensions and no K&R compatibility.  One customer
described it as the Rush Limbaugh of C compilers--extremely
conservative and you can't argue with it.

> VMS IO is a bit different from UNIX IO

Understatement of the century.  :-)

>  but they had a mode (stream I think)
> that meant minimal changes to UNIX code.

VMS's device-independent I/O layer is called Record Management
Services (RMS) and as its name implies it is record-oriented.  They
did eventually add a stream mode to RMS, but that didn't happen until
well into the 1990s.  When DEC C for VMS first came out (ca. 1980)
there was no stream mode in RMS.  The C RTL had to implement stream
I/O as a layer on top of RMS.  It's fairly easy to build
record-oriented I/O on top of stream I/O but it's very difficult to do
it the other way around.  At first release the VMS C RTL's I/O had a
lot of buggy edge conditions.  It took them several releases to get
the I/O working properly.

Circa 1985 there was a port of the Bourne shell to VAX/VMS.  It of
course needed pipes, and I wrote a pipe pseudo-device driver for VMS.
It supported both stream and record read and write operations.

-Paul W.

  parent reply	other threads:[~2024-03-12 16:41 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-11 17:12 Paul Ruizendaal
2024-03-11 20:44 ` Marc Rochkind
2024-03-11 22:28   ` Peter Yardley
2024-03-12  0:30     ` ron minnich
2024-03-12 13:31       ` Larry Stewart
2024-03-12 16:41     ` Paul Winalski [this message]
2024-03-12 14:55   ` Henry Bent
2024-03-12 17:17     ` Marc Rochkind
2024-03-13 14:37       ` Clem Cole
2024-03-13 15:28         ` Marc Rochkind
2024-03-13 15:33           ` Warner Losh
2024-03-13 15:50             ` [TUHS] PC/IX, VPIX, DOS/merge, etc. [was " Charles H Sauer (he/him)
2024-03-13 15:53           ` [TUHS] " Clem Cole
2024-03-12 15:42 ` Paul Ruizendaal
     [not found] <aee297f1-2f6a-4620-87f7-f1672ae03b61@osta.com>
2024-03-15  3:34 ` Heinz Lycklama
  -- strict thread matches above, loose matches on Subject: below --
2024-03-12 23:08 Steve Simon
2024-03-07 23:14 [TUHS] " Tom Lyon
2024-03-07 23:24 ` [TUHS] " Warner Losh
2024-03-07 23:39   ` Dave Horsfall
2024-03-07 23:49     ` Larry McVoy
2024-03-07 23:56       ` Luther Johnson
2024-03-08 14:03         ` John Foust via TUHS
2024-03-07 23:59       ` Greg 'groggy' Lehey
2024-03-08  0:08         ` Rich Salz
2024-03-08  0:30           ` Warner Losh
2024-03-08  0:57             ` Rob Pike
2024-03-08  1:08               ` Bakul Shah via TUHS
2024-03-08  1:10                 ` Rob Pike
2024-03-08  1:12                   ` Rob Pike
2024-03-08  1:22                     ` Bakul Shah via TUHS
2024-03-08  9:33               ` arnold
2024-03-08  9:45                 ` Wesley Parish
2024-03-08 13:06                   ` Luther Johnson
2024-03-08 18:33               ` William H. Mitchell
2024-03-10  3:14                 ` Adam Thornton
2024-03-11 22:21       ` Phil Budne
2024-03-07 23:52   ` Warner Losh
2024-03-08  0:15     ` Charles H Sauer (he/him)
2024-03-08  0:30       ` Marc Rochkind
2024-03-08  0:54         ` Heinz Lycklama
2024-03-08  1:48           ` segaloco via TUHS
2024-03-08  2:12             ` Tom Lyon
2024-03-08  2:13     ` Lawrence Stewart
2024-03-08  3:15     ` Jonathan Gray
2024-03-07 23:24 ` Luther Johnson
2024-03-07 23:27   ` Luther Johnson
2024-03-07 23:44     ` Tom Lyon
2024-03-08  0:24       ` Marc Rochkind
2024-03-08  1:27         ` Jeffry R. Abramson
2024-03-10  2:13         ` Greg A. Woods
2024-03-08  2:26 ` Will Senn
2024-03-08  3:03   ` Peter Yardley
2024-03-08  3:28 ` George Michaelson
2024-03-08  3:58   ` Luther Johnson
2024-03-08  5:53 ` Lars Brinkhoff
2024-03-08 13:42 ` Henry Bent
2024-03-08 14:00   ` arnold
2024-03-08 14:16   ` Warner Losh
2024-03-08 15:44 ` Paul Winalski
2024-03-08 17:18   ` Adam Thornton
2024-03-10  2:31 ` Damian Wildie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CABH=_VQvtK=ZRTiP9qygP4nEXE8dpfCFW486VNysDfDv33fbXg@mail.gmail.com' \
    --to=paul.winalski@gmail.com \
    --cc=mrochkind@gmail.com \
    --cc=peter.martin.yardley@gmail.com \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).