The startup performance boost (reported previously), is based on the idea to put JRuby .jar files into the bootclasspath - loading classes from the bootclasspath than from the regular classpath is faster because the bytecode doesn't get verified.
Another Ruby runtime release is available in the stable Ruby 1.8.x branch of MRI. Ruby 1.8.7 preview 4 has been released. You can see a rough list of features and API added since 1.8.6 or the full Changelog for MRI.
A quick diff of the new features in Ruby 1.8.7 preview 4 and previous previews, shows some activity and some previously introduced features disappeared and changed again.
A big change is the re-appearance of
Symbol#to_proc
. The feature made it's first appearance in Ruby 1.9. Ruby 1.8.7 preview 1 included a backported version - which was quickly discovered to break software using their custom versions of Symbol#to_proc
, in particular Rails. This caused the feature to be pulled - and now it's back, after the behavior was changed to comply with the test suite. As it seems now, Symbol#to_proc
seems to be here to stay in Ruby 1.8.7.Here's a list of further API changes not mentioned previously:
- Binding#eval
- __method__ which returns the name of the current method as a Symbol
- String#bytesize returns the size of the string in bytes
- Object#instance_exec
- Date.parse was changed so that '##.##.##' is now interpreted as 'YY.MM.DD' instead of 'MM.DD.YY'.
- String#to_i, String#hex and String#oct changed the behavior for the underscore '_' character in number strings, eg
'1__0'.to_i
in Ruby 1.8.6 was turned into '10', but in Ruby 1.8.7 it is turned into '1'. See the release notes for a more complete overview.