Deutsch English Français Italiano |
<vd9lc0$1ceg1$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Lars Poulsen <lars@beagle-ears.com> Newsgroups: comp.os.linux.misc,alt.folklore.computers Subject: The joy of VAX C Date: Sat, 28 Sep 2024 12:27:59 -0700 Organization: AfarCommunications Inc Lines: 40 Message-ID: <vd9lc0$1ceg1$1@dont-email.me> References: <pan$96411$d204da43$cc34bb91$1fe98651@linux.rocks> <5mqdnZuGq4lgwm_7nZ2dnZfqnPSdnZ2d@earthlink.com> <vcub5c$36h63$1@dont-email.me> <1r0e6u9.1tubjrt1kapeluN%snipeco.2@gmail.com> <vcuib9$37rge$5@dont-email.me> <vcvuhh$3hroa$2@dont-email.me> <llhieuF8ej2U2@mid.individual.net> <vd0uch$3lgc3$9@dont-email.me> <pDVIO.50851$2nv5.43199@fx39.iad> <vd3398$3j9t$1@dont-email.me> <vd3btv$503b$1@dont-email.me> <vd3e81$4fda$2@dont-email.me> <vd4h25$c3jf$6@dont-email.me> <vd5055$e8c6$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sat, 28 Sep 2024 21:28:00 +0200 (CEST) Injection-Info: dont-email.me; posting-host="22c26d290368ba9b07835e58e819afb9"; logging-data="1456641"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/EwiL9RLBI+fc6VaT/k7LB/ZmivsYXji8=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:3oqcInaUBZJZwg/upw8rE+vo3Jw= Content-Language: en-US In-Reply-To: <vd5055$e8c6$1@dont-email.me> Bytes: 3159 On 26/09/2024 18:01, 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. In retrospect, I think the problems in mixing C with other languages came down to this: For a C routine to be callable from another language, I suspect that the C routine would have to declare each and every argument as a descriptor structure, the use the descriptor to find the data. And for a C routine to call a subroutine in another language, it would have to build a descriptor structure for that argument. More trouble than anyone would want if they were used to C on any other platform. Was that the right or the wrong choice? An extension with a keyword like "descriptor" attached to a procedure prototype could have made that much easier to work with!