I'm having a 2 day 50% off on Ruby 1.9 Walkthrough to celebrate: http://www.rubyinside.com/19walkthrough/ .. Yes, totally a plug, but there isn't any more up to date walkthrough of 1.9 (which includes 1.9.3) so I'll take my chances ;-)
> Also the license of Ruby has changed. Previously Ruby has been released
under GPLv2 and "Ruby" license. But Ruby 1.9.3 is released under a joint
2-clause BSD license and "Ruby" license.
in case any of you are using rvm, "rvm get head" should update the rvm from the git repository and then you can install ruby the usual way ("rvm install 1.9.3")
Maybe there was something wrong with my 1.9.2, but when working with rails projects (rake, rails console etc), this feels a few orders of magnitude faster.
Thanks, I knew about that when it came out, but before I was able to install it, the preview of 1.9.3 came out - which is when I first noticed just how much faster it was.
After running a few tests on the commandline, rake and rails commands are even faster than they were in RC1.
1.9.3 is not an unstable release. Ruby uses the third version number to represent a point release, i.e. you can expect 1.9.3 to be more stable than 1.9.2 over time.
I think that the versioning policy did work the way you describe it at one point, but it's no longer the case.
Actually, Ruby used to follows the "unstable odd, stable even" versioning scheme but they seems to quit doing that since 1.9.1 (since both 1.9.1 and 1.9.2 are declared stable[1])
Ruby 1.9.3-rc1 (and presumably -p0) fixed all manner of memory leak issues I was experiencing in Rails apps (Ruby 1.9.2-p290 + Rails 3.1 + Passenger 3.0.9 + Nginx). This was on top of the loading slowness of Ruby 1.9.2 with Rails.
Went from leaking MBs per request to no leakage for days.
I'm a little unclear about threads in ruby 1.9. I've been told in the past that threads in ruby were problematic. Can anyone illuminate the current state of affairs?
In both Ruby 1.8 and 1.9, Ruby code will not cause all threads to block when the CPU is idle. However, poorly coded C libraries that blocked on IO without providing Ruby a file descriptor (via rb_thread_select) could cause all threads to block.
Those libraries have largely been fixed or replaced (e.g. mysql with mysql2). Ruby 1.9.2 also provides a mechanism for C code to release the GIL if it does not involve any Ruby code, which is used Blythe typecasting code in mysql2, for instance.
ok... replying to myself here... I think if you're using rb_thread_select the answer may be... use select(2) in an rb_thread_blocking_region callback... still not convinced this is better...
Now, plug alert..
I'm having a 2 day 50% off on Ruby 1.9 Walkthrough to celebrate: http://www.rubyinside.com/19walkthrough/ .. Yes, totally a plug, but there isn't any more up to date walkthrough of 1.9 (which includes 1.9.3) so I'll take my chances ;-)