I recently upgraded my ruby, and I chose version 1.8.6. I read a thread about how 1.8.7 is incompatible the previous 1.8. line, which is going to cause nightmares with package maintainers who don't know that. It has something to do with the version number not indicating so many changes. After reading that thread, it was either 1.8.6 or 1.9 for me, and I went with 1.8.6. I don't ever intend to install 1.8.7.
I think we have to be careful not to spread FUD about 1.8.7
incompatibilities, though.
The most useful thread for me on this subject has been last
February's "Re: If you are unhappy with the direction of
Ruby 1.8.7+, respond".
Particularly interesting was when folks were challenged to
identify specific cases where 1.8.7 truly broke compatibility
with 1.8.6 programs. The silence was deafening.
Here is the summary by Pit Capitain of how that ended up:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/328269
Could anyone summarize compatibility issues which really exist
now?
The only things I remember from this long discussion are:
* The new String#chars clashed with a method of Rails
with the same name
* It is not allowed anymore to create new objects during
garbage collection (the SWIG problem)
Both are at least questionable to being categorized as breaking
backwards compatibility and seem to have been fixed. Everything else
that had been said here and in other threads had to be withdrawn.
If that is the case, then it seems apparent we should be very
careful what we mean when we talk about 1.8.7 being
incompatible.
My understanding is that because 1.8.7 incorporates some 1.9.x
features, it *allows* us to write code which runs in 1.8.7 but which
will not run in 1.8.6. And yes, not everyone is happy with that.
(Including developers of alternate ruby implementations, who
would be looking at more work to maintain separate 1.8.6, 1.8.7, and 1.9.x interpreters.)
But that is different from 1.8.7 breaking 1.8.6 programs. Which
it apparently doesn't.
Regards,
Bill
···
From: "7stud --" <bbxx789_05ss@yahoo.com>
On Sun, 15 Feb 2009, Pit Capitain wrote:
2009/2/15 Nobuyoshi Nakada <nobu@ruby-lang.org>: