[Info-vax] VAX VMS going forward
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Thu Jul 30 10:26:45 EDT 2020
On 2020-07-30 00:45:18 +0000, John Reagan said:
> On Wednesday, July 29, 2020 at 12:12:49 PM UTC-4, Stephen Hoffman wrote:
> .
>>
>> Again, go write a 64-bit app on OpenVMS.
>>
>
> I'm still not sure what you mean....
>
> The Itanium linker is 1/2 BLISS-64 and 1/2 C. For BLISS, it is pure
> BLISS-64 and doesn't use any of those crutches like
> /ASSUME=SIGNED_LONG. For C, it is built with /POINTER=LONG. The only
> "fall back to 32-bit" is using SYS$FILESCAN (and they really didn't
> need to) and some FAB/RAB/NAM/XAB pointers (we've already admitted that
> RMS only partially 64-bit tolerant).
There's rather more than the RMS structures that is either 32-bit only,
or 64-bit only. Though those are. Some system services are sys$mumble
and sys$mumble64, some sniff the arguments, etc. ODS-2 and ODS-5 are
32-bit, too.
For the full experience, write up a non-trivial 64-bit app with file
I/O and network I/O and with network connection and encrypted-file
security and secure certificate and key storage, and with everything
used by the app—code and data—all of it—in 64-bit P2 space, and then
write up some documentation for it, and tell me how easy that
experience was. And then load that new app in SYS$EXAMPLES, of course.
I'm here not referring to a 32-bit app with 64-bit data, but to trying
to create an app that's 64-bit throughout.
It's switches and knobs and variant API calls and fun like writing my
own parsing for itemlists, and the usual piles of OpenVMS glue code.
To get this 64-bit app working, it's not cc {sources} and link
{objects} and off I go with a 64-bit app. Nope. Gotta go read up on
linker switches and compiler switches and the rest, and wade through
the APIs looking for 32- and 64-bit calling details.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list