digitalmars.D - Weak references
- Jesper Nordenberg <jesper nnl.se> Dec 09 2004
- Sebastian Beschke <s.beschke gmx.de> Dec 09 2004
- Ant <Ant_member pathlink.com> Dec 09 2004
- Ben Hinkle <bhinkle4 juno.com> Dec 09 2004
- Jesper Nordenberg <jesper nnl.se> Dec 10 2004
- "Ben Hinkle" <ben.hinkle gmail.com> Dec 10 2004
- Jesper Nordenberg <jesper nnl.se> Dec 10 2004
- Vathix <vathix dprogramming.com> Dec 10 2004
- Bastiaan Veelo <Bastiaan.N.Veelo ntnu.no> Dec 11 2004
- Vathix <vathix dprogramming.com> Dec 11 2004
- Russ Lewis <spamhole-2001-07-16 deming-os.org> Dec 10 2004
I'm new to D. Are there any equivalents of Java's WeakReference and SoftReference in D? What is the recommended IDE for developing in D? /Jesper
Dec 09 2004
Jesper Nordenberg wrote:What is the recommended IDE for developing in D?
Depends on who you ask :) I'll go ahead and recommend Ant's LEDS at http://leds.sf.net/ even though I've never used it. Apart from that, jEdit (http://www.jedit.org/) is doing quite OK for me, too :)/Jesper
Dec 09 2004
In article <cp9uft$o0v$1 digitaldaemon.com>, Sebastian Beschke says...Jesper Nordenberg wrote:What is the recommended IDE for developing in D?
Depends on who you ask :) I'll go ahead and recommend Ant's LEDS at http://leds.sf.net/ even though I've never used it.
this is the greatest compliment, no not toleds, but to my marketing strategy until now! :) of course it's http://leds.sourceforge.net/ (see, I never loose an opportunity to divulgate leds url!)Apart from that, jEdit (http://www.jedit.org/) is doing quite OK for me, too :)
also check http://www.prowiki.org/wiki4d/wiki.cgi?EditorSupport Ant
Dec 09 2004
Are there any equivalents of Java's WeakReference and SoftReference in D?
nope. I don't have any links handy but I remember it coming up on the newsgroup before and it didn't seem likely to show up any time soon if at all. It complicates the GC too much (or something like that) for too little benefit. -Ben
Dec 09 2004
Ben Hinkle wrote:Are there any equivalents of Java's WeakReference and SoftReference in D?
nope. I don't have any links handy but I remember it coming up on the newsgroup before and it didn't seem likely to show up any time soon if at all. It complicates the GC too much (or something like that) for too little benefit.
Too bad. I think weak references are very useful when creating loosely coupled classes. /Jesper
Dec 10 2004
"Jesper Nordenberg" <jesper nnl.se> wrote in message news:cpbn88$h1u$1 digitaldaemon.com...Ben Hinkle wrote:Are there any equivalents of Java's WeakReference and SoftReference in D?
nope. I don't have any links handy but I remember it coming up on the newsgroup before and it didn't seem likely to show up any time soon if at all. It complicates the GC too much (or something like that) for too little benefit.
Too bad. I think weak references are very useful when creating loosely coupled classes. /Jesper
Can you give more details? The current design won't change without making an argument to change it and the argument will heavily depend on use cases and how hard the alternative designs are. So the more examples we have of people using weak references the better.
Dec 10 2004
Ben Hinkle wrote:Too bad. I think weak references are very useful when creating loosely coupled classes. /Jesper
Can you give more details? The current design won't change without making an argument to change it and the argument will heavily depend on use cases and how hard the alternative designs are. So the more examples we have of people using weak references the better.
I typically use weak references for listeners in Java. You might have an object A listening on another object B, but you don't want to prevent A from being GC'ed just because B keeps a reference to it. When there are no other references to A beside the one in B, you want the listener to be automatically removed from B. This scenario is very common in for example GUI applications. Another scenario is when you want to minimize the dependencies between classes and thus store information about an object in a map rather than storing the information inside the object. When the object is GC'ed you want to remove the entry from the map. In Java this is easily solved by using a WeakHashMap which automatically removes the key-value pair from the map when the key is GC'ed. Maybe there are other ways besides weak references to solve this in D. /Jesper
Dec 10 2004
On Fri, 10 Dec 2004 16:27:17 +0100, Jesper Nordenberg <jesper nnl.se> wrote:Ben Hinkle wrote:Too bad. I think weak references are very useful when creating loosely coupled classes. /Jesper
making an argument to change it and the argument will heavily depend on use cases and how hard the alternative designs are. So the more examples we have of people using weak references the better.
I typically use weak references for listeners in Java. You might have an object A listening on another object B, but you don't want to prevent A from being GC'ed just because B keeps a reference to it. When there are no other references to A beside the one in B, you want the listener to be automatically removed from B. This scenario is very common in for example GUI applications.
I had to do this for a few things in DFL, like menus. I accomplished it by storing the reference in malloc'd memory.
Dec 10 2004
Vathix wrote:On Fri, 10 Dec 2004 16:27:17 +0100, Jesper Nordenberg <jesper nnl.se> wrote:Ben Hinkle wrote:Too bad. I think weak references are very useful when creating loosely coupled classes. /Jesper
Can you give more details? The current design won't change without making an argument to change it and the argument will heavily depend on use cases and how hard the alternative designs are. So the more examples we have of people using weak references the better.
I typically use weak references for listeners in Java. You might have an object A listening on another object B, but you don't want to prevent A from being GC'ed just because B keeps a reference to it. When there are no other references to A beside the one in B, you want the listener to be automatically removed from B. This scenario is very common in for example GUI applications.
I had to do this for a few things in DFL, like menus. I accomplished it by storing the reference in malloc'd memory.
I am very interested in this. Where can I find the details? Bastiaan.
Dec 11 2004
I had to do this for a few things in DFL, like menus. I accomplished it by storing the reference in malloc'd memory.
I am very interested in this. Where can I find the details?
Something like this. It's just an idea, it won't compile as-is: class Item // Item you want weak references to. { this() { addItem(this); } ~this() { removeItem(this); } } Item[] refItems; // malloc'd memory holding weak references to Item`s. void addItem(Item item) { refItems = realloc(refItems, count * Item.sizeof); refItems[i] = item; } void removeItem(Item item) { int i; for(i = 0; i != refItems.length; i++) { if(item == refItems[i]) { refItems = realloc(refItems, count * Item.sizeof); break; } } }
Dec 11 2004
Ben Hinkle wrote:Are there any equivalents of Java's WeakReference and SoftReference in D?
nope. I don't have any links handy but I remember it coming up on the newsgroup before and it didn't seem likely to show up any time soon if at all. It complicates the GC too much (or something like that) for too little benefit.
It is possible to create them (without altering the GC), but it takes some rather arcane magic to do it.
Dec 10 2004









Ant <Ant_member pathlink.com> 