[前][次][番号順一覧][スレッド一覧]

ruby-changes:14135

From: yugui <ko1@a...>
Date: Fri, 27 Nov 2009 11:55:35 +0900 (JST)
Subject: [ruby-changes:14135] Ruby:r25949 (ruby_1_9_1): merges r25067 from trunk into ruby_1_9_1 and added a test for it.

yugui	2009-11-27 11:55:16 +0900 (Fri, 27 Nov 2009)

  New Revision: 25949

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25949

  Log:
    merges r25067 from trunk into ruby_1_9_1 and added a test for it.
    --
    * lib/mathn.rb (Bignum#**): Fixed bignum**fixnum that was broken when requiring lib/mathn
      [ruby-core:25740]
    --
    * test/test_mathn.rb (TestMathn): new test case.

  Added files:
    branches/ruby_1_9_1/test/test_mathn.rb
  Modified files:
    branches/ruby_1_9_1/ChangeLog
    branches/ruby_1_9_1/lib/mathn.rb
    branches/ruby_1_9_1/lib/rational.rb
    branches/ruby_1_9_1/test/ruby/test_complex.rb
    branches/ruby_1_9_1/test/ruby/test_rational.rb
    branches/ruby_1_9_1/version.h

Index: ruby_1_9_1/ChangeLog
===================================================================
--- ruby_1_9_1/ChangeLog	(revision 25948)
+++ ruby_1_9_1/ChangeLog	(revision 25949)
@@ -1,3 +1,9 @@
+Thu Sep 24 09:41:42 2009  Marc-Andre Lafortune  <ruby-core@m...>
+
+	* lib/mathn.rb (Bignum#**): Fixed bignum**fixnum that was broken when
+	  requiring lib/mathn
+	  [ruby-core:25740]
+
 Tue Sep 22 05:04:08 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* ext/bigdecimal/lib/bigdecimal/{ludcmp,math}.rb: depend on
Index: ruby_1_9_1/lib/rational.rb
===================================================================
--- ruby_1_9_1/lib/rational.rb	(revision 25948)
+++ ruby_1_9_1/lib/rational.rb	(revision 25949)
@@ -3,7 +3,7 @@
   alias quof fdiv
   alias rdiv quo
 
-  alias power! ** unless defined?(0.power!)
+  alias power! ** unless method_defined? :power!
   alias rpower **
 
 end
@@ -13,7 +13,7 @@
   alias quof fdiv
   alias rdiv quo
 
-  alias power! ** unless defined?(0.power!)
+  alias power! ** unless method_defined? :power!
   alias rpower **
 
 end
Index: ruby_1_9_1/lib/mathn.rb
===================================================================
--- ruby_1_9_1/lib/mathn.rb	(revision 25948)
+++ ruby_1_9_1/lib/mathn.rb	(revision 25949)
@@ -25,7 +25,7 @@
   remove_method :/
   alias / quo
 
-  alias power! ** unless defined?(0.power!)
+  alias power! ** unless method_defined? :power!
 
   def ** (other)
     if self < 0 && other.round != other
@@ -41,7 +41,7 @@
   remove_method :/
   alias / quo
 
-  alias power! ** unless defined?(0.power!)
+  alias power! ** unless method_defined? :power!
 
   def ** (other)
     if self < 0 && other.round != other
Index: ruby_1_9_1/version.h
===================================================================
--- ruby_1_9_1/version.h	(revision 25948)
+++ ruby_1_9_1/version.h	(revision 25949)
@@ -1,5 +1,5 @@
 #define RUBY_VERSION "1.9.1"
-#define RUBY_PATCHLEVEL 350
+#define RUBY_PATCHLEVEL 351
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 9
 #define RUBY_VERSION_TEENY 1
Index: ruby_1_9_1/test/ruby/test_complex.rb
===================================================================
--- ruby_1_9_1/test/ruby/test_complex.rb	(revision 25948)
+++ ruby_1_9_1/test/ruby/test_complex.rb	(revision 25949)
@@ -9,7 +9,8 @@
     if @rational
       @keiju = Rational.instance_variable_get('@RCS_ID')
     end
-    @unify = $".grep(/mathn/).size != 0
+    seps = [File::SEPARATOR, File::ALT_SEPARATOR].compact.map{|x| Regexp.escape(x)}.join("|")
+    @unify = $".grep(/(?:^|#{seps})mathn(?:\.(?:rb|so))?/).size != 0
   end
 
   def test_compsub
Index: ruby_1_9_1/test/ruby/test_rational.rb
===================================================================
--- ruby_1_9_1/test/ruby/test_rational.rb	(revision 25948)
+++ ruby_1_9_1/test/ruby/test_rational.rb	(revision 25949)
@@ -9,7 +9,8 @@
     if @complex
       @keiju = Complex.instance_variable_get('@RCS_ID')
     end
-    @unify = $".grep(/mathn/).size != 0
+    seps = [File::SEPARATOR, File::ALT_SEPARATOR].compact.map{|x| Regexp.escape(x)}.join("|")
+    @unify = $".grep(/(?:^|#{seps})mathn(?:\.(?:rb|so))?/).size != 0
   end
 
   def test_ratsub
Index: ruby_1_9_1/test/test_mathn.rb
===================================================================
--- ruby_1_9_1/test/test_mathn.rb	(revision 0)
+++ ruby_1_9_1/test/test_mathn.rb	(revision 25949)
@@ -0,0 +1,10 @@
+require 'test/unit'
+require_relative 'ruby/envutil'
+
+# mathn redefines too much. It must be isolated to child processes.
+class TestMathn < Test::Unit::TestCase
+  def test_power
+    assert_in_out_err ['-r', 'mathn', '-e', '1**2'], [], [], [], '[ruby-core:25740]'
+    assert_in_out_err ['-r', 'mathn', '-e', '(1<<126)**2'], [], [], [], '[ruby-core:25740]'
+  end
+end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]