Austin Ziegler wrote:
> On 6/26/06, Bill Kelly <billk / cts.com> wrote:
>> I'm not sure if this is the sort of information you're looking
>> for, but I've run into the occasional extension, and/or library
>> upon which an extension relies, that essentially requires
>> mingw/msys to build.
> 
> Not specifically. However, part of what I really want to try to get
> the MS team to help us out with is a situation wereh I have
> ImageMagick built with MSYS, RMagick built with Visual Studio 2005 (cl
> 14) and Ruby built with VC++6 -- and it all Just Works.

I'm not sure this is possible. This has come up quite often in the Perl 
community. The problem is that the C library is responsible for 
allocating and deallocating certain resources that cannot be shared 
across different run-times (memory, I/O buffers, thread synchronization 
objects for multi-threaded run-times, etc.) It can be worked around with 
proper interfaces. For instance it wouldn't matter what ImageMagick is 
compiled with because it provides a completely encapsulated interface; 
it handles its own resources. I'm not familiar with Ruby extensions, but 
unless Ruby provides the same encapsulation of resource management it is 
possible that corruptions will occur. E.g. Say you allocate memory from 
one run-time which gives you a handle that is valid in that run-time; 
then you try to free it in the other run-time, but in the other run-time 
it points to some random area of memory, discontinuous with the first. 
Boom! or worse.

I also seem to recall that there is some problem with redistribution: 
msvcrt is available everywhere, but the newer run-times can't be 
distributed or something like that. I'm not sure of the particulars of 
that issue.

I suggest contacting the folks at ActiveState.com. They have long dealt 
with this issue with their distributions of Perl, Python, and Tcl/Tk. 
They still use VC6 because of these issues.

Randy.