[#39260] RubySpec vs CRuby's test/... — Marc-Andre Lafortune <ruby-core-mailing-list@...>

Before the release of Ruby 1.9.2 it was decided that Ruby releases

59 messages 2011/09/04
[#39276] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/05

2011/9/5 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:

[#39325] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/07

I'll jump in with some context from the JRuby perspective.

[#39335] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/07

2011/9/7 Charles Oliver Nutter <headius@headius.com>:

[#39365] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Wed, Sep 7, 2011 at 4:17 AM, NARUSE, Yui <naruse@airemix.jp> wrote:

[#39366] Re: RubySpec vs CRuby's test/... — Yukihiro Matsumoto <matz@...> 2011/09/08

Hi,

[#39370] Re: RubySpec vs CRuby's test/... — Michael Klishin <michael.s.klishin@...> 2011/09/08

Yukihiro Matsumoto:

[#39374] Re: RubySpec vs CRuby's test/... — "NARUSE, Yui" <naruse@...> 2011/09/08

(2011/09/09 1:29), Michael Klishin wrote:

[#39376] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 4:19 PM, NARUSE, Yui <naruse@airemix.jp> wrote:

[#39379] Re: RubySpec vs CRuby's test/... — Masaya TARUI <tarui@...> 2011/09/08

Hello Luis,

[#39382] Re: RubySpec vs CRuby's test/... — Luis Lavena <luislavena@...> 2011/09/08

On Thu, Sep 8, 2011 at 5:34 PM, Masaya TARUI <tarui@prx.jp> wrote:

[#39386] Re: RubySpec vs CRuby's test/... — Charles Oliver Nutter <headius@...> 2011/09/08

On Thu, Sep 8, 2011 at 3:57 PM, Luis Lavena <luislavena@gmail.com> wrote:

[#39267] [Ruby 1.9 - Bug #5273][Open] Float#round returns the wrong floats for higher precision — Marc-Andre Lafortune <ruby-core@...>

14 messages 2011/09/04

[#39435] [Ruby 1.9 - Bug #5306][Open] Application Hangs Due to Recent rb_thread_select Changes — Charlie Savage <cfis@...>

27 messages 2011/09/09

[#39498] [Ruby 1.9 - Feature #5310][Open] Integral objects — Kenta Murata <muraken@...>

13 messages 2011/09/13

[#39539] [Ruby 1.9 - Feature #5321][Open] Introducing Numeric#exact? and Numeric#inexact? — Kenta Murata <muraken@...>

26 messages 2011/09/14

[#39629] [Ruby 1.9 - Feature #5341][Open] Add SSL session reuse to Net::HTTP — Eric Hodel <drbrain@...7.net>

18 messages 2011/09/19

[#39634] [Ruby 1.9 - Bug #5343][Open] Unexpected blocking behavior when interrupt Socket#accept — Tomoyuki Chikanaga <nagachika00@...>

10 messages 2011/09/20

[#39673] [Ruby 1.9 - Bug #5353][Open] TLS v1.0 and less - Attack on CBC mode — Martin Bosslet <Martin.Bosslet@...>

13 messages 2011/09/22

[#39700] [Ruby 1.9 - Feature #5364][Open] How about new syntax: "object.\method" returns a Method instance? — Joey Zhou <yimutang@...>

20 messages 2011/09/25

[#39740] [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...>

18 messages 2011/09/27
[#39743] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Aaron Patterson <aaron@...> 2011/09/27

On Tue, Sep 27, 2011 at 06:18:19PM +0900, Alex Young wrote:

[#39754] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...> 2011/09/27

On 27/09/2011 19:46, Aaron Patterson wrote:

[#39807] Re: [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Eric Hodel <drbrain@...7.net> 2011/10/01

On Sep 27, 2011, at 6:52 PM, Alex Young wrote:

[#39751] [Ruby 1.9 - Bug #5375][Open] [mingw32] segfault on WinXP SP3 with 1.9.3dev@33347 — Jon Forums <redmine@...>

26 messages 2011/09/27

[#39772] ObjectSpace.reference_form(obj) #=> references_array — SASADA Koichi <ko1@...>

Hi,

13 messages 2011/09/29
[#39774] Re: ObjectSpace.reference_form(obj) #=> references_array — Nobuyoshi Nakada <nobu@...> 2011/09/29

Hi,

[#39796] [Ruby 1.9 - Bug #5384][Open] Ruby 1.9.3-RC1 Fails to Compile on Solaris — Cyrus Lopez <cyrus@...>

11 messages 2011/09/30

[ruby-core:39566] [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number

From: Marc-Andre Lafortune <ruby-core@...>
Date: 2011-09-15 17:14:32 UTC
List: ruby-core #39566
Issue #4576 has been updated by Marc-Andre Lafortune.

Category set to core
Target version set to 1.9.4

Hi,

In this long thread, I could not find a single argument against the (3-line) patch.

Does the patch cause a problem? No

Does the patch fix a platform inconsistency? Yes

The patch has been committed as r33282

The question that remains: there might be other issues like this one. Would compiling with "cflags=-ffloat-store" on affected platforms cause a significant performance loss?



Below are some comments on what has been said before:

On Sun, Apr 17, 2011 at 8:59 PM,  <redmine@ruby-lang.org> wrote:
> Fixed in r31286.

The commit message of r31304 said "avoid float error". The correct phrasing is "ignore float error". Changing a failing test for another one that doesn't show the problem is not fixing anything. It is playing the ostrich (and yes, I know ostriches don't actually bury their head in the sand).

On Tue, Sep 13, 2011 at 7:50 AM, Shyouhei Urabe <shyouhei@ruby-lang.org> wrote:
> It is a clear sign that you are "dancing with floats".
>
> As Tomoyoki Chikanaga says in note #note-2 of this issue I believe this is a "learn floating point number" kind of thig.

Yes, floats can be complicated. No I wouldn't recommend to anyone to play with tight limits with floats. But here, it is simply not acceptable that `(foo...bar).step(baz).to_a.last == bar`. On any platform. This is not a question of learning floating point number.


On Tue, Sep 13, 2011 at 9:13 AM, Shyouhei Urabe <shyouhei@ruby-lang.org> wrote:
> No.  Sorry.  Ruby is not designed like that.  Ruby's design is that it embraces the world we live, no matter it is ugly.  Ruby do not hide its ugliness from your eyes.

What makes you think this? This is simply not true. Math in Ruby aims to be as platform independent as is reasonable. For example see Matz in [ruby-core:28212].


On Tue, Sep 13, 2011 at 11:01 AM, Kenta Murata <muraken@gmail.com> wrote:
> you can use BigDecimal as following:

I understand this is meant to be helpful to the original poster, but the reasoning "if there is a problem with Float, let's use BigDecimal" is flawed. It does not improve Ruby, it does not address the problem. Float methods should be fixed (within the inherent limits of Floats). Otherwise where draw the limit? Would it be ok if `Float("3.0e-31").to_s == "3.0000000000000003e-31"`?


On Tue, Sep 13, 2011 at 11:19 AM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
> However, Test E still looks like "apparently wrong" on my i386:
>
>  $ ./miniruby -e 'p (1.0...128.4).step(18.2).to_a'
>  [1.0, 19.2, 37.4, 55.599999999999994, 73.8, 92.0,
> 110.19999999999999, 128.39999999999998]

Here we have to accept this result, due to rounding error with Floats. 7 * 18.2 + 1.0 == 128.39999999999998 < 128.4
This result holds accross all IEEE 194 platforms, etc...

----------------------------------------
Bug #4576: Range#step miss the last value, if end-exclusive and has float number
http://redmine.ruby-lang.org/issues/4576

Author: Joey Zhou
Status: Closed
Priority: Normal
Assignee: 
Category: core
Target version: 1.9.4
ruby -v: -


=begin
Hi, I find that:

* if: range.exclude_end? == true
* and: any one in [begin_obj, end_obj, step] is a true Float(f.to_i != f)
* and: unless begin_obj + step*int == end_obj
* then: the result will miss the last value.

for example:

 p (1...6.3).step.to_a # => [1.0, 2.0, 3.0, 4.0, 5.0], no 6.0
 p (1.1...6).step.to_a # => [1.1, 2.1, 3.1, 4.1], no 5.1
 p (1...6).step(1.1).to_a # => [1.0, 2.1, 3.2, 4.300000000000001], no 5.4

 p (1.0...6.6).step(1.9).to_a # => [1.0, 2.9], no 4.8
 p (1.0...6.7).step(1.9).to_a # => [1.0, 2.9, 4.8]
 p (1.0...6.8).step(1.9).to_a # => [1.0, 2.9, 4.8], no 6.7

Maybe the #step is ok on integers, but there's something wrong if the range is end-exclusive and contain float numbers.
=end



-- 
http://redmine.ruby-lang.org

In This Thread