Peter Zhu
12889fad41
[ruby/bigdecimal] Remove symbol defs in missing.h for old Rubies
...
Commit 2885514 added these to support Ruby 2.1. The rb_sym2str function
is defined since Ruby 2.2.
be366c9cf2
2022-09-19 23:40:49 +09:00
Peter Zhu
a44f48cadc
[ruby/bigdecimal] Remove array defs in missing.h for old Rubies
...
Commit 02b6053 added these to support Ruby 2.0.0. The rb_array_const_ptr
function is defined since Ruby 2.3.
678699ca1b
2022-09-19 23:40:48 +09:00
Nobuyoshi Nakada
673759328c
[ruby/bigdecimal] Remove checks for struct RRational
and struct RComplex
...
These are used to see only if `RRATIONAL` and `RCOMPLEX` are
available, however, these two are macros and can be checked with
`#ifdef` directly.
175bbacd43
2022-07-14 21:02:02 +09:00
Jean Boussier
d0897e3f3a
[ruby/bigdecimal] Improve extconf to allow using bigdecimal as a git gem
...
e.g.
```
gem "bigdecimal", github: "ruby/bigdecimal"
```
It would fail because bundler regenerates the `gemspec`,
so `bigdecimal_version` is gone.
bccaa66f2c
2021-12-24 02:28:59 +09:00
Kenta Murata
4ba3a4491e
[ruby/bigdecimal] Optimize rb_float_convert_to_BigDecimal by using dtoa
...
This improve the conversion speed several times faster than before.
```
RUBYLIB= BUNDLER_ORIG_RUBYLIB= /home/mrkn/.rbenv/versions/3.0.0/bin/ruby -v -S benchmark-driver /home/mrkn/src/github.com/ruby/bigdecimal/benchmark/from_float.yml
ruby 3.0.0p0 (2020-12-25 revision 95aff21468
) [x86_64-linux]
Calculating -------------------------------------
bigdecimal 3.0.0 master
flt_e0 156.400k 783.356k i/s - 100.000k times in 0.639388s 0.127656s
flt_ep10 158.640k 777.978k i/s - 100.000k times in 0.630359s 0.128538s
flt_ep100 101.676k 504.259k i/s - 100.000k times in 0.983512s 0.198311s
flt_em10 103.439k 726.339k i/s - 100.000k times in 0.966751s 0.137677s
flt_em100 79.675k 651.446k i/s - 100.000k times in 1.255095s 0.153505s
Comparison:
flt_e0
master: 783355.6 i/s
bigdecimal 3.0.0: 156399.5 i/s - 5.01x slower
flt_ep10
master: 777977.6 i/s
bigdecimal 3.0.0: 158639.7 i/s - 4.90x slower
flt_ep100
master: 504259.4 i/s
bigdecimal 3.0.0: 101676.5 i/s - 4.96x slower
flt_em10
master: 726338.6 i/s
bigdecimal 3.0.0: 103439.2 i/s - 7.02x slower
flt_em100
master: 651446.3 i/s
bigdecimal 3.0.0: 79675.3 i/s - 8.18x slower
```
5bdaedd530
9bfff57f90
d071a0abbb
2021-01-13 02:11:18 +09:00
Kenta Murata
31854403b3
[ruby/bigdecimal] Check the function availabilities separately
...
cf839a34c8
75db4dabb9
2021-01-06 09:25:13 +09:00
Kenta Murata
71f0dd339b
[ruby/bigdecimal] Move some definitions to missing.h
...
c2b22cc8b3
8cbca8481d
f05aecf673
2021-01-04 13:29:10 +09:00
Nobuyoshi Nakada
5aa28d9d6d
Check if x86intrin.h is available not only existing
2021-01-02 09:48:42 +09:00
Kenta Murata
448a67cd81
[ruby/bigdecimal] Implement special conversions for 64-bit integers
...
This change improves the conversion speed from small integers.
```
Comparison:
big_n9
master: 4003688.9 i/s
bigdecimal 3.0.0: 1270551.0 i/s - 3.15x slower
big_n19
master: 5410096.4 i/s
bigdecimal 3.0.0: 1000250.3 i/s - 5.41x slower
```
3429bd7e6f
2021-01-02 00:54:09 +09:00
Kenta Murata
47a1f5ff73
[ruby/bigdecimal] Define bool, true, and false for old Ruby
...
a6d3bd2d44
2020-12-29 17:46:37 +09:00
Kenta Murata
654f6fbf19
[bigdecimal] Make BigDecimal#precs deprecated
...
7e80e6e145
0ed7846e8c
2020-12-19 22:13:58 +09:00
Kenta Murata
40b82afe6a
[ruby/bigdecimal] Support Ruby < 2.6
...
61ec452599
2020-07-06 01:15:46 +09:00
Kenta Murata
dd0c75fdc2
Import changes from ruby/bigdecimal ( #2531 )
...
Sync to ruby/bigdecimal@92356ba71c
2019-10-08 09:06:28 +09:00
Nobuyoshi Nakada
3e7d002118
Check exception flag as a bool [Bug #15987 ]
2019-07-11 20:04:29 +09:00
mrkn
ccdba542d3
Import bigdecimal-1.4.0.pre.20181220a
...
* https://github.com/ruby/bigdecimal/compare/v1.4.0.pre.20181214a..v1.4.0.pre.20181220a
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-20 23:29:49 +00:00
mrkn
2810c12a99
Import bigdecimal 1.4.0.pre.20181205a
...
* 74d25ef
..v1.4.0.pre.20181205a
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-05 11:30:24 +00:00
mrkn
f15cf0918a
Revert bigdecimal 1.4.0 related commits
...
* Revert "Remove unnecessary linker flags"
This reverts commit 49efa01579
.
* Revert "Move dependency on gemspec"
This reverts commit bfb64d4765
.
* Revert "Remove unnecessary directory listing"
This reverts commit 86661b5c60
.
* Revert "* expand tabs."
This reverts commit 35ada33f83
.
* Revert "Import bigdecimal-1.4.0.pre-20181204a"
This reverts commit 8891bb3bd6
.
* Revert "ext/bigdecimal/bigdecimal.c: drop unused function"
This reverts commit 5ceeea4da1
.
* Revert "* expand tabs."
This reverts commit e021386e90
.
* Revert "Import bigdecimal-1.4.0.pre-20181130a"
This reverts commit a0e438cd3c
.
* Revert "NEWS: write about bigdecimal updates"
This reverts commit 89455ff2ba
.
* Revert "Fix rubyspec of bigdecimal for ruby <2.6"
This reverts commit 4bcdeeb65e
.
* Revert "Fix rubyspec against bigdecimal updates"
This reverts commit c8fb30fc9e
.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-05 04:01:53 +00:00
nobu
49efa01579
Remove unnecessary linker flags
...
Cygwin/mingw linker should be able to link against shared library
itself. Mswin build sets -def:$(DEFFILE) option by the default.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-04 11:16:15 +00:00
nobu
bfb64d4765
Move dependency on gemspec
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-04 11:16:14 +00:00
nobu
86661b5c60
Remove unnecessary directory listing
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-04 11:16:11 +00:00
mrkn
a0e438cd3c
Import bigdecimal-1.4.0.pre-20181130a
...
* 74d25ef
..v1.4.0.pre.20181130a
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-02 05:21:54 +00:00
nobu
54b89699d9
bigdecimal: dependency
...
* ext/bigdecimal/extconf.rb: extconf.h depends on the gemspec
file. [ruby-core:84247] [Bug #14180 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-14 04:40:15 +00:00
mrkn
61e58f7dc4
bigdecimal: version 1.3.3
...
Import bigdecimal version 1.3.3. The full commit log is here:
https://github.com/ruby/bigdecimal/compare/v1.3.2...v1.3.3
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-13 15:28:30 +00:00
mrkn
65285fbdb8
bigdecimal: version 1.3.2
...
Import bigdecimal version 1.3.2. The full commit log is here:
https://github.com/ruby/bigdecimal/compare/v1.3.1...v1.3.2
This fixes [ruby-core:79603] [Bug #13232 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-03-13 06:03:18 +00:00
mrkn
70f772c3ef
bigdecimal: version 1.3.1
...
Import bigdecimal version 1.3.1. The full commit log is here:
https://github.com/ruby/bigdecimal/compare/v1.3.0...v1.3.1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-02-10 13:23:58 +00:00
mrkn
8e1293730e
bigdecimal: import version 1.3.0.pre
...
Import bigdecimal version 1.3.0.pre. The full commit log of this
changes can be found at:
5c43a9e
...v1.3.0.pre
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-10 07:49:15 +00:00
naruse
c4fdfabcc8
handle ext/ as r53141
...
g -L frozen_string_literal ext/**/*.rb|xargs ruby -Ka -e'ARGV.each{|fn|puts
fn;open(fn,"r+"){|f|s=f.read.sub(/\A(#!.*\n)?(#.*coding.*\n)?/,"\\&#
frozen_string_literal: false\n");f.rewind;f.write s}}'
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:31:54 +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
mrkn
d86da0fcf1
* ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h (labs, llabs): support environments missing labs and llabs.
...
* ext/bigdecimal/bigdecimal.h (vabs): added.
* ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h, ext/bigdecimal/bigdecimal.c, test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_new): replace U_LONG, S_LONG, S_INT, and U_INT with appropreate standard or ruby-provided types.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-14 15:22:43 +00:00
mrkn
7694956ef7
* ext/bigdecimal/bigdecimal.c, ext/bigdecimal/bigdecimal.h, ext/bigdecimal/extconf.rb: BASE and BASE_FIG are defined based on the size of BDIGIT and renamed.
...
* ext/bigdecimal/bigdecimal.c, ext/bigdecimal/bigdecimal.h: use BDIGIT for Real#frac.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-10 06:25:27 +00:00
nobu
4d5f46dc08
* ext/bigdecimal/extconf.rb: simplified the condition.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-09 14:22:54 +00:00
nobu
a424741c8e
* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for more
...
precision. [ruby-talk:290296]
* ext/bigdecimal/bigdecimal.c (BASE_FIG): made constant.
* ext/bigdecimal/extconf.rb: ditto. [ruby-dev:33658]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-09 08:51:26 +00:00
shigek
7744351708
Copied from rough/bigdecimal,documents & some sample programs added.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-03-28 05:00:21 +00:00