[Info-vax] problem with 64-bit pointers in C
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Wed Jan 31 12:12:54 EST 2018
On 2018-01-31 12:07:16 +0000, John Reagan said:
> Looking back, better choices could have been made. Going forward, I'd
> like to have a real LP64 mode with 'long' being 64 to match compilers
> like clang.
The bad choice was OpenVMS V7.0, and it was a massively short-sighted
decision, and a decision that can and will continue to haunt OpenVMS
developers and will continue to have repercussions until the day y'all
decide to deprecate and finally, eventually, hopefully entirely remove
it.
Ditch the 32-/64-bit compatibility and allow us to migrate our code to
a flat 64-bit environment. All languages. The design and
implementation was brilliant and wonderfully compatible, but using the
64-bit results are just... difficult.
The existing backward-compatible 32-/64-bit environment is never going
to be less than an utter and confusing and cryptic and arcane
train-wreck. Never.
Y'all can dance around the edges of this with modes and selectors and
more logical names, but there's no real fix for this mess short of
wholesale replacement.
Force us to go 64-bit native flat. Make that new environment easier
and saner. Use that migration to clean up the mess. Maybe use that
break to switch to UTF-8 default support. Whatever. Make the whole of
the run-time environment easier to deal with. Having C calls with
behavior that's indeterminate and based on external factors? No.
Header files with nests of #ifdef? No. The officially-standard
locale mess lurking underneath calls like isalnum() is bad enough, as
is the undefined behavior lurking in parts of C. The OpenVMS C
implementation takes that and other Bad Ideas and distributes the
badness all over the environment with 32-/64-bit selections and
out-of-band DECC$ logical names, unfortunately.
You can't fix this current confusion with more decorators and defines
and DEFINEs, nor by adding more modes or subtleties or out-of-band
controls.
Yeah; I know; DEC forgot how to do simple.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list