[Ironruby-core] ATTN: IronRuby 0.5

Jimmy Schementi Jimmy.Schementi at microsoft.com
Wed May 20 22:33:56 EDT 2009


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

Download IronRuby 0.5:
http://ironruby.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25902#DownloadId=68919

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 Alessandri, 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!


More information about the Ironruby-core mailing list