398 Commits

Author SHA1 Message Date
usa
b9da060bd8 * ext/bigdecimal/bigdecimal.c (isfinite): get rid of a warning on
cygwin. [Bug #12417][ruby-core:75691]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-23 11:21:11 +00:00
usa
921ff3029b * ext/bigdecimal/bigdecimal.c (isfinite): isfinite does not always
exist.  fixed build error on Windows itroduced at r55123.

I found that more complex definition of isfinite in numeric.c.
But it's unused because it inplicitly checks not defined _WIN32.
I don't know why the code do that.
IMO, the definition of isfinite should be put at missing.h.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-23 06:55:48 +00:00
nobu
4a574f7ad9 bigdecimal.c: fix FloatDomainError
* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): consider
  non-finite float values not to raise FloatDomainError.
  [ruby-core:75682] [Bug #12414]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-23 03:30:30 +00:00
hsbt
0e382a3dd8 * encoding.c: Fix return value of Encoding::ISO8859_1.name
[Bug #12313][ruby-core:75147][ci skip]
* ext/bigdecimal/bigdecimal.c: Fix code sample of `BigDecimal.new`

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-25 02:17:54 +00:00
ko1
dff42b0ea0 * ext/**/*.c (*_memsize): same as r52986 for extensions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-09 01:01:17 +00:00
hsbt
d1decf0dfe * ext/bigdecimal/bigdecimal.c: Fix double word typo.
[ci skip][fix GH-1120] Patch by @jwworth

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-02 01:36:30 +00:00
nobu
859314cbc6 bigdecimal.c: suppress warnings
* ext/bigdecimal/bigdecimal.c (AddExponent): suppress
  strict-overflow warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-08 06:29:13 +00:00
nobu
57e2877e7b ext: use RARRAY_AREF
* ext/**/*.c: prefer RARRAY_AREF to indexing RARRAY_CONST_PTR.
  pointed out by hanmac.
  https://github.com/ruby/ruby/commit/3553a86#commitcomment-14187670

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-05 01:09:17 +00:00
nobu
3553a86eb5 ext: use RARRAY_CONST_PTR
* ext/bigdecimal/bigdecimal.c: use RARRAY_CONST_PTR just fore
  reference instead of RARRAY_PTR, to keep the array WB-protected.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-04 07:27:10 +00:00
nobu
bdf07741f3 bigdecimal.c: wrapper object before alloc
* ext/bigdecimal/bigdecimal.c (VpNewRbClass): make wrapper object
  before result structs allocation and manage refcount for each
  elements to get rid of potential memory leak.

* ext/bigdecimal/bigdecimal.c (BigDecimal_global_new): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-27 08:02:28 +00:00
mrkn
8b9db31f94 * bigdecimal: conform to ruby's license. [ruby-core:68466] [Bug #10952]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-04-08 07:18:46 +00:00
nobu
a44f7a3ee6 bigdecimal.c: format specifiers
* ext/bigdecimal/bigdecimal.c (VpInit, VpPower, VpVarCheck): fix
  format specifiers of BDIGIT.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-04 07:32:58 +00:00
nobu
718b425306 bigdecimal.c: fix a typo
* ext/bigdecimal/bigdecimal.c (VpSetPTR): fix a typo, 'expoennt'
  to 'exponent'.  [ruby-core:67980] [Bug #10823] [Fix GH-825]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-04 07:32:43 +00:00
mrkn
78400919ba * ext/bigdecimal/bigdecimal.c (rb_rational_num): add fallback function
for rubies lower than 2.2.0.

* ext/bigdecimal/bigdecimal.c (rb_rational_den): ditto.

* ext/bigdecimal/extconf.rb: check the existences of struct RRational,
  rb_rational_num, and rb_rational_den.

* ext/bigdecimal/bigdecimal.bundle: bump version.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-29 14:34:43 +00:00
hsbt
60c580fdcd * ext/bigdecimal/bigdecimal.c: fixes documentation like labeled lists,
code examples etc. [ruby-core:66730][Bug #10576][ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-12 04:50:55 +00:00
nobu
d5b81e6844 fix printf format conversion specifiers
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-26 05:33:01 +00:00
nobu
e580a631be use 0 for reserved
use 0 for rb_data_type_t::reserved instead of NULL, since its type
may be changed in the future and possibly not a pointer type.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-01 06:38:04 +00:00
mrkn
bf3d294ae8 * ext/bigdecimal/bigdecimal.c: [DOC] Add description of
`BigDecimal.new` exceptions.  Patched by @joker1007 and
  @prathamesh-sonpatki [Fixes GH-690]
  https://github.com/ruby/ruby/pull/690

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-31 22:36:16 +00:00
akr
e56d2c385a * include/ruby/ruby.h: Hide Rational internal.
(RRational): Moved to internal.h
  (RRATIONAL): Ditto.
  (RRATIONAL_SET_NUM): Moved to rational.c.
  (RRATIONAL_SET_DEN): Ditto.

* rational.c (rb_rational_num): New function.
  (rb_rational_den): Ditto.

* include/ruby/intern.h (rb_rational_num): Declared.
  (rb_rational_den): Ditto.

*  ext/bigdecimal/bigdecimal.c: Follow the above change.

* ext/date/date_core.c: Ditto.

  [ruby-core:60665] [Feature #9513]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-17 16:37:41 +00:00
nobu
1f29e8e2ba class.c: do nothing if copying self
* class.c (rb_mod_init_copy): do nothing if copying self.
  [ruby-dev:47989] [Bug #9535]
* hash.c (rb_hash_initialize_copy): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21 11:42:03 +00:00
mrkn
260cdec9a9 * ext/bigdecimal/bigdecimal.c (BigDecimal_initialize): Insert GC guard.
* ext/bigdecimal/bigdecimal.c (BigDecimal_global_new): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-16 17:14:11 +00:00
nobu
beb2d4c5a5 bigdecimal.c: refine macros
* ext/bigdecimal/bigdecimal.c (PUSH, SAVE): remove extra
  semicolons.

* ext/bigdecimal/bigdecimal.c (GUARD_OBJ): add parentheses and
  make an expression instead of a statement.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-16 07:53:18 +00:00
akr
037ceae571 * ext/bigdecimal/bigdecimal.c (BIGNUM_ZERO_P): Unused macro removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-15 22:48:43 +00:00
akr
3c99764bcd * internal.h: Rename macro names: RBIGNUM_FOO to BIGNUM_FOO.
(BIGNUM_EMBED_LEN_NUMBITS): Renamed from RBIGNUM_EMBED_LEN_NUMBITS.
  (BIGNUM_EMBED_LEN_MAX): Renamed from RBIGNUM_EMBED_LEN_MAX.
  (BIGNUM_SIGN_BIT): Renamed from RBIGNUM_SIGN_BIT.
  (BIGNUM_SIGN): Renamed from RBIGNUM_SIGN.
  (BIGNUM_SET_SIGN): Renamed from RBIGNUM_SET_SIGN.
  (BIGNUM_POSITIVE_P): Renamed from RBIGNUM_POSITIVE_P.
  (BIGNUM_NEGATIVE_P): Renamed from RBIGNUM_NEGATIVE_P.
  (BIGNUM_EMBED_FLAG): Renamed from RBIGNUM_EMBED_FLAG.
  (BIGNUM_EMBED_LEN_MASK): Renamed from RBIGNUM_EMBED_LEN_MASK.
  (BIGNUM_EMBED_LEN_SHIFT): Renamed from RBIGNUM_EMBED_LEN_SHIFT.
  (BIGNUM_LEN): Renamed from RBIGNUM_LEN.
  (RBIGNUM_DIGITS): Renamed from RBIGNUM_DIGITS.
  (BIGNUM_LENINT): Renamed from RBIGNUM_LENINT.

* bignum.c: Follow the above change.

* gc.c: Ditto.

* marshal.c: Ditto.

* math.c: Ditto.

* numeric.c: Ditto.

* random.c: Ditto.

* rational.c: Ditto.

* sprintf.c: Ditto.

* ext/-test-/bignum/bigzero.c: Ditto.

* ext/-test-/bignum/intpack.c: Ditto.

* ext/bigdecimal/bigdecimal.c: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-15 21:17:34 +00:00
akr
09e6766d1a * ext/bigdecimal/bigdecimal.c (BigMath_s_log): Use rb_big_cmp instead of
RBIGNUM_NEGATIVE_P.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-11 14:55:37 +00:00
akr
c1de2f4e3a * bignum.c (rb_big_cmp): Specialize a comparison to zero.
* ext/bigdecimal/bigdecimal.c (is_negative): Use rb_big_cmp instead of
  RBIGNUM_NEGATIVE_P.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-11 14:43:23 +00:00
nobu
f5a12ac596 bigdecimal.c: rename macros
* ext/bigdecimal/bigdecimal.c (RB_OBJ_CLASSNAME): rename from CLASS_NAME().

* ext/bigdecimal/bigdecimal.c (RB_OBJ_STRING): for object itself.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-15 08:16:33 +00:00
nobu
0a8988c132 bigdecimal.c: backword compatibility as gem
* ext/bigdecimal/bigdecimal.c (CLASS_NAME): macro to wrap
  depending on PRIsVALUE for 1.9.  [Backport #9406]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-14 06:58:43 +00:00
nobu
88383b058b bigdecimal.c: backword compatibility as gem
* ext/bigdecimal/bigdecimal.c (DECIMAL_SIZE_OF_BITS): fallback
  definition for 2.1 or older.  [ruby-core:59750] [Backport #9406]
* ext/bigdecimal/bigdecimal.c (raise_with_class): fallback definition
  for 1.9.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-14 05:51:58 +00:00
mrkn
e7fe5648cf * ext/bigdecimal/bigdecimal.c (BigDecimal_divide): Add an additional
digit for the quotient to be compatible with bigdecimal 1.2.1 and
  the former.  [ruby-core:59365] [#9316] [#9305]

* test/bigdecimal/test_bigdecimal.rb: tests for the above change.

* ext/bigdecimal/bigdecimal.gemspec: bigdecimal version 1.2.4.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44588 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-13 17:29:58 +00:00
nobu
eadaa8ba8b ext: use PRIsVALUE for rb_raise and rb_warn
* ext/bigdecimal/bigdecimal.c (BigDecimal_new): use PRIsVALUE for
  rb_raise() and rb_warn().
* ext/openssl/ossl_cipher.c (ossl_cipher_init): ditto.
* ext/racc/cparse/cparse.c (extract_user_token): ditto.
* ext/syslog/syslog.c (mSyslog_log): ditto.

* ext/openssl/ossl.h (OSSL_Check_Kind, OSSL_Check_Instance): now
  ossl_raise() also accepts PRIsVALUE.
* ext/openssl/ossl_asn1.c (ossl_asn1_default_tag):

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-13 00:57:38 +00:00
nobu
5e9b7bacc3 ruby/util.h: DECIMAL_SIZE_OF_BITS
* include/ruby/util.h (DECIMAL_SIZE_OF_BITS): a preprocessor
  constant macro to approximate decimal representation size of n-bits
  integer.
* iseq.c (register_label): use DECIMAL_SIZE_OF_BITS for better
  approximation.
* ext/bigdecimal/bigdecimal.c (BigMath_s_log): ditto.
* common.mk (iseq.o), ext/bigdecimal/depend (bigdecimal.o): add
  dependency to ruby/util.h for DECIMAL_SIZE_OF_BITS.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-12 00:21:37 +00:00
nobu
2b1c47dadc bigdecimal.c: expand buffer
* ext/bigdecimal/bigdecimal.c (BigMath_s_log): expand buffer size for
  64bit platforms.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-11 03:15:01 +00:00
eregon
1cc709a84a * ext/bigdecimal: update class method call style from :: to .
in documentation and usage.
* ext/bigdecimal/lib/bigdecimal/math.rb: [DOC] fix examples values.
  Computations were made using ruby 2.0.0p247 to ensure
  no effect of the recent BigDecimal bug.
* ext/bigdecimal/sample/nlsolve.rb: fix indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-02 15:10:13 +00:00
mrkn
df33325192 * ext/bigdecimal/bigdecimal.c (VpSetPTR): fix for limitation of the resulting
precision.

* test/bigdecimal/test_bigdecimal.rb (test_limit): add tests for the above
   change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 17:02:27 +00:00
mrkn
7d3538db3f * ext/bigdecimal/bigdecimal.c (VpAddAbs): put out a conditional branch from
the inside of while-loop.

* ext/bigdecimal/bigdecimal.c (VpSubAbs): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 17:02:24 +00:00
mrkn
27d53fb5df * ext/bigdecimal/bigdecimal.c (VPrint): be a static function, support another
dump formats, and add more information of the given bigdecimal.

* ext/bigdecimal/bigdecimal.h: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-12 17:02:20 +00:00
mrkn
0727a22c69 * bigdecimal.c (BigDecimal_coerce): convert a Float to a BigDecimal instead
of converting the receiver to a Float.
  [ruby-core:58756] [Bug #9192]

* test/bigdecimal/test_bigdecimal.rb: add tests for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-08 11:20:51 +00:00
mrkn
2308fb170e * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec):
treat 0.0 and -0.0 of floating-point numbers specially for an optimization
  and to correctly propagate its signbit to the result.
  [Bug #9214] [ruby-core:58858]

* test/bigdecimal/test_bigdecimal.rb: add tests case for the above change.

* test/bigdecimal/test_bigdecimal_util.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-05 16:34:59 +00:00
mrkn
10ca8a4b07 * ext/bigdecimal/bigdecimal.c (BigDecimal_power): Use FIX2LONG instead
of FIX2INT to avoid conversion error.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-23 16:08:23 +00:00
mrkn
b09f41587c exp
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-23 10:49:36 +00:00
mrkn
926960b01b * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): The signature was
changed to allow us to pass arguments directly.

* ext/bigdecimal/bigdecimal.c (BigDecimal_div3): Added for the role of
  the old BigDecimal_div2.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-23 10:36:40 +00:00
mrkn
909d14a1db * ext/bigdecimal/bigdecimal.c (BigDecimal_power):
Round the result value only if the precision is given.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 13:31:26 +00:00
mrkn
15185e875d * ext/bigdecimal/bigdecimal.c (BigDecimal_data_type):
Use RUBY_TYPED_FREE_IMMEDIATELY only if it is available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 08:05:58 +00:00
mrkn
2043bb5c34 * ext/bigdecimal/bigdecimal.c (BigDecimal_power): Round the result value.
[Bug #8818] [ruby-core:56802]

* test/bigdecimal/test_bigdecimal.rb: Add a test for the above fix.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 07:52:17 +00:00
mrkn
5ff5938120 * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Insert rb_thread_check_ints.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 05:55:45 +00:00
mrkn
467c9ec3b7 * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): Fix the inserting points
of RB_GC_GUARDs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 05:54:05 +00:00
mrkn
4131c29f87 * ext/bigdecimal/bigdecimal.c: Fix indentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-22 05:50:34 +00:00
mrkn
b6f664686e * ext/bigdecimal/bigdecimal.c (VpAlloc): Fix the expr to adjust the size
of the digit array.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 12:42:01 +00:00
mrkn
ff3e585014 * ext/bigdecimal/bigdecimal.c (BigDecimal_sqrt): Fix the precision of
the result BigDecimal of sqrt.
  [Bug #5266] [ruby-dev:44450]

* test/bigdecimal/test_bigdecimal.rb: add tests for the above changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 12:37:46 +00:00