From: Charlie Savage Date: 2007-10-01T12:19:36+09:00 Subject: Re: Will 1.8.6 remain compiled with VC6? This is a cryptographically signed message in MIME format. --------------ms090009010806070507080406 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > A recompile of ANY library that an extension depends on, because of > rampant Microsoft incompatibilities. The problem is that any time you > have more than one application using more than one C run-time (e.g., > MSVCRT.DLL and MSCRT80.DLL), you have different memory allocation > tables, different file handle tables, etc. Microsoft simply DOES NOT > CARE about this and won't provide any workarounds to make this clean > and easy. So I've modified my thinking on this. Everything you say above is true - but maybe its not an issue after all. As long as you make sure that each dll that allocates memory, file handles, etc. also frees them then you are ok. (more info see http://msdn2.microsoft.com/en-us/library/ms235460(VS.80).aspx). So - are resources ever allocated by one ruby dll (ie, extension) and freed by another ruby dll? Hopefully not. If you're careful, then things seem to work fine. An example is ruby-prof, which works fine against Ruby 1.8.4 when built with VC2005. A counter example is the libxml bindings which use ALLOCATE (so ruby.exe) to get memory but use free (so the dll) to deallocate it. But that is a bug - the libxml bindings should use xfree instead (so ruby.exe). Finding those sorts of bugs is easy - a debug build using VC2005 will seg fault with an appropriate error message when it happens. > > It is not in the One-Click Installer's mandate to recompile OpenSSL > using VC8 instead of VC6. Or zlib. Or pdcurses. Or ... Sure - and as long as Ruby doesn't free any object allocated by those dlls it should all work fine. Thus I see no reason you can't mix and match dlls from VC6, VC2003, VC2005 and mingw/msys. Just don't mix your allocations/deallocations. Note a big downside of VC2003/VC2005 is having to distribute the various required Microsoft CRT dlls - that is a royal PITA. And that is why MingW/msys/VC++6 are so convenient - they use older versions of the CRT that are on all Windows machines. Charlie --------------ms090009010806070507080406 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJAzCC AtwwggJFoAMCAQICEAoty2f3MFegtmGEVEetSuQwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA3MDUxNTIxNTEyNVoX DTA4MDUxNDIxNTEyNVowQzEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEgMB4G CSqGSIb3DQEJARYRY2Zpc0BzYXZhZ2V4aS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQCylmJRp+N8UWDg0OVjSKArEIwPgm5N4IsFtPsC+Via4XyKtJ0t41OgCO7dQrEc Gv9SHRna4tN7/IkJX2aJABWjPWLVvLPBz5WyMtwqdHIII/i/qZclyQ/Tbzi4d+TpgeLgfa/F UqcEzUhLz3Bh75WwkzXJIxVhLXNIh79EpAdMf2W/hveM2D84uXfmMyX+sOoMCHKn2b9zzV9d wuoaPwqMC5Tda6vDn+Vz67KLQY/WATyGYzZqoqG7hrmLS9sKKsWPQ07SctpOPv6a5bSw0j1X aV/azGwRw5yu5wB/9W6rlg0/tNOXFntGR7XU4Ws2sPd5x54KCiYZyyhke17BWxLbAgMBAAGj LjAsMBwGA1UdEQQVMBOBEWNmaXNAc2F2YWdleGkuY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZI hvcNAQEFBQADgYEAk9Qw9KKcchhGWGAe9u7GZlCEGsSi1+SjmTsBlDB/T/erNEljkJOXvJBk DGu6j9sJBr9oMZ6LrWIWy/OuqJ+YJhPZUR7TWlKZVuAGlVXwbA6iqSF4Q2uXK+fFP1GG8lkA maSDWXWlij9KsKfARKHRjE2SuGANUOf6CzgUjgSCOOQwggLcMIICRaADAgECAhAKLctn9zBX oLZhhFRHrUrkMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3 dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJl ZW1haWwgSXNzdWluZyBDQTAeFw0wNzA1MTUyMTUxMjVaFw0wODA1MTQyMTUxMjVaMEMxHzAd BgNVBAMTFlRoYXd0ZSBGcmVlbWFpbCBNZW1iZXIxIDAeBgkqhkiG9w0BCQEWEWNmaXNAc2F2 YWdleGkuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAspZiUafjfFFg4NDl Y0igKxCMD4JuTeCLBbT7AvlYmuF8irSdLeNToAju3UKxHBr/Uh0Z2uLTe/yJCV9miQAVoz1i 1byzwc+VsjLcKnRyCCP4v6mXJckP0284uHfk6YHi4H2vxVKnBM1IS89wYe+VsJM1ySMVYS1z SIe/RKQHTH9lv4b3jNg/OLl35jMl/rDqDAhyp9m/c81fXcLqGj8KjAuU3Wurw5/lc+uyi0GP 1gE8hmM2aqKhu4a5i0vbCirFj0NO0nLaTj7+muW0sNI9V2lf2sxsEcOcrucAf/Vuq5YNP7TT lxZ7Rke11OFrNrD3eceeCgomGcsoZHtewVsS2wIDAQABoy4wLDAcBgNVHREEFTATgRFjZmlz QHNhdmFnZXhpLmNvbTAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBBQUAA4GBAJPUMPSinHIY RlhgHvbuxmZQhBrEotfko5k7AZQwf0/3qzRJY5CTl7yQZAxruo/bCQa/aDGei61iFsvzrqif mCYT2VEe01pSmVbgBpVV8GwOoqkheENrlyvnxT9RhvJZAJmkg1l1pYo/SrCnwESh0YxNkrhg DVDn+gs4FI4EgjjkMIIDPzCCAqigAwIBAgIBDTANBgkqhkiG9w0BAQUFADCB0TELMAkGA1UE BhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl cyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJ KoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUuY29tMB4XDTAzMDcxNzAwMDAw MFoXDTEzMDcxNjIzNTk1OVowYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25z dWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJ c3N1aW5nIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEpjxVc1X7TrnKmVoeaMB1 BHCd3+n/ox7svc31W/Iadr1/DDph8r9RzgHU5VAKMNcCY1osiRVwjt3J8CuFWqo/cVbLrzwL B+fxH5E2JCoTzyvV84J3PQO+K/67GD4Hv0CAAmTXp6a7n2XRxSpUhQ9IBH+nttE8YQRAHmQZ cmC3+wIDAQABo4GUMIGRMBIGA1UdEwEB/wQIMAYBAf8CAQAwQwYDVR0fBDwwOjA4oDagNIYy aHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVBlcnNvbmFsRnJlZW1haWxDQS5jcmwwCwYD VR0PBAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFQcml2YXRlTGFiZWwyLTEzODAN BgkqhkiG9w0BAQUFAAOBgQBIjNFQg+oLLswNo2asZw9/r6y+whehQ5aUnX9MIbj4Nh+qLZ82 L8D0HFAgk3A8/a3hYWLD2ToZfoSxmRsAxRoLgnSeJVCUYsfbJ3FXJY3dqZw5jowgT2Vfldr3 94fWxghOrvbqNOUQGls1TXfjViF4gtwhGTXeJLHTHUb/XV9lTzGCA2QwggNgAgEBMHYwYjEL MAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAq BgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhAKLctn9zBXoLZh hFRHrUrkMAkGBSsOAwIaBQCgggHDMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZI hvcNAQkFMQ8XDTA3MTAwMTAzMTg0NFowIwYJKoZIhvcNAQkEMRYEFJqKGikUj89G7UwAGz3c uSBH/fV+MFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0G CCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGFBgkrBgEEAYI3EAQxeDB2 MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQu MSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQCi3LZ/cw V6C2YYRUR61K5DCBhwYLKoZIhvcNAQkQAgsxeKB2MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQK ExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29u YWwgRnJlZW1haWwgSXNzdWluZyBDQQIQCi3LZ/cwV6C2YYRUR61K5DANBgkqhkiG9w0BAQEF AASCAQCdGfhoL0f9rrCmjNH/+jRqL4aj9tTvuS5zL6iDkiqcGYAFt0jPd+KFhU2Xp0fvjn9g rmPVmPDuO+iWk4y0+hRQ44hIsOF/i6lTBjQCTPr/U/LQRq6Gcth4eFYkILqPzn/IxXwWLQaf 9vlyQ3YCgcfLKq2JGFijyMwCEveeTZihpUCDyPRviD8slA0qEum2U+iui5PGBxb7EnrxmrY+ h9WzqsPZX4cQoeifCVnoSFEh93RANakPmj/jJGpskQaeDULvB7VU7ly5YsJtRvMn+UnHwTF0 gNu4vgPg+dQh6RScV1p4h5cHBRqXfz+fKjcTsKRZFGuLmaQ/pB/1t+aSI/G1AAAAAAAA --------------ms090009010806070507080406--