[#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:28337] Re: Is Math module a wrapper of libm?

From: Kenta Murata <muraken@...>
Date: 2010-02-25 14:14:50 UTC
List: ruby-core #28337
Hi,

I've written a patch for rubyspec.


diff --git a/core/math/gamma_spec.rb b/core/math/gamma_spec.rb
index 4215075..4b291d3 100644
--- a/core/math/gamma_spec.rb
+++ b/core/math/gamma_spec.rb
@@ -33,23 +33,39 @@ ruby_version_is "1.9" do
     it "returns good numerical approximation for gamma(-0.00001)" do
       Math.gamma(-0.00001).should be_close(-100000.577225, TOLERANCE)
     end
-   =20
-    it "raises Domain Error given -1" do
-      lambda { Math.gamma(-1) }.should raise_error(Errno::EDOM)
+
+    ruby_version_is ""..."1.9" do
+      it "raises Domain Error given -1" do
+        lambda { Math.gamma(-1) }.should raise_error(Errno::EDOM)
+      end
     end
-   =20
+
+    ruby_version_is "1.9" do
+      it "raises Math::DomainError given -1" do
+        lambda { Math.gamma(-1) }.should raise_error(Math::DomainError)
+      end
+    end
+
     # See http://redmine.ruby-lang.org/issues/show/2189
     it "returns +infinity given +infinity" do
       Math.gamma(infinity_value).infinite?.should =3D=3D 1
     end
-   =20
-    it "raises Domain Error given negative infinity" do
-      lambda { Math.gamma(-infinity_value) }.should =
raise_error(Errno::EDOM)
+
+    ruby_version_is ""..."1.9" do
+      it "raises Domain Error given negative infinity" do
+        lambda { Math.gamma(-infinity_value) }.should =
raise_error(Errno::EDOM)
+      end
     end
-   =20
+
+    ruby_version_is "1.9" do
+      it "raises Math::DomainError given negative infinity" do
+        lambda { Math.gamma(-infinity_value) }.should =
raise_error(Math::DomainError)
+      end
+    end
+
     it "returns NaN given NaN" do
       Math.gamma(nan_value).nan?.should be_true
     end
=20
   end
-end
\ No newline at end of file
+end
diff --git a/core/math/lgamma_spec.rb b/core/math/lgamma_spec.rb
index c3bc48e..1ea5bf4 100644
--- a/core/math/lgamma_spec.rb
+++ b/core/math/lgamma_spec.rb
@@ -34,8 +34,16 @@ ruby_version_is "1.9" do
       lg2[1].should =3D=3D 1
     end
=20
-    it "returns [Infinity, 1] when passed -Infinity" do
-      Math.lgamma(-infinity_value).should =3D=3D [infinity_value, 1]
+    ruby_version_is ""..."1.9" do
+      it "returns [Infinity, 1] when passed -Infinity" do
+        Math.lgamma(-infinity_value).should =3D=3D [infinity_value, 1]
+      end
+    end
+
+    ruby_version_is "1.9" do
+      it "raises Math::DomainError when passed -Infinity" do
+        lambda { Math.lgamma(-infinity_value) }.should =
raise_error(Math::DomainError)
+      end
     end
=20
     # Note: see related issue =
http://redmine.ruby-lang.org/issues/show/2189
@@ -50,15 +58,23 @@ ruby_version_is "1.9" do
     # Note: see related issue =
http://redmine.ruby-lang.org/issues/show/2189
     # If you would like to see simpler Ruby behavior, lobby for Ruby to
     # have platform-independent Math functions.
-    platform_is :darwin do
-      # JRuby has platform-independent math and behaves as above
-      not_compliant_on :jruby do
-        it "raises an Errno::EDOM when passed Infinity" do
-          lambda { Math.lgamma(infinity_value) }.should =
raise_error(Errno::EDOM)
+    ruby_version_is ""..."1.9" do
+      platform_is :darwin do
+        # JRuby has platform-independent math and behaves as above
+        not_compliant_on :jruby do
+          it "raises an Errno::EDOM when passed Infinity" do
+            lambda { Math.lgamma(infinity_value) }.should =
raise_error(Errno::EDOM)
+          end
         end
       end
     end
=20
+    ruby_version_is "1.9" do
+      it "returns [Infinity, 1] when passed Infinity" do
+        Math.lgamma(infinity_value).should =3D=3D [infinity_value, 1]
+      end
+    end
+
     it "returns [NaN, 1] when passed NaN" do
       Math.lgamma(nan_value)[0].nan?.should be_true
       Math.lgamma(nan_value)[1].should =3D=3D 1
diff --git a/library/mathn/math/shared/rsqrt.rb =
b/library/mathn/math/shared/rsqrt.rb
index ff12abf..3d1b424 100644
--- a/library/mathn/math/shared/rsqrt.rb
+++ b/library/mathn/math/shared/rsqrt.rb
@@ -13,9 +13,19 @@ describe :mathn_math_rsqrt, :shared =3D> true do
     @object.send(:rsqrt, 12.34).should =3D=3D Math.sqrt!(12.34)
   end
=20
-  it "raises an Errno::EDOM if the argument is a negative number" do
-    lambda { @object.send(:rsqrt, -1) }.should raise_error(Errno::EDOM)
-    lambda { @object.send(:rsqrt, -4.0) }.should =
raise_error(Errno::EDOM)
-    lambda { @object.send(:rsqrt, -16/64) }.should =
raise_error(Errno::EDOM)
+  ruby_version_is ""..."1.9" do
+    it "raises an Errno::EDOM if the argument is a negative number" do
+      lambda { @object.send(:rsqrt, -1) }.should =
raise_error(Errno::EDOM)
+      lambda { @object.send(:rsqrt, -4.0) }.should =
raise_error(Errno::EDOM)
+      lambda { @object.send(:rsqrt, -16/64) }.should =
raise_error(Errno::EDOM)
+    end
+  end
+
+  ruby_version_is "1.9" do
+    it "raises an Math::DomainError if the argument is a negative =
number" do
+      lambda { @object.send(:rsqrt, -1) }.should =
raise_error(Math::DomainError)
+      lambda { @object.send(:rsqrt, -4.0) }.should =
raise_error(Math::DomainError)
+      lambda { @object.send(:rsqrt, -16/64) }.should =
raise_error(Math::DomainError)
+    end
   end
 end
diff --git a/shared/math/atanh.rb b/shared/math/atanh.rb
index b520171..69341af 100644
--- a/shared/math/atanh.rb
+++ b/shared/math/atanh.rb
@@ -120,11 +120,23 @@ describe :math_atanh_private, :shared =3D> true do
 end
=20
 describe :math_atanh_no_complex, :shared =3D> true do
-  it "raises an Errno::EDOM for arguments greater than 1.0" do
-    lambda { @object.send(@method, 1.0 + Float::EPSILON)  }.should =
raise_error(Errno::EDOM)
+  ruby_version_is ""..."1.9" do
+    it "raises an Errno::EDOM for arguments greater than 1.0" do
+      lambda { @object.send(@method, 1.0 + Float::EPSILON)  }.should =
raise_error(Errno::EDOM)
+    end
+
+    it "raises an Errno::EDOM for arguments less than -1.0" do
+      lambda { @object.send(@method, -1.0 - Float::EPSILON) }.should =
raise_error(Errno::EDOM)
+    end
   end
=20
-  it "raises an Errno::EDOM for arguments less than -1.0" do
-    lambda { @object.send(@method, -1.0 - Float::EPSILON) }.should =
raise_error(Errno::EDOM)
+  ruby_version_is "1.9" do
+    it "raises an Math::DomainError for arguments greater than 1.0" do
+      lambda { @object.send(@method, 1.0 + Float::EPSILON)  }.should =
raise_error(Math::DomainError)
+    end
+
+    it "raises an Math::DomainError for arguments less than -1.0" do
+      lambda { @object.send(@method, -1.0 - Float::EPSILON) }.should =
raise_error(Math::DomainError)
+    end
   end
 end


--
Kenta Murata
OpenPGP FP =3D FA26 35D7 4F98 3498 0810 E0D5 F213 966F E9EB 0BCC

E-mail: mrkn@mrkn.jp
twitter: http://twitter.com/mrkn/
blog: http://d.hatena.ne.jp/mrkn/


In This Thread