I'm dredging up from tapestore memory but I think for things we'd
morally call "varargs" you had to have a way of telling the call
binding what the variant elements were. It's one thing to be inside a
language model where the heap and type bindings are known, and another
to break out into another language. NAG library (leeds uni had some
role in this, maybe maintenance contract. I lunched with the people
who worked on it. They were awesome gods of computing including one
feller who had a glass eyeball. Thats hardcore pirate programmers
right there!) its pretty well understood you passed numbers and arrays
of numbers, so the variations on call args were rather limited. Other
things? not such.
There were various warnings about using const and register and other
#pragma too. Compilers mucking around too much.
The only language aside from LISP (sorry. forget I said that) which I
couldn't get to fly on the UNIX systems was Pascal, the Berkeley
compiler made completely different assumptions to the DEC-10 compiler
I'd used at university. Syntactically, the language felt different
even if it really wasn't. I think Berkeley did Pascal to get over some
educational funding barrier, it didn't feel like a real investment
(the p-system aside)
Actually I tell a lie. Snobol defeated me. I had no brain capacity to
understand it. APL had left me behind, on the DECwriter with the
modified alphabet. Keyboard in greek? Ok.. fool me once, more fool
you: fool me twice, Lambda Sigma Phi me.
On Thu, Feb 22, 2018 at 8:16 AM, Warner Losh <imp(a)bsdimp.com> wrote:
On Wed, Feb 21, 2018 at 1:18 PM, Nemo <cym224(a)gmail.com> wrote:
On 20/02/2018, George Michaelson <ggm(a)algebras.org> wrote (in part):
I don't know if we used VMS C from Dec. I
have a feeling if you ran
Eunice, you used pcc or a derivative of pcc. Cross library calling was
pretty straightforward (ok, so passing function addresses and dynamic
structures into FORTRAN not such) [...]
Hhmmm... I recall using DEC's C compiler, which we called VAX C.
Calling C stuff from VAX FORTRAN required jiggery-pokery and the other
way was hopeless. I recall (assuming no wetware bit-rot on my part)
that DEC's languages did not pass on the stack but stuffed the
arguments somewhere, passing a pointer to the somewhere.
The arguments were on the stack, but the calling convention also had some
metadata about the arguments you needed to worry about when calling into/out
of C, but rarely any time else. %DESCRIPTOR sticks in my head for some
traumatic reason.
Warner