Hi,

Herbert Graeber [mailto:[EMAIL PROTECTED]] writes: 
> 
> It looks like some platforms have problems with memory 
> mangement. I observed a similar problem with the Win32
> binary, too. On Windows NT everything is OK.
> Using Windows 95/98 (on my home machine) I have got the
> message:
> 
>     getMBlocks: MapViewOfFileEx failed with: 487
>     TEST.EXE: fatal error: GetMBlock: mmap failed
> 
...
> 
> For me it looks like it is better to use the VirtualAlloc-Function to
> reserve memory. It allows to reserve a huge address region (1GB for
> example), without commiting virtual memory inside of this region. This
> region will not be used by other memory mangers. The virtual 
> memory can be commited incrementally, when it is really needed.
> 

Yes, the current solution of using MapViewOfFileEx() with the base alloc
address of 0x50000000 does pose a problem on 95 (as also reported by
others.) I've switched over to using VirtualAlloc(), reserving & committing
a Mb at a time. The base address is still 0x50000000 though - if this
turns out to interact badly with other allocators, we'll elaborate on
the code that picks the base address to allocate from.

A 4.01 RTS which is hopefully more 95 friendly can be found at

 ftp://ftp.dcs.gla.ac.uk/pub/haskell/glasgow/working/4.01-win32-libHSrts.zip

Let me know if this fixes your problems under 95.

> 
> I hope this hints help, to make GHC memory managment better on Win32
> platforms. If not, discard it.
> 

Yup, thanks a lot.

--Sigbjorn

Reply via email to