ruby-changes:42774
From: akr <ko1@a...>
Date: Sat, 30 Apr 2016 19:57:51 +0900 (JST)
Subject: [ruby-changes:42774] akr:r54848 (trunk): Define Integer#* instead of Bignum#*.
akr 2016-04-30 20:54:26 +0900 (Sat, 30 Apr 2016) New Revision: 54848 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=54848 Log: Define Integer#* instead of Bignum#*. * numeric.c (rb_int_mul): Define Integer#*. * bignum.c (rb_big_mul): Don't define Bignum#*. Modified files: trunk/ChangeLog trunk/bignum.c trunk/numeric.c Index: ChangeLog =================================================================== --- ChangeLog (revision 54847) +++ ChangeLog (revision 54848) @@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Sat Apr 30 20:53:33 2016 Tanaka Akira <akr@f...> + + * numeric.c (rb_int_mul): Define Integer#*. + + * bignum.c (rb_big_mul): Don't define Bignum#*. + Sat Apr 30 20:30:44 2016 Tanaka Akira <akr@f...> * numeric.c (rb_int_modulo): Define Integer#%. Index: bignum.c =================================================================== --- bignum.c (revision 54847) +++ bignum.c (revision 54848) @@ -5897,13 +5897,6 @@ bigmul0(VALUE x, VALUE y) https://github.com/ruby/ruby/blob/trunk/bignum.c#L5897 return z; } -/* - * call-seq: - * big * other -> Numeric - * - * Multiplies big and other, returning the result. - */ - VALUE rb_big_mul(VALUE x, VALUE y) { @@ -6844,7 +6837,6 @@ Init_Bignum(void) https://github.com/ruby/ruby/blob/trunk/bignum.c#L6837 rb_define_method(rb_cBignum, "coerce", rb_big_coerce, 1); rb_define_method(rb_cBignum, "+", rb_big_plus, 1); rb_define_method(rb_cBignum, "-", rb_big_minus, 1); - rb_define_method(rb_cBignum, "*", rb_big_mul, 1); rb_define_method(rb_cBignum, "/", rb_big_div, 1); rb_define_method(rb_cBignum, "===", rb_big_eq, 1); Index: numeric.c =================================================================== --- numeric.c (revision 54847) +++ numeric.c (revision 54848) @@ -3331,9 +3331,10 @@ rb_int_minus(VALUE x, VALUE y) https://github.com/ruby/ruby/blob/trunk/numeric.c#L3331 #define FIT_SQRT_LONG(n) (((n)<SQRT_LONG_MAX)&&((n)>=-SQRT_LONG_MAX)) /* + * Document-method: Integer#* * Document-method: Fixnum#* * call-seq: - * fix * numeric -> numeric_result + * int * numeric -> numeric_result * * Performs multiplication: the class of the resulting object depends on the * class of +numeric+ and on the magnitude of the result. It may return a @@ -4940,6 +4941,7 @@ Init_Numeric(void) https://github.com/ruby/ruby/blob/trunk/numeric.c#L4941 rb_define_method(rb_cFixnum, "+", fix_plus, 1); rb_define_method(rb_cFixnum, "-", fix_minus, 1); rb_define_method(rb_cFixnum, "*", fix_mul, 1); + rb_define_method(rb_cInteger, "*", rb_int_mul, 1); rb_define_method(rb_cFixnum, "/", fix_div, 1); rb_define_method(rb_cInteger, "div", rb_int_idiv, 1); rb_define_method(rb_cFixnum, "%", fix_mod, 1); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/