[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