Hey all,

My knowledge of GCs is limited, but my faith in them (for most applications) has greatly increased with advances (like with Golang's recent updates). I am now trying to get a better sense for the direction D is going regarding memory management, both in relation to the GC and without it. Excuse my ignorance, but can someone clarify the following for me?

1) If using the GC, but for whatever reason, I need to free something _right now_, is core.GC.free() the proper way to do this?

2) Does calling object.destroy() mean that the object is marked for future collection? If not, how can I ensure it is properly marked.

3) How can I mark a non-object for future collection? For example, a dynamic array: int[] a = new int[10];. Do I just set any references to null?

4) What if I want to immediately deallocate a dynamically allocated non-object (such as the dynamic array) - Can I use core.GC.free?

5) Is there a way to do simple heap allocation with 'new' while ensuring the GC doesn't deallocate until I want it to?

6) If the GC is off, how is allocation/deallocation handled? Can I still use new for example (and how do I dealloc)?

Thank you for any help you can provide.

Reply via email to