[Info-vax] Hard links on VMS ODS5 disks

Dave Froble davef at tsoft-inc.com
Sat Jul 22 18:51:58 EDT 2023


On 7/22/2023 4:57 PM, John Reagan wrote:
> On Saturday, July 22, 2023 at 10:26:27 AM UTC-4, Arne Vajhøj wrote:
>> On 7/20/2023 8:49 AM, Simon Clubley wrote:
>>> I get the impression that you have had to spend a lot of effort to
>>> duplicate low-level behaviour in a way that simply isn't a concern
>>> with other operating systems due to the need, especially, to support
>>> Macro-32 and ensure that code written at this low-level, and which
>>> uses the various idioms as a result, continues to work.
>> I believe Macro-32 is a relative simple compiler. And when they got
>> that then they can compile the existing Macro-32 code.
>>
> Well, I just spit my wine out reading that.

:-)

Ya know, I was sort of expecting that ...

You've mentioned in the past some of what's written below.

If I had to guess, I'd consider the various Macro-32 compilers to be some of the 
most difficult software introduced on VMS Alpha and itanic, and now x86.

> Simple?  Try to deal with condition codes.  Try to deal with routines
> that jump between each other.  Try to make the stack "look like a VAX"
> on platforms that say otherwise. :)
>
> There are three main parts of the Macro compiler.
> -The parser (written in Macro-32) is 99% target independent.
> - The flow analyzer (written in C) looks for all those condition codes,
> loops, etc.  It has some knowledge about the calling standard (how
> many arguments in registers, etc.)
> - The code generator that maps internal Macro operators that feel
> like "instructions".  Opcodes, mem-operands, reg-operands, etc.
> Each of those had to be recoded to pick the correct x86 instruction.
> For x86, we call the LLVM MC interface to emit x86 instructions.
> The way LLVM enumerates the x86 opcodes and registers is a
> little funky and needed some abstractions we didn't need on Alpha
> or Itanium.
>
>
>> I believe that VSI is mostly reusing existing Macro-32 code
>> and writing new code in C.
>>
> Actually there was a good chunk of Macro-32 that was rewritten into
> C.  We redid much of the memory management code for example.  It
> needed to change to deal with the more complex page table structures
> on x86, etc.  Decided to rewrite into C.
>
>
>>
>> It means that changing from 32 bit pointers to 64 bit pointers is
>> way easier in C than in Macro-32.
>>
>> But based on what we know about the port, then VSI has not changed
>> the VMS kernel from 32 bit pointers to 64 bit pointers (aka moving
>> everything from S0 and S1 to S2).
>>
>
> Actually lots more stuff is now in S2 space and several internal pointers
> were lengthened from 32-bits to 64-bits.
>


-- 
David Froble                       Tel: 724-529-0450
Dave Froble Enterprises, Inc.      E-Mail: davef at tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA  15486



More information about the Info-vax mailing list