7 ms·
Ruby 2.3.3 released
- Exuma 10y agoRandom question, how is a regression like a 'no method error' possible? Don't the creators of these languages write extremely exhaustive tests? I don't know much about this, just wondering...
- igravious 10y agoLooks to be a corner case not covered by existing tests prior to now. “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-released/ https://www.ruby-lang.org/en/news/2016/11/15/ruby-2-3-2-rele... [Bug #12920] https://bugs.ruby-lang.org/issues/12920 https://bugs.ruby-lang.org/issues/12920
- chrisseaton 10y agoIt isn't possible to write exhaustive tests - there are an infinite number of possible program states. Well, finite bound by the width of your pointer type, which doesn't help much.
- threatofrain 10y agoCan't some programs be proven to be partially or totally correct?
- chrisseaton 10y agoUsing formal methods? Yes but as an industry we simply don't know how to scale that to something as large and unwieldy as the Ruby VM. 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.
- dkubb 10y agoThere is rubyspec, but it doesn't cover all possible paths, just the ones that the developers deemed important enough to test. 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.
- chrisseaton 10y ago> Do they run tests against the top 100, 1000, etc rubygems before releasing? 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.
- dkubb 10y agoIf I might make a suggestion, I'd recommend doing some kind of tracing when you run the tests so you can have a mapping of what parts of your code are exercised by which gems/tests. Then when you make changes to your code you can run the tests that relate to that part of the system first, thus giving you more confidence that your change didn't cause a regression. This should be much more efficient than simply doing a full gem run (although I'd recommend that too, since it could uncover hidden dependencies).
- riffraff 10y agoruby has always had its own set of tests, rubyspec is a very recent development.
- Someone 10y agoVery recent? 2006, according to Wikipedia (https://en.wikipedia.org/wiki/RubySpec https://en.wikipedia.org/wiki/RubySpec). That makes it about half the age of ruby. Worse, Wikipedia claims "The RubySpec project was discontinued at the end of 2014 due to a lack of uptake from mainstream ruby developers"
- greenail 10y agoIs ruby dead? I would have expected more comments...
- mhd 10y agoFor a patch release?
- xutopia 10y agoIt's just a patch release including a fix for a minor edge case.
- base 10y agoThere was the 2.3.2 release 6 days ago. There is not much to say about this release.
- mbreedlove 10y agoThe release consists of only 6 commits, 3 of which are merges, 1 is tagging the version, 1 is updating the version.h header. There's only one actual change, https://github.com/ruby/ruby/commit/a5d754acb8cfd6d3ac9f26b17ef27ca588420e38 https://github.com/ruby/ruby/commit/a5d754acb8cfd6d3ac9f26b1... Source: https://github.com/ruby/ruby/compare/v2_3_2...v2_3_3#diff-02f0b547c2779d25cff89672135f20e3 https://github.com/ruby/ruby/compare/v2_3_2...v2_3_3#diff-02...
- smnplk 10y agoWhat is the frequency of new ruby job posts these days, few and far between ?