summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2021-01-13Moved Fiber methods into core [Feature #17407]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4060
2021-01-13[ruby/bigdecimal] Allow digits=0 in BigDecimal(flt) and Float#to_dKenta Murata
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
2021-01-13Update ext/bigdecimal/dependKenta Murata
2021-01-13Update ext/bigdecimal/dependKenta Murata
2021-01-13[ruby/bigdecimal] Optimize rb_float_convert_to_BigDecimal by using dtoaKenta Murata
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
2021-01-13[ruby/bigdecimal] Use pre-allocated objects for special valuesKenta Murata
https://github.com/ruby/bigdecimal/commit/95c201f2d3
2021-01-13[ruby/bigdecimal] Fix exception message raised in Kernel.BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/d163f170a4 https://github.com/ruby/bigdecimal/commit/ff8eeeb064
2021-01-12[ruby/bigdecimal] Fix length calculation in rb_uint64_convert_to_BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/14e53ed7f6
2021-01-12[ruby/bigdecimal] Use rb_cstr_convert_to_BigDecimal in GetVpValueWithPrecKenta Murata
https://github.com/ruby/bigdecimal/commit/381ddf5ff6
2021-01-12[ruby/bigdecimal] Add rb_cstr_convert_to_BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/ac230a996e
2021-01-11[ruby/etc] Added fallback definition of RUBY_ATOMIC_EXCHANGENobuyoshi Nakada
https://github.com/ruby/etc/commit/0c5900bd21
2021-01-11[ruby/etc] Check blocking variables at releaseNobuyoshi Nakada
https://github.com/ruby/etc/commit/f017bdfedf
2021-01-10[ruby/bigdecimal] Fix type nameKenta Murata
https://github.com/ruby/bigdecimal/commit/2dad4d17b2
2021-01-10[ruby/bigdecimal] Avoid casting negative value to size_tKenta Murata
https://github.com/ruby/bigdecimal/f047b2786f
2021-01-10[ruby/bigdecimal] Use smallest local variable scope in GetVpValueWithPrecKenta Murata
https://github.com/ruby/bigdecimal/commit/44f26b9aa0
2021-01-09Get rid of defining methods for tests in core classesNobuyoshi Nakada
Not to interfere in other tests. Notes: Merged: https://github.com/ruby/ruby/pull/4043
2021-01-09[ruby/bigdecimal] Stop using GetVpValueWithPrec in ↵Kenta Murata
rb_rational_convert_to_BigDecimal https://github.com/ruby/bigdecimal/commit/b4f470da61 https://github.com/ruby/bigdecimal/commit/44a78df866
2021-01-09[ruby/bigdecimal] Add assertions for checking the argument typesKenta Murata
https://github.com/ruby/bigdecimal/commit/96c9ebd886
2021-01-09[ruby/bigdecimal] Stop using GetVpValueWithPrec in ↵Kenta Murata
rb_float_convert_to_BigDecimal https://github.com/ruby/bigdecimal/commit/33e7c50263 https://github.com/ruby/bigdecimal/commit/d3c1b0b921
2021-01-07[ruby/bigdecimal] Fix trailing zero handling in rb_uint64_convert_to_BigDecimalKenta Murata
https://github.com/ruby/bigdecimal/commit/2056604d56
2021-01-06[ruby/bigdecimal] Rename BDIGIT to DECDIGKenta Murata
https://github.com/ruby/bigdecimal/commit/686487d942
2021-01-06Need to convert the return value of rb_big_cmpKenta Murata
2021-01-06[ruby/bigdecimal] Optimize the conversion from small BignumKenta Murata
https://github.com/ruby/bigdecimal/commit/4792a917d8
2021-01-06[ruby/bigdecimal] Check the function availabilities separatelyKenta Murata
https://github.com/ruby/bigdecimal/commit/cf839a34c8 https://github.com/ruby/bigdecimal/commit/75db4dabb9
2021-01-05[DOC] Fix grammar: "is same as" -> "is the same as"Marcus Stollsteimer
2021-01-05Fix a typo [ci skip]Kazuhiro NISHIYAMA
2021-01-05[ruby/io-console] Shrink struct query_argsNobuyoshi Nakada
https://github.com/ruby/io-console/commit/720be0a3e5
2021-01-05[ruby/io-console] Pre-define chomp! IDNobuyoshi Nakada
https://github.com/ruby/io-console/commit/028e1c9497
2021-01-05[ruby/io-console] Ignore chomp! result and return the modified stringNobuyoshi Nakada
https://github.com/ruby/io-console/commit/09e5ccc729
2021-01-05[ruby/io-console] [DOC] Note that IO#getpass returns a chomped stringMarcus Stollsteimer
IO#getpass uses String#chomp! on the read input line. https://github.com/ruby/io-console/commit/1e98c93bc8
2021-01-05enable constant cache on ractorsKoichi Sasada
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
2021-01-04ripper: call #pretty_print on also `state`Nobuyoshi Nakada
2021-01-04Update ext/bigdecimal/dependKenta Murata
2021-01-04[ruby/bigdecimal] Move some definitions to missing.hKenta Murata
https://github.com/ruby/bigdecimal/commit/c2b22cc8b3 https://github.com/ruby/bigdecimal/commit/8cbca8481d https://github.com/ruby/bigdecimal/commit/f05aecf673
2021-01-04Revert "Include RUBY_EXTCONF_H if available"Kenta Murata
It is unnecessary because RUBY_EXTCONF_H has already been included in ruby/internal/config.h. This reverts commit 0644f466b0ef017202712882b557ba32863002c4.
2021-01-03Include RUBY_EXTCONF_H if availableKenta Murata
2021-01-02Avoid to use __builtin_clzl in SPARC SolarisKenta Murata
2021-01-02Add __x86_64__ guard to include x86intrin.hKenta Murata
2021-01-02Check if x86intrin.h is available not only existingNobuyoshi Nakada
2021-01-02[ruby/bigdecimal] Update dependKenta Murata
2021-01-02[ruby/bigdecimal] Fix test for Ruby 2.4Kenta Murata
Ruby 2.4 does not have RbConfig::LIMITS. https://github.com/ruby/bigdecimal/commit/c8087523b0
2021-01-02[ruby/bigdecimal] Implement special conversions for 64-bit integersKenta Murata
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 ``` https://github.com/ruby/bigdecimal/commit/3429bd7e6f
2020-12-31[ruby/bigdecimal] Refactor object allocationKenta Murata
https://github.com/ruby/bigdecimal/commit/271cebe567
2020-12-31[ruby/bigdecimal] Remove ToValueKenta Murata
https://github.com/ruby/bigdecimal/commit/97e9feeebd
2020-12-30[ruby/bigdecimal] Remove VP_EXCEPTION_MEMORYKenta Murata
It is no longer used due to the previous commit. https://github.com/ruby/bigdecimal/commit/7d463f802b
2020-12-30[ruby/bigdecimal] Remove needless pointer checksKenta Murata
xmalloc and xrealloc return non-NULL pointers or raise memory error. https://github.com/ruby/bigdecimal/commit/507f0a6a64
2020-12-29[ruby/bigdecimal] Define bool, true, and false for old RubyKenta Murata
https://github.com/ruby/bigdecimal/commit/a6d3bd2d44
2020-12-29[ruby/bigdecimal] Alloc wrapper object before VpAllocKenta Murata
Calling TypedData_Wrap_Struct after VpAlloc may cause memory leak. This commit reverts d11b78f9c420f39ee800b9feed4839cd28f4ff5c. https://github.com/ruby/bigdecimal/commit/2c5a288caf
2020-12-29[ruby/bigdecimal] Refactor to extract VpCheckExceptionKenta Murata
https://github.com/ruby/bigdecimal/commit/6fd171308b
2020-12-29transcode-tblgen.rb: make silent a little when just -vNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4011