Note that there are some explanatory texts on larger screens.

plurals
  1. POThe research papers say it's possible to have real time reference counting AND cycle collection, but how?
    primarykey
    data
    text
    <p>Note: there should be a cycle-collection tag. Cycle collection is really the main topic here, but I don't have enough points to create a tag. Also I'm at the max number of tags already. Also a reference-cycles tag would make sense. That also doesn't exist.</p> <p>I have a lot of ideas about what would make a better computer language, but I'm hung up on making a state of the art garbage collector for it.</p> <p>I've noticed that Apple and Microsoft (for Window's 8) are moving to reference counting. Apparently people found that regular garbage collection required too much overhead memory and didn't like the thrashing when memory got too tight.</p> <p>But if I want a programming style that isn't limited by loops in references then normal reference counting hardly seems like an improvement because scanning for reference loops and handling them properly requires algorithms with multiple passes over potential reference loops.</p> <p>Now there are some papers which suggest that it's possible to scan for loops in parallel with program execution, but I get lost reading them.</p> <p>For instance "Concurrent Cycle Collection in Reference Counted Systems by David F. Bacon and V.T. Rajan <a href="http://researcher.ibm.com/files/us-bacon/Bacon01Concurrent.pdf" rel="nofollow">http://researcher.ibm.com/files/us-bacon/Bacon01Concurrent.pdf</a> "A Pure Reference Counting Garbage Collector by DAVID F. BACON, CLEMENT R. ATTANASIO, V.T. RAJAN, STEPHEN E. SMITH &amp; HAN B. LEE" and "A Unified Theory of Garbage Collection by David F. Bacon, Perry Cheng and V.T. Rajan" <a href="http://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf" rel="nofollow">http://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf</a></p> <p>Can anyone explain to me how it's possible to find all loops, including connected ones, and on a trial basis, reduce reference counts by the self reference amount, and do it safely while objects are being mutated?</p> <p>It seems like a tall order. </p> <p>I remember the "mostly concurrent garbage collection" with it's rescanning of dirty objects or dirty pages but I'm not sure if this is the same sort of thing. </p> <p>I've played a bit with scanning for loops and I've convinced myself that there is no mostly local algorithm that can keep track of loops, no matter how much memory you waste on it. It really is a non-local property. There's no such thing as tagging for loops.</p> <p>Anyway does anyone understand the parallel algorithm? Can anyone explain it to me?</p> <p>edit: <a href="http://researcher.ibm.com/files/us-bacon/Paz05Efficient.pdf" rel="nofollow">http://researcher.ibm.com/files/us-bacon/Paz05Efficient.pdf</a> That paper looks promising. Though even assuming I can get to the point where I'm sure I understand it, non-blocking parallel algorithms are so hard that it's fairly common for published algorithms to be buggy. And fixing them is hard when it's possible at all, I know both of those facts from experience.</p> <p>Also I want to be sure exactly what they mean by a "sliding view" :/</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. COYour premise seems fishy. AFAIK ObjC was using reference counting since basically forever, the only thing that's somewhat new is that most IncRef/DecRef operations can be inserted automatically. And for WinRT, it's a combination of COM legacy and the desire to be non-intrusive and language-agnostic (which might also be why COM used refcounting to begin with). Tracing across multiple languages with significantly different object representations is very hard. Moreover, the details of the memory management shouldn't have any impact on the language proper - so go ahead and try out your ideas.
      singulars
      1. This table or related slice is empty.
    2. COWhat did IOS use before their new transition to ARC (automatic reference counting) https://developer.apple.com/library/ios/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html I assumed it was like Android with a real garbage collector
      singulars
    3. COOk, I see what apple did. They had GC on the mac, they failed to port it to iOS, so they instead are getting rid of it on the Mac. Seems like a bad decision. http://www.cocoabuilder.com/archive/xcode/322876-why-arc-over-garbage-collection.html
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload