Commit graph

549 commits

Author SHA1 Message Date
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
Nobuyoshi Nakada
ba1b9d3104 [ruby/bigdecimal] Fix the license name [ci skip]
```
$ gem build bigdecimal.gemspec
WARNING:  license value 'BSD-2-clause' is invalid.  Use a license identifier from
http://spdx.org/licenses or 'Nonstandard' for a nonstandard license.
Did you mean 'BSD-2-Clause'?
WARNING:  See https://guides.rubygems.org/specification-reference/ for help
```

36b77a2d2f
2023-02-19 09:58:31 +00:00
Charles Oliver Nutter
becec0001c [ruby/bigdecimal] Stub out extension build on JRuby
JRuby currently ships its own internal bigdecimal extension as
part of the core libraries. In order for users to be able to add
bigdecimal to their Gemfile or gem dependencies, we need to stub
out the C extension and just load the extension shipped with
JRuby.

In the future we will try to move our BigDecimal implementation
into the gem, but for now this is the simplest way to make it
installable on JRuby.

See #169

829956c643
2023-02-17 17:52:48 +00:00
Maciej Rzasa
36e3d46d35 [ruby/bigdecimal] Handle correctly #remainder with infinity. Fixes
https://github.com/ruby/bigdecimal/pull/187

4b8572d452
2023-02-17 17:46:27 +00:00
Nobuyoshi Nakada
899ea35035
Extract include/ruby/internal/attr/packed_struct.h
Split `PACKED_STRUCT` and `PACKED_STRUCT_UNALIGNED` macros into the
macros bellow:
* `RBIMPL_ATTR_PACKED_STRUCT_BEGIN`
* `RBIMPL_ATTR_PACKED_STRUCT_END`
* `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN`
* `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END`
2023-02-08 12:34:13 +09:00
Peter Zhu
aa222b56fa [ruby/bigdecimal] Make BigDecimal WB protected
BigDecimal has no references, so it is WB protected.

29c61c90e8
2023-02-01 15:59:11 +00:00
Nobuyoshi Nakada
69a2687a27 [ruby/bigdecimal] Fix format specifiers for size_t
99db3c9754
2023-01-07 03:15:27 +00:00
Hiroshi SHIBATA
fa865f5752 [ruby/bigdecimal] Bump version to 3.1.3
25a75c2033
2022-12-05 10:44:30 +00:00
Kenta Murata
c75de1e330 [ruby/bigdecimal] Add fallback definition of MAYBE_UNUSED
b2123faa52
2022-11-15 06:59:11 +00:00
Kenta Murata
3c60e030b5 [ruby/bigdecimal] Replace sprintf by snprintf
d6f5bb40c7
2022-11-15 04:02:01 +00:00
Kenta Murata
3147a3900f [ruby/bigdecimal] Mark some functions MAYBE_UNUSED
d70a4d53e5
2022-11-15 00:34:23 +00:00
Kenta Murata
8d82f4ba1c [ruby/bigdecimal] Add specific value allocators
* Add NewZero* and NewOne* function families
* Use them instead of VpAlloc for allocating 0 and 1

9276a94ac7
2022-11-13 12:33:29 +00:00
Kenta Murata
802dce4acd [ruby/bigdecimal] Add and use specific value allocators
* Add rbd_allocate_struct_zero for making 0.0
* Add rbd_allocate_struct_one for making 1.0
* Use them to replace VpAlloc calls
* Renmae VpPt5 to VpConstPt5

40c826f5e6
2022-11-13 06:01:27 +00:00
Kenta Murata
019f53de5c [ruby/bigdecimal] Make VPrint function always available
5391f7e92c
2022-11-13 06:01:27 +00:00
Kenta Murata
d1f55dea86 [ruby/bigdecimal] Tweak VpAlloc
* Stop reusing mx and mf
* Check szVal == NULL first
* Treat special values before checking the leading `#`

14f3d965f8
2022-11-13 04:29:19 +00:00
Kenta Murata
bbb9f72353 [ruby/bigdecimal] Rewrite allocation functions
* Rename them
* Make allocation count operations atomic

a5ab34a115
2022-11-13 03:47:40 +00:00
Kenta Murata
2703410289 [ruby/bigdecimal] Twak GetPrecisionInt and rename it to check_int_precision
69d0588a3b
2022-11-13 02:46:42 +00:00
Kenta Murata
ef1c6109b1 [ruby/bigdecimal] Tweak check_rounding_mode_option
e1c6c9be25
2022-11-13 02:02:02 +00:00
Kenta Murata
74c6e6e565 [ruby/bigdecimal] Rewrite check_rounding_mode function
Use table-lookup algorithm instead of consecutive if-statements.

23eaff3ae5
2022-11-13 02:02:01 +00:00
Kenta Murata
b89769b978 [ruby/bigdecimal] [Doc] Fix the document of n_significant_digits
91b72a9341
2022-11-13 02:02:00 +00:00
Kenta Murata
977aac057f [ruby/bigdecimal] Make GetVpValue inline
1b642e2e59
2022-11-13 02:02:00 +00:00
Kenta Murata
0d5248673d [ruby/bigdecimal] Make BigDecimal_double_fig inline
4ecf04da7a
2022-11-13 02:01:59 +00:00
Nobuyoshi Nakada
7ed10abdd9 [ruby/bigdecimal] Suppress macro redefinition warnings
`HAVE_` macros by autoconf are defined as 1.

