Posted on Dec 31, 2008

Ruby 1.9.1 on Windows (from the trenches)

While I’m working in a new set build recipes for RubyInstaller, decided to give a whirl to latest RC1 of Ruby 1.9.1 (announced here)

This is completely unscientific test, and is on the same format than previous one

After building 1.9.1 with MinGW and ignoring at least 120 errors, failures, halts and cross compile issues (more to come on that subject), I decided to take the Ruby executable for a ride. Compared the sudoku-solver against other versions and used current One-Click version as reference:

Interpreter Average (secs.) Speedup
ruby 1.8.6 (2008-03-03 patchlevel 114) [i386-mswin32] 13.144 1 (ref)
ruby 1.8.6 (2008-03-03 patchlevel 114) [i386-mingw32] 9.188 1.43
ruby 1.9.1 (2008-12-30 patchlevel-0 revision 21203) [i386-mingw32] 2.319 5.67

I ran those tests in my laptop, since I don’t have access to my previous desktop computer (the one used for previous tests).

The raw numbers are here

Now, back to bed.

13 Comments

  • AkitaOnRails says:

    Hey Buddy, long time no see. It would be great to read your take on Ruby 1.9.1, how are you liking it so far? Happy New Year!

  • humanzz says:

    Hi there, will you please provide some detailed steps as how to get ruby 1.9 to work with the one click installer…in general, how do you set the ruby version 1.8.6 or 1.8.7 or 1.9 and so on?
    Thanks

  • Tom says:

    Hi dude,

    Any chance you will be ready to release 1.9.1 for windows soon after it’s release here in January?

  • Luis says:

    Hello Tom,

    I commented previously on several mailing list that there will not be a 1.9.1 release of One-Click installer using the current Installer mechanism.

    Is really hard do releases for the current 1.8.6 codebase and all the bundled extensions and plugins.

    1.9.1 needs more testing of the bundled components and that requires more han the one I have available for Open Source projects.

    We are working in a series of recipes that ease building of the interpreter and dependencies for both 1.8.6 and 1.9.1 with MinGW, not VC6.

    That breaks the compatibility with current VC6 gems and extensions, so we are working on ease the migration path.

    Don’t expect a release of this version until end of January, there are too many changes between 1.8.x and 1.9 that needs to be tracked for properly release something.

  • Thomas says:

    Hi Luis,

    Does this mean there will be a 1.9.1 windows release soon after, but without compatibility with existing gems? That would make sense to me at least, since a lot of them have to be rebuilt for 1.9 anyway?

    If not, have you considered releasing a barebones 1.9.1 compiled with mingw that only includes what the *nix version does, in addition to perhaps RubyGems itself, for those of us that are willing to deal with incompatible gems?

  • Tom says:

    Forgot to add: I’m talking about 1.9.1 final, scheduled for release on January 25th, not the RC1 or preview.

    Also, I think you’re doing a great job on it, just wish it’d be possible to get faster releases. :)

  • Luis says:

    The new One-Click build with MinGW is barebones (Ruby+RubyGems) as described here:

    http://rubyinstaller.rubyforge.org/wiki/wiki.pl?Roadmap

    Since takes ages manually verify all the bundled extensions, gems and others. That one of the reasons for the change.

    Other is the Compiler being available to remove the issues with Gems lacking binaries on Windows.

  • Luis says:

    We are targetting end of January for the MinGW installer. There are plenty of dependencies that still don’t work with GCC and we need to get working to start matching current version.

    1.9.1 and 1.8.6 are targetted with the new Installer. I’m working on a new recipe syntax that ease the building of several versions.

    If you’re interested, I recommend you subscribe to rubyinstaller-devel mailing list:

    http://rubyforge.org/mailman/listinfo/rubyinstaller-devel

    And start watching the GitHub repository:

    http://github.com/luislavena/rubyinstaller

    Regards.

  • Luis says:

    I forgot to add too ;)

    With current installer (the huge One-Click) is almost impossible get a faster release.

    I spent up to 10 hours on each release doing QA of all the components bundled, and even so, I miss some details.

    With the new format we have currently automated pretty much the whole process (besides being a slimmed down version of the installer).

  • Tom says:

    That is great news! Only bundling rubygems with ruby vanilla is the way to go in my opinion.

    One could always do a package of common components on the side, but with MinGW GCC being the new go to compiler, one would hope most gems will be compiled without issues; Maybe even cross compilation?

    I’ll make sure to watch the mailing list for further updates, but great job so far.

    Aside: I noticed in the 1.9.1 preview, zlib.dll was missing, meaning rubygems wouldn’t work.

  • Luis says:

    You said cross-compilation? rake-compiler for you:

    http://blog.mmediasys.com/2008/12/13/while-leaving-ny-rake-compiler-for-the-masses/

    http://github.com/luislavena/rake-compiler

    There are lot of things that you need to test on every release of Ruby, a missing zlib is just one ;)

  • roger says:

    Here’s the link to “building the Shoes ruby toolkit in win32 with MinGW” from the other related post–might be useful should others want to try this. http://www.holymonkey.com/building-shoes-in-windows