From: Vladimir T. <vtz...@gm...> - 2008-11-03 20:37:09
|
Hi Sam, On Nov 3, 2008, at 6:48 PM, Sam Steingold wrote: > Sam Steingold wrote: >>>>> ../src/spvw_circ.d: In function 'mlb_add': >>>>> ../src/spvw_circ.d:342: warning: large integer implicitly >>>>> truncated to unsigned type > > the attached patch removed the warning, but the loading init still > fails: > > ..................... > > Vladimir, did you get access to the gcc compile farm? Yes I have ubuntu running on amd64. I tried similar things as in the patch but even if it works - it is not good. I am not sure that fixing these warnings will help. The multi-level bitmap (hashset) used for detection of circularities consumes (will consumes) enormous amounts of memory on 64 bit architectures. For example it wants to malloc 0x400004190 bytes of memory (bit(31)*8 + more for the other levels) during bootstrap. It's not acceptable on any invocation of printer to execute such thing. I think about "alternative" implementation - which will at least reduce the amount of memory required. For example. While get_circ_mark() runs - no GC may happen (since it does not allocate anything and does not call blocking system calls - i.e. the thread cannot be suspended). So we may be sure that the "current" heap range will not change (I mean we can find the lowest and highest possible address for gcv_object_t - s). In this way we can effectively reduce the address space from 64 bit to something smaller. This will help but I do not like it. Especially with SPVW_PURE the address space will not be so small. Still thinking :). Vladimir |