D hates to be dynamic linked

Bane branimir.milosavljevic at gmail.com
Tue Feb 23 00:47:00 PST 2010


Just to get it righ: this means GC will be in dl tool so people that complain about exe size and gc bloat will be happy about it?

Roald Ribe Wrote:

> Justin Johansson wrote:
> > Rainer Schuetze wrote:
> > 
> >> 5. To share gc-collected objects between different DLLs, a common 
> >> phobos-DLL seems necessary. Extracting the GC into a separate DLL and 
> >> using the proxy-mechanism to attach any other client-DLL to it seems 
> >> feasable, but are there other things that need to be shared between 
> >> different phobos-instances? What about exception-handling?
> >>
> > 
> > Sounds like you have the right idea; that sounds similar to the
> > way Microsoft does it with MFC DLL's.  If I recall correctly,
> > when MFC applications are DLL based, you link with a common C runtime
> > DLL as well.  This way all memory allocations and frees are handled
> > by the common C runtime DLL (i.e. single point of responsibility).
> > Presumably a similar regime for D and the GC would be necessary.
> 
> Not only MFC. Plain C and C++ programs as well. This is why most MS-
> Windows based compiled languages comes with two versions of the
> runtime lib, one for static link and one for dynamic link (DLL).
> 
> If not, there will always be problems with DLL's in that language
> sharing file handles, memory, sockets, threads and so on.
> 
> The flip side of the coin is "DLL hell" (use Google). It is less of
> a problem in newer versions of MS-Windows than it used to be, but
> necessary to consider when supporting older platforms.
> 
> The Linux/BSD/unix side I know less about, but since they have a
> common location for shared libs and support multiple versions of
> the same lib (AFAIK) the problems are less there.
> 
> Roald




More information about the Digitalmars-d mailing list