On Nov 10, 2010, at 4:23 AM, Michel Fortin wrote:

> Le 2010-11-10 à 4:55, Jacob Carlborg a écrit :
> 
>> I've been thinking about this and I'm trying to think of everything to get 
>> this right the first time so I have a couple of questions:
>> 
>> * I though it might be a good idea to add support for running module 
>> constructors for dynamically loaded libraries (i.e. libraries loaded with 
>> dlopen). Then I was think I need to add the new module infos to the array of 
>> existing ones and when/if the library is unloaded remove the module infos 
>> added by the library. Now for the question: is an array still a good data 
>> structure for this or should we use an associative array or something else?
> 
> The Objective-C runtime uses a linked list. I think the expectation is that 
> you won't have thousands of libraries open and that you won't unload them 
> often. But going with an AA doesn't look like a bad idea to me.

The compiler runtime (src/rt/memory.d) uses a linked list for static data 
segments... or it used to.  I think it now may simply call gc.addRange.  Either 
way, I think a linked list is a good approach.

>> * What to name the function, where to put it and when to call it?
> 
> It's called 'map_image' and 'unmap_image' in the Objective-C runtime. But I 
> don't know how they should be named in Druntime.

Oh, it may be appropriate to call this inside rt_loadLibrary(), which I believe 
is in src/rt/dmain2.d.  That's called by Runtime.loadLibrary().  Is anything 
else needed, say if a dynamic library is loaded automatically at run time?

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to