Operating System - OpenVMS
1752795 Members
5962 Online
108789 Solutions
New Discussion юеВ

Re: Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

 
SOLVED
Go to solution
Jeremy Begg
Trusted Contributor

Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

Hi,

I'm sure I've asked John Reagan about this in the past but I can't find his answer and so I have to ask again ...

I've just installed the Pascal V6.1 compiler on an OpenVMS Alpha V7.3-2 system. The installation worked but afterward I found the STARLET.PAS/.PEN files don't have the latest definitions. For example, my application needs NAML$... definitions and these are not present in STARLET.PAS/.PEN. They *are* present in STARLET.REQ.

I had earlier installed the same compiler onto my OpenVMS Alpha V8.3 system, and it gets all the STARLET symbols (or at least all the ones I want). Can I simply copy STARLET.PAS from my VMS 8.3 system to my VMS 7.3-2 system and rebuild STARLET.PEN there?

Thanks,
Jeremy Begg
7 REPLIES 7
Hoff
Honored Contributor

Re: Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

Here's an old and mildly-related thread:

http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=855677

Some googling around also found a PASCAL$BUILD.COM module within STARLETPAS.TLB, which might make for some interesting reading, and definitely read that in concert with the starletsd and starletpas discussions in:

http://h30266.www3.hp.com/masterindex/release_notes/release_notes_00375154.txt

The old C installation kit stuff related to the translation of the STARLETSD definitions into C header files is built on the LIBEXT tool on the Freeware, FWIW.

Hauling the (newer) PEN back will probably mostly work fine here, subject to a lack of compile-time errors for cases of newer APIs and items that don't exist on something as far back as V7.3-2. Certainly try it.

Or wait for John R. to wander past.
John Gillings
Honored Contributor

Re: Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

Jeremy,

STARLET.PAS should be portable from a code perspective, but beware definitions of V8.3 stuff that doesn't exist on V7.3.

I'm not sure why the installation would skip the regeneration. Do the files look old? (check CDT and RDT).

Perhaps try RENAME the existing STARLET.PAS and .PEN files on your target system and repeat the installation. If they're missing, surely it must recreate them?
A crucible of informative mistakes
Jeremy Begg
Trusted Contributor

Re: Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

Hi John,

The files were definitely rebuilt during the installation. However, the installation log shows:

"The OpenVMS-supplied system symbol definitions, which are the basis for
HP Pascal definition files (STARLET.PAS and others), have not been
modified since the last time the HP Pascal definition files were
created. It is not necessary to recreate the HP Pascal definition
files at this time.

"* Do you want to install the HP Pascal definition files [YES]?"

It built them as requested but I wonder where it's getting the starlet definitions from.

Perhaps I'll learn more when I've read Hoff's suggestions.

Thanks,
Jeremy Begg
Jeremy Begg
Trusted Contributor

Re: Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

Hello Hoff,

Thanks for the pointers. I think I'll just copy over the STARLET.PAS from my OpenVMS Alpha V8.3 system and build it on my V7.3-2 system. I'll do a quick sanity check to see if there are any glaring conflicts -- and hope the subtle ones never show up!

Regards,
Jeremy Begg
John Reagan
Respected Contributor
Solution

Re: Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

Jeremy, you do seem to find the deep corners of the Pascal installation and highlight my laziness. :)

So for those of you keeping score at home:

Building STARLET files on Alpha V7.3-2 and earlier the installation uses the definition inside of STARLETSD.TLB along with the appropriate SDL Pascal backend to create .PAS files on the fly. Those files are massaged a little and concatenated into the final STARLET.PAS. However, there is a one exception to that process. Anybody ready to guess yet? Yep, the RMSUSR module inside of STARLETSD is not used. That is the module that contains FAB, RAB, NAM, NAML, and XAB definitions. In particular the XAB definitions in the original RMSUSR.SDL file back on the EVMS master pack produces some rather ugly and hard to use Pascal definitions of each XAB subtype. To make things easier to use (but not easier to update), we (well, me for the past 26 years) hand edit the RMSUSR.PAS that comes out of SDL into a more usable RMSUSR.PAS. That RMSUSR.PAS is physically on the Pascal kit. Instead of taking the one out of STARLETSD.TLB and getting crappy XAB definitions, the installation slips in the hand-crafted RMSUSR.PAS instead. Of course as RMSUSR.SDL has been updated over the years, the Pascal kit contains many different RMSUSR.PAS files and the right one is picked based on the target system. I was lazy in that I haven't updated the hand-crafted versions contained inside the Pascal kit.

For V8.3 and later (and all I64 versions), we no longer user STARLETSD.TLB at installation time. Instead, the STARLET.PAS file is built during the OpenVMS build process itself. We still use a hand-crafted version of RMSUSR.PAS, but I did update the RMSUSR.PAS for the V8.3 stream. I just didn't take that RMSUSR.PAS and put it back on the Pascal kit for installations on older versions.

Taking the STARLET.PAS/PEN backwards to your V7.3-2 system should work. The IDENT attribute and special comments at the top will say V8.3. If you want a newer RMSUSR.PAS or something else, email me.
Jeremy Begg
Trusted Contributor

Re: Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

Hi John,

Maybe I shouldn't reward laziness with 10 points but the answer was worth it :-)

Rather than copy over the 8.3 STARLET.PAS I have extracted the bits I needed and use them in my program as follows:

{
* OpenVMS Alpha V7.3-2 does not define NAML symbols, include them here if
* necessary.
}
%IF NOT %DEFINED(NAML$C_BID)
%THEN
%INFO('Using NAML_DEF.PAS to get NAML$ definitions')
%INCLUDE 'NAML_DEF.PAS/LIST'
%ENDIF

Thanks,
Jeremy Begg
John Reagan
Respected Contributor

Re: Pascal installation on VMS 7.3-2 does not create up-to-date STARLET.PAS

Merci beaucoup for the 10 points!

One minor correction, it was V8.2, not V8.3 when I switched to building STARLET.PAS during the OpenVMS build.

Using the %IF %DECLARED is an excellent solution. I had great vision when I created the the %IF conditional-compilation. (just kissing-up for more points in the future) :)