From: Caleb Tennis Date: 2005-12-07T20:52:20+09:00 Subject: Re: 1.8.4 and respond_to > > How broken? > Object initialization was done like this: if (rb_respond_to(result, rb_intern("initialize")) != 0) { rb_obj_call_init(result, argc, argv); } So, suddenly, objects in Ruby 1.8.4 weren't being initialized. >> So, I guess what I'm asking is if there's a good reason for >> altering this >> behavior between minor releases? It seems much more suited for >> breaking >> between a larger release, in my humble opinion. > > The reason was: > 1) it returned true even if a global method was matched, > 2) it didn't conform to the default behavior of Object#respond_to?. Right, I agree that it deserved to be fixed. I think, though, that there is some general expectation of people who are familiar with open source software that when a program goes from version X.Y.Z to X.Y.(Z+1) that it's "binary compatible" with other releases. This seems like too big of change of behavior. My opinion is that it would be better to change rb_respond_to back to the way it was previously, and add a warning about it being deprecated in favor of rb_obj_respond_to. Thanks, Caleb