Age | Commit message (Collapse) | Author |
|
This value should either be pinned, or looked up when needed at runtime.
Without pinning, the GC may move the encoding object, and that could
cause a crash.
In this case it is easier to find the value at runtime, and there is no
performance penalty (as Ruby caches encoding indexes). We can shorten
the code, be compaction friendly, and incur no performance penalty.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4128
|
|
https://github.com/ruby/bigdecimal/commit/a109d0984f
|
|
https://github.com/ruby/bigdecimal/commit/034fd2b25e
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4078
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4083
|
|
https://github.com/ruby/io-console/commit/c8046fde84
|
|
https://github.com/ruby/io-console/commit/b0691d2c20
|
|
Add `--platform` option tentatively.
https://github.com/ruby/io-console/commit/3bf1a7b753
|
|
https://github.com/ruby/io-console/commit/f55d7ebff6
|
|
https://github.com/ruby/bigdecimal/commit/1cb92487f7
|
|
https://github.com/ruby/bigdecimal/commit/d2746121cf
|
|
https://github.com/ruby/bigdecimal/commit/68c20200d5
|
|
https://github.com/ruby/bigdecimal/commit/3b55ad1c42
|
|
https://github.com/ruby/bigdecimal/commit/1e03da7076
|
|
https://github.com/ruby/bigdecimal/commit/b1f1ed26c9
|
|
https://github.com/ruby/bigdecimal/commit/f0d94e6843
|
|
https://github.com/ruby/bigdecimal/commit/f6765b8071
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4060
|
|
Using dtoa of mode=0, we can determine the number of digits in decimal that is
necessary to represent the given Float number without errors.
This change permits digits=0 in BigDecimal(flt) and Float#to_d, and these
methods use dtoa of mode=0 when the given digits is 0.
Internal implicit conversion from Float also uses digits=0.
[Fix GH-70]
https://github.com/ruby/bigdecimal/commit/2dbe170e35
|
|
|
|
|
|
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
```
https://github.com/ruby/bigdecimal/commit/5bdaedd530
https://github.com/ruby/bigdecimal/commit/9bfff57f90
https://github.com/ruby/bigdecimal/commit/d071a0abbb
|
|
https://github.com/ruby/bigdecimal/commit/95c201f2d3
|
|
https://github.com/ruby/bigdecimal/commit/d163f170a4
https://github.com/ruby/bigdecimal/commit/ff8eeeb064
|
|
https://github.com/ruby/bigdecimal/commit/14e53ed7f6
|
|
https://github.com/ruby/bigdecimal/commit/381ddf5ff6
|
|
https://github.com/ruby/bigdecimal/commit/ac230a996e
|
|
https://github.com/ruby/etc/commit/0c5900bd21
|
|
https://github.com/ruby/etc/commit/f017bdfedf
|
|
https://github.com/ruby/bigdecimal/commit/2dad4d17b2
|
|
https://github.com/ruby/bigdecimal/f047b2786f
|
|
https://github.com/ruby/bigdecimal/commit/44f26b9aa0
|
|
Not to interfere in other tests.
Notes:
Merged: https://github.com/ruby/ruby/pull/4043
|
|
rb_rational_convert_to_BigDecimal
https://github.com/ruby/bigdecimal/commit/b4f470da61
https://github.com/ruby/bigdecimal/commit/44a78df866
|
|
https://github.com/ruby/bigdecimal/commit/96c9ebd886
|
|
rb_float_convert_to_BigDecimal
https://github.com/ruby/bigdecimal/commit/33e7c50263
https://github.com/ruby/bigdecimal/commit/d3c1b0b921
|
|
https://github.com/ruby/bigdecimal/commit/2056604d56
|
|
https://github.com/ruby/bigdecimal/commit/686487d942
|
|
|
|
https://github.com/ruby/bigdecimal/commit/4792a917d8
|
|
https://github.com/ruby/bigdecimal/commit/cf839a34c8
https://github.com/ruby/bigdecimal/commit/75db4dabb9
|
|
|
|
|
|
https://github.com/ruby/io-console/commit/720be0a3e5
|
|
https://github.com/ruby/io-console/commit/028e1c9497
|
|
https://github.com/ruby/io-console/commit/09e5ccc729
|
|
IO#getpass uses String#chomp! on the read input line.
https://github.com/ruby/io-console/commit/1e98c93bc8
|
|
constant cache `IC` is accessed by non-atomic manner and there are
thread-safety issues, so Ruby 3.0 disables to use const cache on
non-main ractors.
This patch enables it by introducing `imemo_constcache` and allocates
it by every re-fill of const cache like `imemo_callcache`.
[Bug #17510]
Now `IC` only has one entry `IC::entry` and it points to
`iseq_inline_constant_cache_entry`, managed by T_IMEMO object.
`IC` is atomic data structure so `rb_mjit_before_vm_ic_update()` and
`rb_mjit_after_vm_ic_update()` is not needed.
Notes:
Merged: https://github.com/ruby/ruby/pull/4022
|
|
|