From: Bill Kelly Date: 2009-05-05T08:36:11+09:00 Subject: Re: Should I upgrade Ruby from 1.8.5 to 1.8.7? From: "7stud --" > > 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 On Sun, 15 Feb 2009, Pit Capitain wrote: > 2009/2/15 Nobuyoshi Nakada : > >> 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