[Info-vax] VAX VMS going forward
John Reagan
xyzzy1959 at gmail.com
Tue Jul 21 17:07:07 EDT 2020
On Monday, July 20, 2020 at 8:10:55 AM UTC-4, Simon Clubley wrote:
> On 2020-07-17, John Reagan <xyzzy1959 at gmail.com> wrote:
> >
> > I have said several times, to several people, in several forums: The day
> > you ask me to starting making VAX compilers again is the day we'll start
> > planning my retirement party. I ain't got no time for that stuff. The
> > thought of the VAX VCG and PL/1 (much of the VCG is written in PL/1) is a
> > hard NO. I will use my safeword on that one.
>
> Given how nice the VAX architecture itself actually was as a compiler
> target, what made the compilers so horrible to work with ?
>
> Or is it the PL/1 bit you don't like ? :-)
>
> Simon.
>
Unlike Alpha and beyond where all the compilers use a common backend, the VAX product set was all over the. VAX BASIC, COBOL, Pascal, Fortran, and BLISS each have their own code generator. Nothing in common beyond being written in BLISS.
C, C++, Ada, PL/1, SCAN all "used" the VCG but in spite of the COMMON word, there were several clones of the VCG each with its own language variant features. So you can argue there is somewhere between 1 and 5 VCGs.
And it was cloned yet again for the VAXELN EPASCAL compiler. It shares nothing with the VAX/VMS Pascal compiler.
The PL/1 in the Freiburghouse frontend and additional optimization phases has some limitations. In order to save space, many of the tree structures didn't have pointers but just 16-bit indices that went through a table of addresses. It was quite common to exceed this 64K max flow nodes during large compilations. My recollection is that the compiler silently fell back to limited optimization setting.
I don't dislike PL/1. We can argue at length about the meaning of "/" vs "div" on certain datatypes. And at times, it feels just as bad as C++ for a human trying to divine what a piece of code was going to mean to the compiler.
For the non-VCG backends, I think the quality is pretty good. The VCG on the other hand seemed to be quite fragile (I never worked on on the VCG but we all sat at the same lunch table and shared stories - there are a few ex engineers who read c.o.v now and them and I'm sure they'll send me email to correct me). Do HELP CC on the VAX and look at all the optimizer knobs that exist (and there are many undocumented knobs too). They didn't expose all those settings just for fun, they were there so you can start turning them off to avoid optimizer/backend bugs.
More information about the Info-vax
mailing list