Re: "standard" C calling convention? (Nick Maclaren)
24 Feb 2003 13:36:58 -0500

          From comp.compilers

Related articles
[4 earlier articles]
Re: "standard" C calling convention? (2003-02-13)
Re: "standard" C calling convention? (Dennis Ritchie) (2003-02-21)
Re: "standard" C calling convention? (Christian Bau) (2003-02-21)
Re: "standard" C calling convention? (Mike Ludwig) (2003-02-21)
Re: "standard" C calling convention? (Sander Vesik) (2003-02-21)
Re: "standard" C calling convention? (Andrew) (2003-02-21)
Re: "standard" C calling convention? (2003-02-24)
Re: "standard" C calling convention? (2003-02-24)
Re: "standard" C calling convention? (Glen Herrmannsfeldt) (2003-02-24)
Re: "standard" C calling convention? (Marco van de Voort) (2003-02-24)
Re: "standard" C calling convention? (2003-03-09)
Re: "standard" C calling convention? (Mike Ludwig) (2003-03-09)
Re: "standard" C calling convention? (2003-03-14)
| List of all articles for this month |

From: (Nick Maclaren)
Newsgroups: comp.compilers
Date: 24 Feb 2003 13:36:58 -0500
Organization: University of Cambridge, England
References: 03-02-072 03-02-079 03-02-092
Keywords: C, design
Posted-Date: 24 Feb 2003 13:36:58 EST

"Mike Ludwig" <> writes:
|> > No, absolutely not. It is wildly different between operating systems
|> > and often compiler vendors and architectures. You don't want to know
|> > about the history of C calling conventions under IBM MVS, I can assure
|> > you :-)
|> Hey, as one of the key co-designers of the latest XPLINK (and
|> hopefully last) calling convention for C/C++ on IBM/390 I would
|> actually say the history is a very interesting. This latest design
|> was done for performance reasons but with a strong thought to
|> compatibility (hence some of the complexities of the design). The
|> previous calling conventions were also chosen for valid reasons.

Yes, but that is only ONE of the many such compilers! Consider:

        The original Bell Labs C/360 (sic) compiler used at some stage
for bootstrapping Unix. Dennis Ritchie may know more about its
history, but we had a copy once.

        The first C from IBM (Whitechapel), about which the less said
the better. I am sure IBM will agree ....

        Waterloo C. This may have been usable under CMS, but it wasn't
under MVS. There is some history there that I shall not repeat on
this group.

        SAS/Lattice C. This came with its own bizarre environment,
unlike anything else under MVS and, again, handled MVS very badly.

        The first 'real' IBM C/370 (Toronto). While this was better
that IBM's first C, it was as badly integrated with MVS as the

        The first near full-function C90 (Norcroft C, with the MVS port
run ONLY at the University of Cambridge).

        IBM's first decent MVS product (and the first near full-function
commercial one), Toronto C using CEL/370.

        Thereafter I lost track.

ALL of those I named used wildly different calling sequences, ways
of linking and interfaces to MVS.

|> [Is the history written down anywhere, or is it just in the folklore?

Not all of it, certainly. Probably little of it.

Nick Maclaren,
University of Cambridge Computing Service,
New Museums Site, Pembroke Street, Cambridge CB2 3QH, England.
Tel.: +44 1223 334761 Fax: +44 1223 334679

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.