Hello Simon,

the following still remains true:


another strange thing is what under win32 (and only win32) without
"+RTS -M" option we are restricted to 256 Mbytes of heap. see at this
code:

>   if ( (base_non_committed == 0) || (next_request + size > end_non_committed) 
> ) {
>     if (base_non_committed) {
>         /* Tacky, but if no user-provided -M option is in effect,
>          * set it to the default (==256M) in time for the heap overflow PSA.
>          */
>         if (RtsFlags.GcFlags.maxHeapSize == 0) {
>             RtsFlags.GcFlags.maxHeapSize = size_reserved_pool / BLOCK_SIZE;
>         }
>         heapOverflow();
>     }

i think it must be:

>   if ( (base_non_committed == 0) || (next_request + size > end_non_committed) 
> ) {
>     if (base_non_committed && RtsFlags.GcFlags.maxHeapSize) {
>         heapOverflow();
>     }

in order to allow programs without "+RTS -M" option allocate more than one
256 mbyte chunk  

-- 
Best regards,
 Bulat                          mailto:[EMAIL PROTECTED]

_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to