I’m pleased to announce a new release of IronRuby: IronRuby 0.5!
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.
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)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
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.