This post originated from an RSS feed registered with Ruby Buzz
by Daniel Berger.
Original Post: Back to ye 'ol compiler issues on Windows
Feed Title: Testing 1,2,3...
Feed URL: http://djberg96.livejournal.com/data/rss
Feed Description: A blog on Ruby and other stuff.
The good news is that Curt Hibbs put out the one click installer for 1.8.4. The bad news (for me and folks using the Win32Utils project files) is that he compiled using VC++ 6 instead of 7.
The problem, it seems, is that if you build some of the Win32Utils C extensions using VC++ 7 with a Ruby that was built with VC++ 6, some packages inexplicably segfault.
*SIGH*. I should have stayed in college. Drank lots of beer. Had that threesome I always wanted.
Where was I? Oh, yes. Segfaults.
There are a few possible solutions here:
1) Rewrite everything in pure Ruby using the Win32API package. This is doable, but would take a long time. We would also likely want to package up some separate modules for general use. Unlike Moonwolf's package, which has a TON of methods defined in one or two files, I'd like to see it broken down into related chunks. File related functions, error functions, service functions, etc. I wonder how well Win32API defined functions are going to do on 64 bit Windows, though.
2) Get someone with a VC++ 6 compiler to build and post the shared objects. Easy, but a pain to update every time I put out a release.
3) Tell people to suck it up and build Ruby from scratch if they want extensions to work with their compiler. Easy. Requires no work on my part, which is always nice. However, Curt's installer is *very* popular and many people don't want to screw around with installing their own compiler tools, even if it is free.
4) RubyInline - Ok, I put this here because I knew Eric read's this blog. ;) Seriously, though, it's something to consider.
5) Get Curt to build with VC++ 7, working out whatever issues he has. Since I don't know what his issues were exactly, it's impossible to say how difficult this would be. Plus, we could end up right back in the same boat every time MS puts out a new major compiler release.
Of all these options, I'm leaning towards option 1 *IF* I can get my hands on a 64 bit Windows box to test on.