[Info-vax] VAX VMS going forward

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Thu Jul 30 20:42:05 EDT 2020


On 2020-07-30 21:18:29 +0000, Mark Berryman said:

> On 7/30/20 2:39 PM, Stephen Hoffman wrote:
>> On 2020-07-30 20:13:36 +0000, Mark Berryman said:
>> 
>>> In conclusion, while there is certainly still some work to be done, I 
>>> don't think it is that onerous to write a 64-bit app in current VMS.
>> 
>> That's 32-bit/P0 code (technically ~30-bit) with 64-bit/P2 data. Which 
>> wasn't too bad to create, as was mentioned. This if you have all of 
>> your dependencies capable of 64-bit/P2 references.
> 
> Flashback to my RSX days when I could run/write "really big programs" 
> because all of the system libraries were mapped in supervisor space...
> 
> Let's see, 30 bits is 1G, right?  I don't have executables on my 
> systems that are anywhere near that size, but that doesn't include any 
> sharable libraries they may link to.  Where are these loaded in current 
> VMS?  Are they limited to P0 space?  If so, then yes, I can see 
> situations where that could become a limiting factor.

It all has to fit in P0 space; the executable code.

>From dim memory, apps were also long limited to 42(?) shareable images 
due to image header limitations, though that particular limit probably 
disappeared with ELF.

I've become accustoming to not having a big wad of... stuff—P0 and 
particularly P1 space—parked in the lowest-addressed of the application 
address space, and of not having to mix in APIs and dependencies that 
expect and require finding that wad of... stuff.

And accustomed to APIs which aren't nearly as dependent on glue code, 
for that matter.

The OpenVMS 32-bit APIs (P0 and P1 space) and resulting app and 
shareable image dependencies get tedious to work with and to work 
around.

As with DECnet and other longstanding problems, I'll wager that those 
old APIs are not going away until they're solidly deprecated and gone, 
and probably not even then.

And AFAIK, code outside of P0 space isn't yet supported. Executable or 
shareable or otherwise.

Having worked with a platform that deliberately broke addressing and 
APIs hard when making the transition from 32-bit addressing to 64-bit 
addressing, and that forced reworking and rebuilding apps, and that 
then allowed 32-bit and 64-bit apps to operate in parallel in separate 
processes, I find the current OpenVMS hybrid design is... convoluted.  
Even as familiar as it is. The hard migration also allowed developers 
to keep the same API names for the equivalent now-promoted API 
routines, which meant sys$mumble didn't need to have a sys$mumble64, 
which meant half as many routines to memorize, particularly as the goal 
was ditching the old 32-bit environment. The IDE is also good at 
spotting argument mismatches as you edit or as you type the source code 
in, which made the related parts of the source code migration that much 
more obvious.


-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list