GC vs. Manual Memory Management Real World Comparison

Jakob Ovrum jakobovrum at gmail.com
Thu Oct 25 20:41:26 PDT 2012


On Thursday, 25 October 2012 at 17:20:40 UTC, Rob T wrote:
> On Thursday, 25 October 2012 at 02:15:41 UTC, Jakob Ovrum wrote:
>> You can even share the same GC between dynamic libraries and 
>> the host application  (if both are D and use GC, of course) 
>> using the GC proxy system.
>
> What is the GC proxy system, and how do I make use of it?
>
> --rt

There's a function Runtime.loadLibrary in core.runtime that is 
supposed to load a shared library and get the symbol named 
`gc_setProxy` using the platform's dynamic library loading 
routines, then use that to share the host GC with the loaded 
library.

I say "is supposed to" because I checked the code and it's 
currently a throwing stub on POSIX systems, it's only implemented 
for Windows (the source of the function can be found in 
rt_loadLibrary in rt/dmain2.d of druntime).

When it comes to gc_setProxy - GDC exports this symbol by default 
on Windows, while DMD doesn't. I don't know why this is the case. 
I haven't built shared libraries on other OS' before so I don't 
know how GDC and DMD behave there.




More information about the Digitalmars-d-announce mailing list