On 6/12/23, Clem Cole <clemc(a)ccc.com> wrote:
On Mon, Jun 12, 2023 at 5:39 PM G. Branden Robinson <
g.branden.robinson(a)gmail.com> wrote:
It's an ill wind that blows a Fortran
runtime using the same convention.
Be careful there, weedhopper ...
I don't think this remark was intended to denigrate Fortran in any
way. I took it as a wryly humorous way to make the observation that C
and Fortran have different program startup semantics, and that there
is other stuff that has to be done when firing up a program written
wholly or partially in Fortran beyond what is needed to start up a C
application.
Most operating system ABIs, Unix included, don't have a formalized
mechanism for dealing with the differences between startup semantics
of various programming languages. They deal with the problem in an
ad-hack fashion. The one exception that I know of is VMS (now
OpenVMS). Tom Hastings was the architect who designed the original
VAX/VMS ABI. He was aware from the get-go that several programming
languages had to be supported and he made sure that his design was
general enough to allow programmers to write routines in the most
suitable language for them, to mix and match modules written in
different languages in the same program, and to easily make calls from
one language to another. It was a stroke of genius and I haven't seen
its like in any other OS (several times I've wished it was there,
though).
Further discussion in COFF.
-Paul W.