digitalmars.D.bugs - [Issue 7251] New: GC not working
- d-bugmail puremagic.com (50/50) Jan 08 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7251
- d-bugmail puremagic.com (13/13) Jan 09 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7251
- d-bugmail puremagic.com (11/11) Feb 29 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7251
- d-bugmail puremagic.com (13/14) Mar 01 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7251
- d-bugmail puremagic.com (14/18) Mar 01 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7251
- d-bugmail puremagic.com (14/26) Mar 01 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7251
- d-bugmail puremagic.com (15/26) Mar 01 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7251
- d-bugmail puremagic.com (19/37) Mar 04 2012 http://d.puremagic.com/issues/show_bug.cgi?id=7251
- d-bugmail puremagic.com (14/14) May 30 2013 http://d.puremagic.com/issues/show_bug.cgi?id=7251
http://d.puremagic.com/issues/show_bug.cgi?id=7251 Summary: GC not working Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Severity: regression Priority: P2 Component: druntime AssignedTo: nobody puremagic.com ReportedBy: wfunction hotmail.com On DMD 2.057, the code: import core.memory, std.stdio; extern(Windows) int GlobalMemoryStatusEx(ref MEMORYSTATUSEX lpBuffer); struct MEMORYSTATUSEX { uint Length, MemoryLoad; ulong TotalPhys, AvailPhys, TotalPageFile, AvailPageFile; ulong TotalVirtual, AvailVirtual, AvailExtendedVirtual; } void testA(size_t count) { size_t[] a; foreach (i; 0 .. count) a ~= i; } void main() { MEMORYSTATUSEX ms; ms.Length = ms.sizeof; foreach (i; 0 .. 32) { testA(16 << 20); GlobalMemoryStatusEx(ms); stderr.writefln("AvailPhys: %s MiB", ms.AvailPhys >>> 20); } } Gives output: AvailPhys: 3711 MiB AvailPhys: 3365 MiB AvailPhys: 3061 MiB AvailPhys: 2747 MiB AvailPhys: 2458 MiB core.exception.OutOfMemoryError Obviously, the GC is non-functional... -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 08 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7251 David Simcha <dsimcha yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |dsimcha yahoo.com Resolution| |INVALID This looks like false pointers. testA allocates 48 MB for its largest array on each run. We really need precise heap scanning. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 09 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7251 wfunction hotmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|INVALID | Just wondering, why was this marked as "Resolved, Invalid" with no comment? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 29 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7251 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED CC| |clugdbug yahoo.com.au Resolution| |INVALIDJust wondering, why was this marked as "Resolved, Invalid" with no comment?-- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 01 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7251 wfunction hotmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|INVALID |REMINDWait what? "This looks like false pointers [...] We really need precise heap scanning." Doesn't that mean this needs to be fixed? Or is one of us misunderstanding the meaning of the above? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------Just wondering, why was this marked as "Resolved, Invalid" with no comment?
Mar 01 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7251No, it's inevitable that a mark-and-sweep GC on a 32 bit system won't work if large numbers of false pointers are present. And this code: foreach (i; 0 .. count) a ~= i; is flooding the system with false pointers. You marked this as regression, is there any previous compiler where this worked? (reopen if it there is). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------Wait what? "This looks like false pointers [...] We really need precise heap scanning." Doesn't that mean this needs to be fixed? Or is one of us misunderstanding the meaning of the above?Just wondering, why was this marked as "Resolved, Invalid" with no comment?
Mar 01 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7251No, it's inevitable that a mark-and-sweep GC on a 32 bit system won't work if large numbers of false pointers are present. And this code: foreach (i; 0 .. count) a ~= i; is flooding the system with false pointers.I think you might have misunderstood the problem, like I originally did. I am ********** NOT *********** filling the system with false pointers. See David Simcha's comment in response to mine: http://stackoverflow.com/a/8796226/541686 It's inherently defective -- I'm merely _allocating_ a lot of memory, that's all. The rest is a problem with the GC's algorithm. (Unless you expect that no one will allocate one 20-MB chunk of RAM?)You marked this as regression, is there any previous compiler where this worked? (reopen if it there is).I marked it as "remind", since I'm sorta reminding about this bug... if that's not the implied meaning then my bad, but this still needs to be fixed. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 01 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7251 Rob Jacques <sandford jhu.edu> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P2 |P4 CC| |sandford jhu.edu Platform|x86 |All OS/Version|Windows |All Severity|regression |minorThe static data segment and the stack generate _always_ contain false pointers. So even if you're not generating them yourself much, they do exist and things will get stuck. Also, direct use of ~= is discouraged; appender is recommended instead and there patch for appender that solves this issue. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------No, it's inevitable that a mark-and-sweep GC on a 32 bit system won't work if large numbers of false pointers are present. And this code: foreach (i; 0 .. count) a ~= i; is flooding the system with false pointers.I think you might have misunderstood the problem, like I originally did. I am ********** NOT *********** filling the system with false pointers. See David Simcha's comment in response to mine: http://stackoverflow.com/a/8796226/541686 It's inherently defective -- I'm merely _allocating_ a lot of memory, that's all. The rest is a problem with the GC's algorithm. (Unless you expect that no one will allocate one 20-MB chunk of RAM?)
Mar 04 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7251 Leandro Lucarella <leandro.lucarella sociomantic.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |leandro.lucarella sociomant | |ic.com Resolution|REMIND |DUPLICATE 2013-05-30 04:54:25 PDT --- fixed, this one should be fixed too. *** This issue has been marked as a duplicate of issue 3463 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 30 2013