On 10 nov 2010, at 18:55, Sean Kelly wrote: > 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.
Ok, I guess a we'll use a linked list. >>> * 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? No, I don't think so. As long as I register a callback it will be called for dynamic libraries loaded at run time. > _______________________________________________ > phobos mailing list > [email protected] > http://lists.puremagic.com/mailman/listinfo/phobos -- /Jacob Carlborg _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
