What    |Removed                     |Added
 Attachment #696 is|0                           |1
           obsolete|                            |

--- Comment #60 from 2010-07-28 08:40:37 PDT ---
Created an attachment (id=701)
D1 - patch for Tango's runtime to enable precise GC scanning

- lots of nasty refactoring in gcx.d:
   - kill the string mixin
   - replace binSize by binsize as suggested by Leandro (that was from
dsimcha's patch; no idea why it was there)
   - realloc is now "emulated" (this simplifies things a lot - untested because
neither the runtime, Tango, or any of my code actually use realloc); note that
realloc doesn't shrink anymore, but that could be added back
   - replace some the implementation of sizeOf and addrOf functions by using
Gcx.getInfo (the high level of code duplication in gcx.d sure is horrible)
   - explicitly support SENTINEL (I have no idea why the code apparently worked
with SENTINEL enabled; at least it should have messed up the bitmask scanning
   - now you can control per environment variable if bitmasks will be stored in
memory blocks (see Memory.d GC ddoc comment)
- update method names and documentation as suggested by Leandro in comment 44

Also, shouldn't functions like freeNoSync check for interior pointers? What
happens if you call it with such a pointer?

There was also some awkwardness about sentinels. For example getInfo() doesn't
substract the size of the sentinel from the returned size. (I fixed that
specific one because not fixing it would have meant to introduce a special

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to