[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