Sujet : Re: The joy of FORTRAN
De : Pancho.Jones (at) *nospam* proton.me (Pancho)
Groupes : comp.os.linux.misc alt.folklore.computersDate : 27. Sep 2024, 10:43:13
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vd5uni$mcj1$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
User-Agent : Mozilla Thunderbird
On 9/27/24 02:36, Lawrence D'Oliveiro wrote:
On Thu, 26 Sep 2024 18:01:25 -0700, Lars Poulsen wrote:
On 26/09/2024 13:43, Lawrence D'Oliveiro wrote:
>
On Thu, 26 Sep 2024 11:49:37 +0100, Pancho wrote:
>
On 9/26/24 11:10, Lawrence D'Oliveiro wrote:
>
On Thu, 26 Sep 2024 08:42:32 +0100, Pancho wrote:
>
... a bitch to work out how to call Vax C from Vax Pascal, or vice
versa.
>
Why would it be that hard? VAX C passed everything by value, while
Pascal let you specify descriptors, references, immediate value ...
all the options.
>
There ware decisions to be made, like what order do you push variables
onto the stack, when do you push the return address, how to interpret
a Pascal String in C.
>
All these things were standardized in the VAX/VMS ABI, right from the
beginning.
>
IIRC, VAX C did not completely follow the standard calling conventions,
which created some issues in mixed-language applications.
Being C, you had to explicitly write code to follow those conventions,
but the conventions were well-known. Looks like, unlike Pascal, DEC
did not add convenience built-in functions to help you construct the
right descriptors etc: you had to define these yourself.
See “Programming in VAX C 1.0”, chapter 9, “Mixed-Language
Programming”
<https://bitsavers.trailing-edge.com/pdf/dec/vax/lang/c/AA-L370A-TE_Programming_in_VAX_C_1.0_198205.pdf>.
Ah! there we have the Internet and a Search engine. :-)
I'm not sure if I had that book or not. It looks like it is heavily orientated to calling VMS system services from C. I think my problem was calling C from Pascal. The application was Pascal based.
Reading this thread reminds me of that period. Everything was "simple" if you were an expert in the byzantine system you were working on. Older staff determined what was right and wrong, their knowledge of the system was the supreme measure of competence. Knocking out working, useful, applications was a secondary concern.
That company went bust. Tried to develop an SQL based system, the hardware was nowhere near powerful enough.