Nobuyoshi Nakada
d13879f862
[ruby/bigdecimal] Read version from bigdecimal.c
...
The dependency of extconf.h on bigdecimal.gemspec does not make sense
as far as no rule is defined for it. Also, the relationship between
extension library and gemspec file is various in default gems, and
does not work well.
7f99b28552
2023-02-21 09:50:02 +00:00
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