I have recently downloaded the PolyML 5.2.1 archive and built it on my
4GB Vista x64 SP2 box, feeding the supplied Visual Studio workspace to
my VS 2008 SP1 dev environment.
This went quite well, with only 2 build errors and one execution problem
stopping the entire bootstrapping process! :)
The 2 errors are just from using the newer dev environment: the _osver
variable is no longer available. So, the 2 usages (line 1434 in
basicio.cpp and line 168 in process_env.cpp) need to change. As a
minimal change, I would suggest
if (_osver & 0x8000) => if (GetVersion() & 0x80000000)
as something that will still work in older and newer environments.
The execution issue happens early in the "Custom Build Step" use of
PolyImport.exe: during startup, the polymain(...) function obtains the
size of installed physical memory, and then defaults to using half of it.
IMHO, this logic could use a new look, given modern system memory levels
(4GB and up is becoming common, especially in today's dev
environments)... in any case, the first actual call to VirtualAlloc is
for something like 1.5 GB, and is failed. Since I was willing to
believe that finding that much contiguous virtual address space could be
hard - or maybe it was just that the demand to commit all of it too was
the actual cause - I just forcibly cut the memory usage back to 256M and
the rest of the build proceeded flawlessly, creating a functioning
PolyML system.
I built all 4 of the pre-defined targets - the only one that appeared
seriously slow was the "IntDebug". ;)
So, possibly adding some logic to (in the absence of command-line or
other override) "cap" the default memory usage at 256 MB or 512 MB might
be in order?
Robert