On Sun, Nov 16, 2008 at 7:19 PM, Charlie Savage <[EMAIL PROTECTED]> wrote:
>> I've explored the different alternatives under several environments
>> and the following are my findings:
>>
>> 1) Alteration of PATH to prepend the DLL location.
>> 2) Usage of SetDllDirectory
>> 3) LoadLibraryEx with LOAD_WITH_ALTERED_SEARCH_PATH
>
> Maybe we do something simple and say that all shared dependencies get put
> into ruby/lib on windows (or create a new directory, ruby/shared or
> something).  Or we could just do what happens now, put everything in bin.
>  But I think its probably be better to separate them out.

We will still face the override of the libraries by old/new versions
that came from different gems.

> One potential drawback with this solution is if 2 gems use the same shared
> library, but install different versions (although maybe the files would have
> different names).
>

Highly unlikely the dll has different version, like ones found on
*nix, they always stick to the same name.

I'm looking right now how option 3 will affect when allocating two
handles and adding the proper hooks to cleanup those at_exit.

Eric: with option 3 we open handles at the OS level. do you think we
can hook a at_exit function to perform the cleanup (close) of these
handles?
-- 
Luis Lavena
AREA 17
-
Human beings, who are almost unique in having the ability to learn from
the experience of others, are also remarkable for their apparent
disinclination to do so.
Douglas Adams
_______________________________________________
Rubygems-developers mailing list
Rubygems-developers@rubyforge.org
http://rubyforge.org/mailman/listinfo/rubygems-developers

Reply via email to