[Info-vax] Moving away from OpenVMS
Bob Koehler
koehler at eisner.nospam.encompasserve.org
Thu May 24 09:53:34 EDT 2012
In article <jpjm9q$ru2$1 at speranza.aioe.org>, glen herrmannsfeldt <gah at ugcs.caltech.edu> writes:
>
> Also, VAX (I believe VAX, and not VMS) included a common calling
> convention so that it would be easier for one language to call
> routines in another. That should reduce the need for so many
> different runtimes, though there are likely language specific
> parts.
VAX has a calling standard. VMS obeys it. I suspect ULTRIX and
VAXeln obey it, but I'm not so sure about or all the other UNIX
variants that run on VAX. It was changed when VAX C shipped.
Alpha has a calling standard. VMS obeys it. I'm fairly sure
OSF-1/digital UNIX/Tru64 UNIX obeys it. I'm not so sure about
Cray OS or any other OS.
IA64 has a calling standard. VMS has trouble with it and I'm not
sure the exact state, but VMS does follow a standard and all native
languages for VMS on IA64 can be mixed.
The calling standards used by VMS are published for all three
architectures.
Despite this, language RTLs vary greatly. There is no printf() in
Fortran, COBOL, Pascal, ..., there is no TYPE statement in C, COBOL,
Pascal, ...
There are common OTS$ routines and all the RTLs take advantage of all
the VMS APIs, but I've never seen a compiler generate a direct call to
any OTS$ routine that wasn't written in the source.
More information about the Info-vax
mailing list