"Bryan Murphy" <bryan / terralab.com> wrote in message
news:3B86A7F3.8040702 / terralab.com...

> What's happening is that when you run cygwin, and then run Ruby shortly
> afterwards, the cygwin DLL is still cached in memory and windows tries
> to use the cygwin DLL instead of the one in the Ruby directory (thus
> causing the DLL error).  You should probably note in the readme that you
> shouldn't run Ruby immediately after running cygwin.

I seriously doubt the cache issue is related to Windows way of handling
dll's.
1) A windows dll gets unloaded the second the last user process terminates.
2) Even if a dll is loaded, nothing prevents an equivalent dll in a
different path from being loaded into another process.

But Cygwin is known to behave strange with multiple versions for whatever
reason that is probably rather specific to Cygwin implementation. Loading a
second Cygwin dll might check for the existence of an earlier loaded dll
thus causing the cache effect.

Anyway I think this Cygwin problem is a serious issue. There can be many
applications depending on Cygwin, and it generally messes up as soon as more
than one application is running.
It does prevent easy deployment of Ruby. I'd rather avoid the dependecy on
Cygwin, the way things are.
There may also be other issues with threading and sockets. I'm not sure
about the alternative though. But there is a MingW distrubtion as well I
guess. What is the problem with that - since is obviously not the preferred
one with the Windows Installer?

Mikkel