Reasoning for not supporting ruby 1.8.6 in Rails 3.0

This comment example is invalid ERB, and is relatively clearly documented as such. You can't reasonably expect language providers to support behavior that they've explicitly declared as invalid, and you can't reasonably expect framework providers to stick with a language version because you've chosen to depend on a particular incarnation of undefined behavior. This is directly akin to depending on the order of the contents of a hash, or referencing values in freed memory. There are reasonable reasons to want Rails 3.0 to work on Ruby 1.8.6, but this isn't one of them.

Incidentally, the behavior in at least some versions of 1.8.6 is consistent with 1.8.7.

Hear, hear!


I'm not arguing that we stick with 1.8.6 for Rails 3.0, I'm pointing out that there's an upgrade issue that people need to be aware of, which is what Yehuda was asking for. Kindly re-read my post.

But since you mention it, I can expect them to at least give an error, rather than silently losing code. Language providers do not necessarily have the burden of making everything that used to work continue to work (although some have chosen to do so), but they are generally expected to change things in a way that lets people at least notice the problems promptly.

Perhaps this could be changed in 1.8.6 itself. Issue a warning if the tag contains a comment.

In 1.8.7, raise an error.


MySQL gem 2.8.1 supports Ruby 1.9.