From: "Martin J. Dürst" Date: 2011-01-22T20:33:50+09:00 Subject: [ruby-core:34785] Re: [Ruby 1.8-Feature#4239] Let's begin a talk for "1.8.8" -- How's needed for surviving 1.8? Hello Zeno, In a separate thread, you claim that Ruby is inconsistent because it did not include your favorite patch. But with regards to Regexp behavior, the inconsistency is just because of the patch you applied on your own, there is no inconsistency for somebody who just used Ruby. It was simply your decision to apply that patch, and it's your job to live with that, and I hope you can stop soon to blame the core Ruby people. In this thread, your issue is that your rely on a subtle behavior of an iterator when the underlying collection is changed while the iterator is running. Reasonably experienced programmers know that that's risky, unless the spec clearly says that this is guaranteed behavior (which I don't think it ever did). You (or somebody else, who wrote these gems) took that risk. Now you should just fix things up rather than again blame others. [Just for the record, I have taken that risk, because it feels great if it works, but I wouldn't dare to blame somebody if it stopped working, and I would think very carefully about using this kind of stuff in production code. I have also done other things, such as using some 1.9 feature in some code and later realizing that I had to deploy the code with Ruby 1.8, so I had to go back and fix it. Again, I knew that was my mistake and didn't blame others.] Regards, Martin. On 2011/01/21 18:46, Zeno Davatz wrote: > Issue #4239 has been updated by Zeno Davatz. > > > Dear Yui-san > > Please correct me if I am wrong but in > > http://redmine.ruby-lang.org/issues/show/1535 > > Yusuke Endoh says that > > But I agree with Run Paint Run Run's opinion. It may lead to difficult bug to indeterminately fail to add a new key. > > but that is not at all proven by Run Paint Run Run case. Then Matz goes ahead and flags that unproven claim as ok and Ruby 1.9.2 is pachted and more inconsistency is created, based on some bug that "!may!" happen in the future. > > Our case of http://redmine.ruby-lang.org/wiki/ruby-19/%23Hash_Iteration is a very simple practical Live-Software Hash iteration Case that works in Ruby 1.8.6, 1.9.1 and then breaks in 1.9.2 because of some theoretical "may". > > In my opinion this is not practical thinking it is theoretical thinking based on ifs and whens. > > I would recommend you should at least have one practical Use-Case (running live Software or gem) that shows that his/her application(s) becomes broken before you do changes based on some "maybe". > > And the moment your "maybes" break existing software and that is wrong. That is not good. That is not consistent. > > Best > Zeno > ---------------------------------------- > http://redmine.ruby-lang.org/issues/show/4239 > > ---------------------------------------- > http://redmine.ruby-lang.org > > -- #-# Martin J. D��rst, Professor, Aoyama Gakuin University #-# http://www.sw.it.aoyama.ac.jp mailto:duerst@it.aoyama.ac.jp