[Info-vax] Pascal query

John Reagan johnrreagan at earthlink.net
Fri Dec 4 11:31:25 EST 2009


"Ade" <adrian.birkett at blueyonder.co.uk> wrote in message 
news:8g9Sm.35746$iT5.28666 at newsfe12.ams2...
> Hi,
>
> I've had to use Pascal to shift some data around from one set of common 
> memory images on a Vax to the new ones on an Itanium. Anyway, I wrote a 
> quick program to dump the contents into a file which could then be 
> compiled on the Itanium and run to populate the data structures. This 
> program just would not compile. All it consists of is a (hell of a) lot 
> variable:=value; statements. I kept getting insufficient virtual memory 
> errors so I played with the quotas and the page file until I hit a 20gb 
> pagefile and a process pagefile quota of 20,000,000. I then split the 
> results into much smaller chunks to get them to compile.
>
> There's probably around 1.2 million assignment statements altogether. Can 
> anyone suggest why the program wouldn't compile?
>

The Pascal compiler (like all the GEM-based compilers) are 32-bit programs. 
They do not use P2 space.  We have too many embedded 32-bit pointers in data 
structures all over the frontends and GEM to safely make changes.

That said, if you have a VERY large program, the compiler will simply run 
out of P0 address space.  The size of the pagefiles or the pagefile quota 
won't help.  When P0 runs out, we're done.

We do make big efforts to reuse heap storage as the compiler is finished 
with it, but we have to keep all the pending instructions in memory so we 
can peephole optimize them, bundle them, write the ELF file, etc.  We looked 
at doing it in "chunks" but even that was going to disturb lots of code. 
Since most programs don't hit the limit, the risk of breaking everybody for 
the reward of letting a few very large programs compile, didn't seem like a 
good thing.

Did it ever compile on Alpha?  Anyway, the program simply requires more 
memory to compile than is available in P0 space.  Breaking them up into 
smaller modules is the correct solution.

John






More information about the Info-vax mailing list