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.
next prev 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).