Ruby 2.3.3 released(ruby-lang.org) |
Ruby 2.3.3 released(ruby-lang.org) |
“This release contains a bug fix about Refinements and Module#prepend. The mixture use of Module#refine and Module#prepend to the same Class could cause unexpected NoMethodError. This is a regression on Ruby 2.3.2 released last week. See [Bug #12920] for details.”
Presumably it was discovered in the wild, fixed, test cases written, and that fix was pushed. Time taken: 6 days. https://www.ruby-lang.org/en/news/2016/11/15/ruby-2-3-2-rele...
[Bug #12920] https://bugs.ruby-lang.org/issues/12920
Well, finite bound by the width of your pointer type, which doesn't help much.
What I am curious to know is _what_ does ruby use besides rubyspec? Do they run tests against the top 100, 1000, etc rubygems before releasing? I know other communities like Rust (and even Perl) do this kind of regression testing. While this won't catch all possible regressions it seems like a reasonable starting point to uncover issues before a release.
This might have changed in the meantime, dunno.
https://github.com/rubinius/rubinius-archive/blob/cf54187d42...
I don't believe they do. They only recently started testing against ruby spec.
I work on an alternative implementation, and we are planning to test against literally all the gems in RubyGems ourselves. We test the top 100 or so at the moment.
There's only one actual change, https://github.com/ruby/ruby/commit/a5d754acb8cfd6d3ac9f26b1...
Source: https://github.com/ruby/ruby/compare/v2_3_2...v2_3_3#diff-02...
And even if we did, correct according to what? There is no mathematical model of the Ruby language to prove it equivalent to (there are a few semantic models for Ruby but they are very limited).
And even if we had that, the computational resources needed likely are not available.
Specs have been part of ruby core for quite a while now, thanks to the efforts of other members of the community.
It still doesn't cover everything, but it's used and contributed to by multiple implementations, and looks healthy https://github.com/ruby/spec/graphs/contributors
Worse, Wikipedia claims
"The RubySpec project was discontinued at the end of 2014 due to a lack of uptake from mainstream ruby developers"
The project has been revived and adopted officially by MRI only in 2015. http://eregon.github.io/rubyspec/2015/07/29/rubyspec-is-rebo...