Commit graph

165 commits

Author SHA1 Message Date
nobu
52cd11a305 * bignum.c (rb_big2str0): prevent working clone from
GC. [exerb-dev:0578].  patched by MURASE Masamitsu
  <masamitsu.murase AT gmail.com> at [exerb-dev:0580]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@35325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-14 09:01:05 +00:00
knu
d040bf7593 Backport r23730; fixes #2462.
* numeric.c (flo_cmp): Infinity is greater than any bignum
  number.  [ruby-dev:38672]

* bignum.c (rb_big_cmp): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@32573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-17 08:53:08 +00:00
mrkn
c0ec23d127 * bignum.c (rb_big2dbl), test/ruby/test_bignum.rb (test_to_f): A negative Bignum out of Float range should be converted to -Infinity. [ruby-core:30492] [Bug #3362]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@28324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-15 01:47:19 +00:00
akr
53572f5721 * pack.c (pack_pack): call rb_quad_pack to preserve RangeError.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-11 13:56:34 +00:00
akr
c5d882495d * pack.c: backport integer pack/unpack from 1.9 for [ruby-core:21937].
* configure.in: backport RUBY_DEFINT and fixed size integer checks.

* ruby.h: include stdint.h if available.

* bignum.c (rb_big_pack): defined..
  (rb_big_unpack): defined.

* intern.h (rb_big_pack): declared.
  (rb_big_unpack): declared.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-10 20:53:33 +00:00
marcandre
ea1b7a9577 * time.c: rdoc fix for <=>
* array.c: ditto

* bignum.c: ditto

* compar.c: ditto

* file.c: ditto

* numeric.c: ditto

* string.c: rdoc fix for <=> and casecmp

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@25523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-28 05:01:29 +00:00
nobu
0f699af36e * bignum.c (big_lshift, big_rshift): return Bignum always without
normalization.  [ruby-dev:38680]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-18 23:14:27 +00:00
knu
e8b0f17319 * array.c (ary_resize_capa): Remove an unused function.
* array.c, bignum.c, dir.c, enumerator.c, gc.c, io.c, numeric.c,
  object.c, re.c, string.c, struct.c: Mixing two styles is not a
  good thing.  Stick with the K&R style in 1.8.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@23052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-23 12:07:23 +00:00
nobu
e2ec68e53a * bignum.c (rb_big2str0, bigsqr): made interruptible. [ruby-Bugs-20622]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-25 09:04:19 +00:00
nobu
27b8a31b4c * bignum.c (big2ulong, big2ull): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@18056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-13 20:09:09 +00:00
matz
9ee1ced6d9 * bignum.c (rb_big_div): Bignum#div should return integer for
floating number operand.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-01 11:33:27 +00:00
nobu
6b7054a006 * bignum.c (rb_cstr_to_inum): treat successive underscores as
nondigit.  [ruby-dev:34089]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 05:36:43 +00:00
nobu
e811e5e472 * bignum.c (big2str_find_n1): check integer overflow.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-29 17:35:11 +00:00
nobu
350e8342f9 * bignum.c (BIGZEROP): fix for longer Bignum zeros. [ruby-Bugs-17454]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-22 10:50:21 +00:00
nobu
a9a081793c * bignum.c (rb_big_lshift, rb_big_rshift, rb_big_aref): removed excess
arguments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-22 07:09:55 +00:00
tadf
48925716c4 * bignum.c (rb_cstr_to_inum): '0_2' is a valid representation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-30 13:07:45 +00:00
nobu
2bd1fa4ace * bignum.c (rb_cstr_to_inum): an underscore succeeding after octal
prefix is allowed.  [ruby-core:14139]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-19 01:52:31 +00:00
nobu
786a92feb0 * bignum.c (rb_cstr_to_inum): trailing spaces may exist at sqeezing
preceeding 0s.  [ruby-core:13873]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-04 02:23:52 +00:00
nobu
b76bf9f66f * bignum.c (rb_big2str0): do not clobber space for sign.
* sprintf.c (remove_sign_bits): extends sign bit first.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-28 00:51:44 +00:00
matz
415a9700fe * bignum.c (bigtrunc): RBIGNUM(x)->len may be zero. out of bound
access.  [ruby-dev:31404]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 13:45:37 +00:00
akr
ea4ddd4b18 * bignum.c (big_lshift): make shift offset long type.
(big_rshift): ditto.
  (rb_big_lshift): ditto.
  (big_rshift): ditto.
  [ruby-dev:31434]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 04:58:06 +00:00
nobu
95ddfca802 * bignum.c (rb_big_aref): check for Bignum index range.
[ruby-dev:31271]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-30 02:16:42 +00:00
nobu
9bf8a37572 * bignum.c (rb_big_lshift, rb_big_rshift): separated functions
to get rid of infinite recursion.  fixed calculation in edge
  cases.  [ruby-dev:31244]

* numeric.c (rb_fix_lshift, rb_fix_rshift): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-19 05:38:48 +00:00
nobu
f2dd1b158e * bignum.c (rb_big_pow): refine overflow check. [ruby-dev:31242]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-18 07:57:45 +00:00
nobu
7da059bddb * bignum.c (rb_big_pow): removed invariant variable. [ruby-dev:31236]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-15 15:26:12 +00:00
nobu
26b5fd1e7b * bignum.c (rb_big_neg): SIGNED_VALUE isn't in 1.8.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-15 15:00:00 +00:00
nobu
b47daf811a * bignum.c (get2comp): do nothing for empty Bignum. [ruby-dev:31225]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-15 12:07:46 +00:00
nobu
fa1bfaf741 * bignum.c (rb_cstr_to_inum): check leading non-digits.
[ruby-core:11691]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-15 10:05:37 +00:00
nobu
dcfd7ec4b6 * bignum.c (get2comp): do nothing for empty Bignum. [ruby-dev:31225]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-14 19:42:25 +00:00
nobu
ab1254448d * bignum.c: purged trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-09 03:49:18 +00:00
nobu
8624d6b3f6 * bignum.c (Init_Bignum), numeric.c (Init_Numeric): added fdiv as
aliases of quo.  [ruby-dev:30771]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-09 03:28:08 +00:00
nobu
8dcf078f72 * bignum.c (rb_big_quo): now calculate in integer. [ruby-dev:30753]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-09 02:54:14 +00:00
nobu
952e281a2a * bignum.c (rb_big_pow): reduce multiplying for even number.
* bignum.c (rb_big_pow): truncate all zero BDIGITs. [ruby-dev:30733]

* bignum.c (rb_big_pow): improvement by calculating from MSB and using
  factorization.  <http://yowaken.dip.jp/tdiary/20070426.html#p01>

* numeric.c (int_pow): calculate power in Fixnum as possible.
  [ruby-dev:30726]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-09 02:50:04 +00:00
nobu
d527feaf19 * bignum.c (rb_big2str0): round up for the most significant digit.
[ruby-core:10686]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@12116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-21 08:04:11 +00:00
matz
e3adeba5b2 * bignum.c (bignorm): avoid segmentation. a patch from Hiroyuki
Ito <ZXB01226@nifty.com>.  [ruby-list:43012]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-11-24 01:24:51 +00:00
usa
53f01519ab * bignum.c (rb_big2str0): use better approximation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-30 10:31:01 +00:00
matz
b8aac287ab * bignum.c (rb_big2str0): wrong allocation length.
[ruby-dev:29710]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-30 09:37:52 +00:00
matz
99711c2eb9 * bignum.c (rb_big2str0): a bug in length adjustment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-30 03:24:19 +00:00
matz
720cfb3e60 * sprintf.c (rb_str_format): should preserve leading zero
information for negative %b and %x.  [ruby-talk:221347]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-30 02:24:08 +00:00
matz
3b4d19278f * bignum.c (rb_big_rshift): a bug in right shift of negative
bignums.  [ruby-core:09020]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-10-07 15:49:00 +00:00
matz
962f59a375 * bignum.c (rb_big_mul0): bignum multiplication without
normalization.

* bignum.c (rb_big_pow): use rb_big_mul0().  [ruby-dev:29547]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-09 15:27:34 +00:00
matz
b2b33db355 * numeric.c (fix_plus): addition in Fixnum will never overflow
long.  a patch from Ondrej Bilka <neleai at seznam.cz>.
  [ruby-core:08794]

* numeric.c (fix_minus): ditto.

* bignum.c (rb_big_pow): eagerly truncate resulting bignum.
  [ruby-core:08794]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-07 16:35:59 +00:00
matz
234c47e9fb * prec.c (prec_prec_f): documentation patch from
<gerardo.santana at gmail.com>.  [ruby-core:07689]

* bignum.c (rb_big_pow): second operand may be too big even if
  it's a Fixnum.  [ruby-talk:187984]

* README.EXT: update symbol description.  [ruby-talk:188104]

* COPYING: explicitly note GPLv2.  [ruby-talk:187922]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-04-09 16:10:40 +00:00
akr
e83ff2e682 * bignum.c (rb_big_rshift): fix a GC problem on
IA64 with gcc 4.0.3 20051216 (prerelease).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 18:59:31 +00:00
ocean
05571e54db * bignum.c (bignew_1): convertion from int' to char' discards
upper bits, (ie. (char)0xff00 -> 0) so it's better to test if
  nonzero and set 0 or 1 instead of simply casting ... as a flag usage.
  (but I believe this won't cause actual bug in current implementation)
  [ruby-dev:27055]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-21 06:28:41 +00:00
nobu
c0af1a72a1 * Makefile.in, configure.in (MINIOBJS): miniruby on HP-UX can not load
extension libraries.

* bignum.c (bignew_1, bigadd): K&R style argument actually can't be
  defined as char.

* missing/vsnprintf.c: ANSI compiler supports const keyword.

* ext/digest/sha2/extconf.rb: reject platforms which has inttypes.h
  but no 64bit integer.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-06 23:23:04 +00:00
matz
9b42142366 * bignum.c (rb_big_coerce): allow bignum x bignum coercing.
[ruby-dev:26778]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-10 01:37:25 +00:00
matz
210bf4dc6e * bignum.c (rb_big_eq): reduce isnan(). [ruby-dev:26600]
* numeric.c (flo_eq, flo_gt, flo_ge, flo_lt, flo_le): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-22 13:04:25 +00:00
matz
1453dc92e4 * bignum.c (get2comp): revert all prior changes, and calculate
proper 2's complement for negative numbers.  backported from
  HEAD.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-01 08:54:04 +00:00
matz
f105a01a3e * bignum.c (get2comp): calculate proper 2's complement for
negative numbers.  a bug in normalizing negative numbers
  reported from Honda Hiroki <hhonda@ipflex.com>.

* ext/socket/socket.c (ruby_getaddrinfo__aix): merged a patch from
  KUBO Takehiro <kubo@jiubao.org> to support AIX.  [ruby-list:40832]

* lib/yaml/rubytypes.rb (Array::to_yaml): merged a patch from
  Tilman Sauerbeck <tilman@code-monkey.de>.  [ruby-core:05055]

* lib/yaml/rubytypes.rb (Hash::to_yaml): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-08 03:20:09 +00:00