ATTN: IronRuby 0.5


#1

I’m pleased to announce a new release of IronRuby: IronRuby 0.5!

Download IronRuby 0.5:

You can also check out the source code for this release:
http://github.com/ironruby/ironruby/tree/v0.5.0

Staying true to our “Conference-driven development schedule,” this
release is in conjunction with RailsConf '09, where IronRuby was
demonstrated running real Rails applications and deploying them on IIS.
A ton of work has been done in this release to get real Ruby programs
running well, like RubyGems, Rake, Sinatra, and Rails.

Read more about IronRuby at RailsConf:
http://blog.jimmy.schementi.com/2009/05/ironruby-at-railsconf-2009.html

Special thanks to Daniele A., Jirapong Nanta, and Ray Vernagus,
who contributed code during this release, and everyone else who has
submitted bugs, updated the wikis, or built software on-top of IronRuby.

What’s in the Release?

A big language feature of this past release was adaptive compilation;
the ability to start-up quicker with a fast interpreter, and then
compile code that gets interpreted more than two times. This brought
Rails startup time down from 89 seconds to 34 seconds, giving Rails
approximately 2.5x quicker startup. Since this compiles “hot” code, your
Rails application will get faster after an initial set of requests.
There is a lot more to do for performance, but this was a great
accomplishment.

Here are some more interesting changes:

  • Removes ClrString. CLR strings are referred to as System::String
  • Removes IronRuby library. “require ‘IronRuby’” is no longer needed;
    IronRuby module is now a built-in module.
  • Integer/Float operations for all CLR primitive numeric types
  • System::Char and System::String methods so that they behave like an
    immutable UTF-8 encoded string
  • Improves handling of BOM in 1.8 mode
  • Debugger visualizer for RubyObject so that VS will display the result
    of to_s in the Watch window.
  • Adds support for .NET operators (op_* special methods)
  • Implements bitwise operators on flag enums
  • Precompilation of simple Ruby method invocations
  • Improves performance for file IO#read method. Previously we were 10x
    slower than MRI, now we are approx. 1.5-times faster.
  • Tons of fixes to File, String, Array, and other built-in types to
    drive up RubySpec and Ruby application test-suite pass-rates.

Note: Silverlight binaries have not been included in this release; they
will be added back in a very-near point release.

For detailed information, please see the CHANGELOG (which is much more
verbose now. including all commit messages for the release … not just
syncing to head of tfs):
http://rubyforge.org/frs/shownotes.php?release_id=34684

Bugs closed:
375 “ir script\server” causes a YAML parser error
461 Generic type conversion from Fixnum to Integer
467 “igem install rails” fails
499 Pathname#cleanpath messes up the pathname
545 FILE doesn’t return a canonicalized path
578 yield fails in eval’d code
605 Array#hash should properly handle recursive arrays
614 ci_files set needed in mspec config
674 autoload does not use File::SEPARATOR
1021 Time class instance
… and various old RubyForge bugs during the move to CodePlex

Please test out IronRuby 0.5 and let us know if you have any issues.
Enjoy!