On August 1, 2011, Ruby 1.9.3 preview 1 was released. The final version isn’t yet out (as of September 23) but Ruby 1.9.3 is going to be the next, full production-level release of MRI Ruby. But what’s the deal with 1.9.3 (and its successors, Ruby 1.9.4 and 2.0)? Keep reading!
The Summary
Ruby 1.9.3 is a relatively minor improvement on the Ruby 1.9.2 we already know and love. In short:
- a focus has been placed on performance with file loading, File and Pathname all significantly improved
- Ruby 1.9.2 mostly fixed down the language specification for 1.9; 1.9.3 is mostly work on a ‘better implementation’
- you can tune the garbage collector via environment variables (more on this in a post coming soon!)
- Ruby’s license changes from dual Ruby + GPLv2 to dual Ruby + 2-clause BSD
- improved GC performance with a lazy garbage collector
- a ‘better strategy’ for the GIL / GVL
- test/unit supports parallel testing
- Random.rand tweaks (and rand() now accepts ranges)
- io/console, a new library in the stdlib
- 4 new encodings (so far) – cp950, cp951, UTF-16, and UTF-32
- extra String methods
- a number of tweaks to formatting strings
- Module#private_constant and Module#public_constant
- a smattering of other bits and pieces, but this is the TLDR overview!