[#28015] RCR: RUBY_VERSION_INT — Roger Pack <rogerdpack2@...>

Situation:

14 messages 2010/02/02

[#28113] [Bug #2723] $: length affects re-require time of already loaded files — Greg Hazel <redmine@...>

Bug #2723: $: length affects re-require time of already loaded files

16 messages 2010/02/08

[#28151] [Bug #2739] ruby 1.8.7 built with pthreads hangs under some circumstances — Joel Ebel <redmine@...>

Bug #2739: ruby 1.8.7 built with pthreads hangs under some circumstances

31 messages 2010/02/11

[#28188] [Bug #2750] build fails on win32/MinGW: "executable host ruby is required." even when --with-baseruby is used — Christian Bodt <redmine@...>

Bug #2750: build fails on win32/MinGW: "executable host ruby is required." even when --with-baseruby is used

9 messages 2010/02/16

[#28206] Is Math module a wrapper of libm? — Yusuke ENDOH <mame@...>

Hi matz --

23 messages 2010/02/18
[#28212] Re: Is Math module a wrapper of libm? — Yukihiro Matsumoto <matz@...> 2010/02/18

Hi,

[#28219] Re: Is Math module a wrapper of libm? — Yusuke ENDOH <mame@...> 2010/02/18

Hi,

[#28225] Re: Is Math module a wrapper of libm? — Marc-Andre Lafortune <ruby-core-mailing-list@...> 2010/02/18

Hi,

[#28233] Re: Is Math module a wrapper of libm? — Kenta Murata <muraken@...> 2010/02/18

Hi,

[#28265] Re: Is Math module a wrapper of libm? — Marc-Andre Lafortune <ruby-core-mailing-list@...> 2010/02/20

Hi,

[#28286] Re: Is Math module a wrapper of libm? — Kenta Murata <muraken@...> 2010/02/21

Hi

[#28291] Re: Is Math module a wrapper of libm? — Marc-Andre Lafortune <ruby-core-mailing-list@...> 2010/02/22

Hi!

[#28235] [Feature #2759] Regexp /g and /G options — Michael Fellinger <redmine@...>

Feature #2759: Regexp /g and /G options

35 messages 2010/02/18

[#28329] [ANN] Ruby 1.9.2dev has passed RubySpec! — Yusuke ENDOH <mame@...>

Hi,

12 messages 2010/02/24

[#28355] [ANN] Toward rich diversity of Ruby development. — Urabe Shyouhei <shyouhei@...>

A short announcement: thanks to some helps of GitHub people, I now have

12 messages 2010/02/27

[#28365] Indentifying key MRI-on-Windows issues — Jon <jon.forums@...>

In an effort to begin summarizing key MRI-on-Windows open issues I'm starting this thread in hopes that those interested will respond with details on the key MRI issues they feel need resolution for Windows users.

11 messages 2010/02/27
[#28690] Re: Indentifying key MRI-on-Windows issues — Roger Pack <rogerdpack2@...> 2010/03/16

> My key concern is http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-=

[ruby-core:28204] [Bug #2756] Issues with Math and Complex behavior on 1.9

From: Brian Ford <redmine@...>
Date: 2010-02-17 19:10:09 UTC
List: ruby-core #28204
Bug #2756: Issues with Math and Complex behavior on 1.9
http://redmine.ruby-lang.org/issues/show/2756

Author: Brian Ford
Status: Open, Priority: Normal
Target version: 1.9.2
ruby -v: ruby 1.9.2dev (2010-02-18 trunk 26704) [i386-darwin9.8.0]

This ticket aggregates several issues with Math methods on 1.9. There are related tickets that either have not yet or do not, in my opinion, resolve these issues in a satisfactory manner. (see http://redmine.ruby-lang.org/issues/show/1708, and related to the behavior of Math http://redmine.ruby-lang.org/issues/show/2189 and to 1.8 behavior http://redmine.ruby-lang.org/issues/show/2754)

1. There are behaviors that are inconsistent with 1.8

# On 1.8, the argument is coerced
$ ruby1.8.7 -v -e 'o = Object.new; def o.to_f; 0.5; end; p Math.atanh(o)'ruby 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin9.8.0]
0.549306144334055

# On 1.9, the argement is not coerced
$ ruby1.9 -v -e 'o = Object.new; def o.to_f; 0.5; end; p Math.atanh(o)'
ruby 1.9.2dev (2010-02-18 trunk 26704) [i386-darwin9.8.0]
-e:1:in `atanh': can't convert Object into Float (TypeError)
        from -e:1:in `<main>'

Q. Should 1.9 coerce arguments to Math methods?

# On 1.8, an ArgmentError is raised
$ ruby1.8.7 -v -e 'p Math.atanh("str")'
ruby 1.8.7 (2009-12-24 patchlevel 248) [i686-darwin9.8.0]
-e:1:in `atanh': invalid value for Float(): "str" (ArgumentError)
        from -e:1

# On 1.9, a TypeError is raised
$ ruby1.9 -v -e 'p Math.atanh("str")'
ruby 1.9.2dev (2010-02-18 trunk 26704) [i386-darwin9.8.0]
-e:1:in `atanh': can't convert String into Float (TypeError)
        from -e:1:in `<main>'

Q. In this case, TypeError would appear more correct, so can the 1.8.7 behavior be changed? Also note that changing the 1.8.7 behavior would make it consistent with the behavior of atanh when requiring Complex (see http://redmine.ruby-lang.org/issues/show/2754)

2. There are behaviors that are inconsistent when requiring lib/complex.rb

# The original method raise a TypeError
$ ruby1.9 -v -e 'p Math.atanh(nil)'
ruby 1.9.2dev (2010-02-18 trunk 26704) [i386-darwin9.8.0]
-e:1:in `atanh': can't convert nil into Float (TypeError)
        from -e:1:in `<main>'

# The new method attempts an undefined operation and consequently raises a NoMethodError
$ ruby1.9 -v -rcomplex -e 'p Math.atanh(nil)'
ruby 1.9.2dev (2010-02-18 trunk 26704) [i386-darwin9.8.0]
lib/complex.rb is deprecated
/Users/brian/devel/ruby19/install/lib/ruby/1.9.1/cmath.rb:196:in `atanh': undefined method `real?' for nil:NilClass (NoMethodError)
        from -e:1:in `<main>'

The same behavior is observed when passing a String.

Q. Should the behavior of atanh after requiring lib/complex.rb be the same for non-Complex inputs as before?

Also, requiring lib/complex.rb on 1.9 causes a warning: "lib/complex.rb is deprecated". But this is not entirely true. As best as I can understand from http://redmine.ruby-lang.org/issues/show/1708, it was never decided whether complex.rb should require cmath.rb. It appears that there are some behaviors acquired via lib/complex.rb that are not deprecated. In that case, this warning is confusing and misleading.

Q. Is lib/complex.rb deprecated or not? If it is, why is it deprecated and not removed? 1.9 already removes many libraries. Why is this one special and allowed to cause such confusion?

Q. Is there a definitive document that explains the policy and behavior of Math and Complex in 1.9?


To summarize the questions in this ticket?

Q. Should 1.9 coerce arguments to Math methods?
Q. Can we change the 1.8.7 behavior when raising exceptions to be both internally consistent and consistent with the behavior of 1.9 (Note that numerous changes to the exception raised have already been made in 1.8.5 -> 1.8.6 -> 1.8.7, so this request is not without precedent.) (see http://redmine.ruby-lang.org/issues/show/2754)
Q. Should the behavior of atanh after requiring lib/complex.rb be the same for non-Complex inputs as before?
Q. Is lib/complex.rb deprecated or not? If it is, *why* is it deprecated and not removed?
Q. Is there a definitive document that explains the policy and behavior of Math and Complex in 1.9?

Thanks,
Brian


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

In This Thread

Prev Next