[Info-vax] VMS documentation, was: Re: Special deals on Tape Drives
Simon Clubley
clubley at remove_me.eisner.decus.org-Earth.UFP
Mon Mar 14 16:06:23 EDT 2022
On 2022-03-14, Arne Vajhøj <arne at vajhoej.dk> wrote:
> On 3/14/2022 2:48 PM, Simon Clubley wrote:
>> Also, in Unix (thanks to C being the lowest supported language), pointers
>> are an abstraction that the compiler deals with behind the scenes for you
>> when it comes time to store them away and pass them around. In VMS,
>> traditional pointers are an unabstracted and direcly exposed longword
>> field that cannot just be automatically resized by passing "-m64" or
>> similar on the compiler command line.
>
> That is a not really a block problem.
>
It is when you can't compile your RMS program (for example) to fully
use a 64-bit address space by simply using a compiler switch when you
recompile the programs without needing to make any user source code changes.
> If DEC had decided to go only 64 bit pointers on Alpha 30 years ago,
> then the block definitions could have had 64 bit address fields
> in blocks on Alpha and Itanium.
>
> But they did not. For many reasons.
>
Yes, because when VMS was designed it had to work with a certain language
which does not have an abstracted pointer size concept where the
implementation details are mostly hidden from the user's source code.
There are some things that Unix from that era did not get right (null
terminated strings being the main example), but the use of a HLL instead
of assembly language was the one thing that it did get right.
Simon.
--
Simon Clubley, clubley at remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.
More information about the Info-vax
mailing list