From: Gregory Brown Date: 2008-03-26T00:54:55+09:00 Subject: Re: Bootstrapping Ruby with MinGW: selfhosted and test sandbox! On Mar 25, 11:29 am, James Tucker wrote: > On 25 Mar 2008, at 13:14, Luis Lavena wrote: > > > > > Hey Nobu, > > > On 25 mar, 03:41, Nobuyoshi Nakada wrote: > >> Hi, > > >> At Tue, 25 Mar 2008 06:04:52 +0900, > >> Luis Lavena wrote in [ruby-talk:295564]: > > >>> On Mar 24, 5:54 pm, rogerdpack wrote: > >>>> Note that binary gems don't work only because they install their > >>>> binary aspect into the wrong directory (and, if you have the newer > >>>> versions of rubygems, auto-install a version which doesn't exist so > >>>> you'd need to specify you want the win32 gem). Once you install it > >>>> you can easily copy the .so's to the right directory and they will > >>>> 'probably' work just fine. > > >>> Not that, RubyGems consider each platform by it's own. I snot the > >>> same > >>> darwin8 to cygwin, so mingw32 shouldn't be considered a compatible > >>> match to mswin32. > > >> Darwin and cygwin are completely different systems, but mingw32 > >> and mswin32 are for the same system. > > >> Not onlymingw, gcc is basically intended to be binary > >> interface compatible with the system native development > >> environments. So cygwin is the special case in this sense. > > > I just tried to be dramatic, also exposing that RubyGems will not > > considermingwa compatible platform to mswin32, since it's using > > RbConfig::CONFIG['arch'] to determine it's platform. > > > I'll like to point htat rubygems 'darwin' is compatible with 'darwin7' > > and 'darwin8', but version 7 is not compatible with 8, like happens > > with buils with VC6 and VC8/9. > > >>> In a overlooked way you could be correct, but that is too simplistic > >>> way to look things. When you start seeing errors due exception > >>> thrown > >>> inside shared object we can find several and big issues. > > >>> Consider that the code generated by VC6 is not the sameMinGW > >>> generates. It even differs in several places on how it do things. > > >> Binary interface compatible means that they use same calling > >> convension, same utility functions, same runtime DLL etc, but > >> not generated code are identical. > > > You're are correct, but real life prove me wrong. > > > Even thatMinGWgenerates msvcrt-ruby18.dll library, I cannot put a > > pre-compiled extension build with VC6 to run over theMinGWbuild, it > > just crash. > > > (Tried several times during the testing procedure). > > > Everything depends on the complexity of things the extensions perform, > > but instead of guessing and "hoping" not to crash, I put my statement > > on bold, underlined text: extensions are not easily interchangeable > > between these two build systems. > > > To solve this I'll require a lot of deep tracing inside ruby, and I > > still want to fix the redirected IO issues I had with Readline and > > still noone replied. > > As you know Luis, I'm desperately trying to make time to come and help > you, sort out some of the code i can donate, etc. Sadly, time is > lacking. Anyway, it seems this kind of project would be ideal for the > Ruby Mendicant project. It's an interesting idea, but my project is not Google's Summer of Code (which I think this idea is better suited for). Unfortunately, M$ support a very bad project for me, because I don't even own a machine with Windows on it, and have moved all my commercial work off of the platform too. The only tie I have left to the Microsoft world I slide underneath via ODBC.... For RubyMendicant, since it isn't really the same as the GSoC (ie, I'm taking off from my commercial work to do this!), I really need to pick projects that I have expertise in along with a strong interest so that people's donations are used most effectively. Windows unfortunately doesn't fit that bill, even if the project would be well worth it for someone better suited. I have selected 3 projects from my ideas list, and am mostly limiting the potential projects to these for now: http://rubymendicant.wikidot.com/projects Though I won't ignore suggested project ideas, I'm asking folks to rally behind one or more of those projects, since I've already seen some support for them and have a plan in mind... it's starting to get too close to the start date to consider entirely new ideas. > I know there are a lot of the long-term > rubyists who simply say "Oh we don't care about Windows" or "It's a > broken platform" / whatever. The fact is, actually getting a > performant stable interpreter on the platform would probably do more > for the language than any other single action. Of course OCI download > numbers from rubyforge can easily attest to this. I agree this is important. Maybe suggest this as a GSoC project idea. http://rubycentral.com/projects/gsoc-2008/ideas-for-gsoc-2008 -greg