cd35868aa6
2022-10-30 14:21:31 +00:00
Maciej Rzasa
b8e804e410 [ruby/bigdecimal] Document precision=0 and ndigits=0 for converting from Float
4f0894c6c0
2022-09-28 09:29:49 +09:00
Samuel Williams
a95b741a97 [ruby/bigdecimal] Remove trailing whitespace.
223d193f01
2022-09-25 19:34:27 +09:00
Maciek Rząsa
8e2c425183 [ruby/bigdecimal] Improve documentation of BigDecimal#sign
Fixes https://github.com/ruby/bigdecimal/issues/78 by describing behaviour for positive and negative zero in the docs.

5415b120ab
2022-09-25 16:51:17 +09: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
Thomas Winsnes
8a1be433e8 [ruby/bigdecimal] Updated to use the correct spec for muilti license
13165b29b8
2022-08-03 11:04:31 +09:00
Thomas Winsnes
f33b2ae918
Updated to use multiple licenses
Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
2022-08-03 11:04:20 +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
BurdetteLamar
06f4ca503d [ruby/bigdecimal] Correct indentation in Kernel#BigDecimal
3ede8860a6
2022-07-02 07:58:20 +09:00
Peter Zhu
c69bdcf80c [ruby/bigdecimal] Fix docs
rdoc parses f[i] as a link, which results in a broken link.

a18522e9ca
2022-04-18 10:29:25 +09:00
Nobuyoshi Nakada
92361ad9c6 [ruby/bigdecimal] Adjust a local variable type to exponent
70146fb6ad
2022-04-18 10:29:23 +09:00
Peter Zhu
2d5ecd60a5 [Feature #18249] Update dependencies 2022-02-22 09:55:21 -05:00
Kenta Murata
328e6bf3b3
[ruby/bigdecimal] Version 3.1.2
57e2194135
2022-01-24 10:56:37 +09:00
Kenta Murata
7db195d521
[ruby/bigdecimal] Fix the maximum precision of the quotient
Fixes https://github.com/ruby/bigdecimal/pull/220

127a1b5a31
2022-01-24 10:56:30 +09:00
Kenta Murata
9ccfc78346 [ruby/bigdecimal] Remove unused variable
ac7daa5f15
2021-12-24 09:44:23 +09:00
Kenta Murata
65d35502bd
[ruby/bigdecimal] Version 3.1.1
2ef67c2cc7
2021-12-24 02:29:02 +09:00
Kenta Murata
a1d9fbef05
[ruby/bigdecimal] Fix the result precision of BigDecimal#divmod
a32f6cb9e2
2021-12-24 02:29:01 +09:00
Kenta Murata
680a4ebb3c
[ruby/bigdecimal] Version 3.1.0
c3453d2b97
2021-12-24 02:29:01 +09:00
Burdette Lamar
0262f34905
[ruby/bigdecimal] Enhanced RDoc for BigDecimal (https://github.com/ruby/bigdecimal/pull/209)
* Enhanced RDoc for BigDecimal

* Update ext/bigdecimal/bigdecimal.c

Remove the instance number of `Float::DIG`.

* Update ext/bigdecimal/bigdecimal.c

Add BigDecimal call-seq without ndigits.

* Update ext/bigdecimal/bigdecimal.c

Replace the word sum with value or result in the description of BigDecimal().

* Update ext/bigdecimal/bigdecimal.c

Remove the instance value of Float::DIG.

* Update ext/bigdecimal/bigdecimal.c

Fix mis-description of precision

* Update ext/bigdecimal/bigdecimal.c

Fix the description of precision determination

* Update ext/bigdecimal/bigdecimal.c

Add the description of the precision in the Rational case.

acabb132a4

Co-authored-by: Kenta Murata <3959+mrkn@users.noreply.github.com>
2021-12-24 02:29:01 +09:00
Kenta Murata
79712fc083
[ruby/bigdecimal] Let BigDecimal#quo accept precision
Fix GH-214.

13e0e93f37
2021-12-24 02:29:00 +09:00
Kenta Murata
0b8638cd74
[ruby/bigdecimal] Add TODO comment
ef9cf4e69e
2021-12-24 02:29:00 +09:00
Kenta Murata
98918209b7
[ruby/bigdecimal] Allow passing both float and precision in BigDecimal#div
Fix GH-212.

900bb7fcf5
2021-12-24 02:29:00 +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
84ae7a5df9
[ruby/bigdecimal] Add BigDecimal#precision_scale
c019caeaba
2021-12-24 02:28:59 +09:00
Kenta Murata
ea713009ba
[ruby/bigdecimal] [Doc] Add documentation of BigDecimal#n_significant_digits
ceaf16b03e
2021-12-24 02:28:59 +09:00
Kenta Murata
aca96f7ec7
[ruby/bigdecimal] Add BigDecimal#scale
Fixes GH-198.

4fbec55680
2021-12-24 02:28:58 +09:00
BurdetteLamar
0c63aa11bc
[ruby/bigdecimal] Set rounding mode in example
8fc83dd2fe
2021-12-24 02:28:58 +09:00