summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-16[memory_view] Make MemoryView API Ractor-safe (#3911)Kenta Murata
* memory_view.c: make Ractor-safe * test/ruby/test_memory_view.rb: Add test_ractor * memory_view: fix typo * memory_view.c: Use st_update in unregster_exported_object * memory_view: update dependency Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-12-16remove unused functionKoichi Sasada
2020-12-16tuning ivar setKoichi Sasada
* make rb_init_iv_list() simple * introduce vm_setivar_slowpath() for cache miss cases ../clean/miniruby is 647ee6f091. Calculating ------------------------------------- ./miniruby ../clean/miniruby ../ruby_2_7/miniruby vm_ivar_init 7.388M 6.814M 5.771M i/s - 30.000M times in 4.060420s 4.402534s 5.198781s vm_ivar_init_subclass 2.158M 2.147M 1.974M i/s - 3.000M times in 1.390328s 1.397587s 1.519951s vm_ivar_set 128.607M 97.931M 140.668M i/s - 30.000M times in 0.233269s 0.306338s 0.213268s vm_ivar 144.315M 151.722M 117.734M i/s - 30.000M times in 0.207879s 0.197730s 0.254811s Comparison: vm_ivar_init ./miniruby: 7388398.8 i/s ../clean/miniruby: 6814257.1 i/s - 1.08x slower ../ruby_2_7/miniruby: 5770583.9 i/s - 1.28x slower vm_ivar_init_subclass ./miniruby: 2157763.6 i/s ../clean/miniruby: 2146557.0 i/s - 1.01x slower ../ruby_2_7/miniruby: 1973747.9 i/s - 1.09x slower vm_ivar_set ../ruby_2_7/miniruby: 140668063.8 i/s ./miniruby: 128606912.1 i/s - 1.09x slower ../clean/miniruby: 97931027.8 i/s - 1.44x slower vm_ivar ../clean/miniruby: 151722121.9 i/s ./miniruby: 144314526.5 i/s - 1.05x slower ../ruby_2_7/miniruby: 117734305.5 i/s - 1.29x slower Notes: Merged: https://github.com/ruby/ruby/pull/3912
2020-12-16Fixed marshal compatibility of Process::StatusNobuyoshi Nakada
2020-12-16Removed leading spaces [ci skip]Nobuyoshi Nakada
2020-12-16Added entry for webrick changes at Ruby 3.0 to NEWSHiroshi SHIBATA
2020-12-16add vm_sync debug countersKoichi Sasada
* vm_sync_lock * vm_sync_lock_enter * vm_sync_lock_enter_nb * vm_sync_lock_enter_cr * vm_sync_barrier Notes: Merged: https://github.com/ruby/ruby/pull/3910
2020-12-16fix typoKoichi Sasada
2020-12-16fix duplicated nameKoichi Sasada
2020-12-16configure.ac: avoid squashing CXX=g++卜部昌平
We are discussing this issue at [Bug #17337] but in the meantime, leave this questionable autoconf glitch as-is to save sassc and eventmachine. Notes: Merged: https://github.com/ruby/ruby/pull/3907
2020-12-15Document Hash#transform_keys with hash. Amend NEWS [DOC] [ci skip]Marc-Andre Lafortune
2020-12-15Optimize `Enumerable#grep{_v}`Marc-Andre Lafortune
[Bug #17030] Notes: Merged: https://github.com/ruby/ruby/pull/3868
2020-12-16[DOC] Described "numeric representation" more precisely [ci skip]Nobuyoshi Nakada
[Bug #17395]
2020-12-16* 2020-12-16 [ci skip]git
2020-12-15Removed unneeded cast and use the real nameNobuyoshi Nakada
2020-12-15TEST: multiarch support for HaikuZoltán Mizsei
2020-12-15Haiku: disable stack-protectorZoltán Mizsei
2020-12-15Add Haiku to the context support listZoltán Mizsei
2020-12-15Ripper: Refined error callbacks [Bug #17345]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3909
2020-12-15Fix typo in NEWS.mdJunichi Ito
Notes: Merged: https://github.com/ruby/ruby/pull/3908
2020-12-15Added updated versions of the default gems on NEWSHiroshi SHIBATA
2020-12-15Bump version to json-2.4.0Hiroshi SHIBATA
2020-12-14Lock only active_units referencesTakashi Kokubun
556a7285080c1344c75bb93a333c9bfc5d631c61 was not good maybe because it wasn't using list_for_each_safe. If list_for_each_safe is safe for list_del for any nodes (is that true?), this should be fine.
2020-12-15Cache warning category IDsNobuyoshi Nakada
2020-12-15Import bigdecimal 2.0.2 (#3905)Kenta Murata
* remove duplicated include * Make BigDecimal#round with argument < 1 return Integer Fixes [Bug #12780] * Use a higher default precision for BigDecimal#power and #** When a fractional power is given, increase the precision if the precision isn't specified via power's second argument: Float: increase by 15 (rough number of decimal precision in float) BigDecimal: increase by adding similar precision modifier as done to calculate the base precision. Rational: double the precision, since a BigDecimal is created, but the created BigDecimal uses the same precision. Increasing the precision for these power calculations has the obvious tradeoff of making the calculations slower. Fixes Ruby Bug #17264 * Use DBLE_FIG for a Float value * Version 2.0.1 Co-authored-by: pavel <pavel.rosicky@easy.cz> Co-authored-by: Jeremy Evans <code@jeremyevans.net> Notes: Merged-By: mrkn <mrkn@ruby-lang.org>
2020-12-14Simplify positioning of '{' and '}'Takashi Kokubun
and fix inconsistent indentation in mjit_compile.inc.erb
2020-12-15add several debug countersKoichi Sasada
add cc_found_in_ccs (renamed from cc_found_ccs), cc_not_found_in_ccs, call0_public, call0_other debug counters to measure more details. also it contains several modification. Notes: Merged: https://github.com/ruby/ruby/pull/3903
2020-12-15fix inline method cache sync bugKoichi Sasada
`cd` is passed to method call functions to method invocation functions, but `cd` can be manipulated by other ractors simultaneously so it contains thread-safety issue. To solve this issue, this patch stores `ci` and found `cc` to `calling` and stops to pass `cd`. Notes: Merged: https://github.com/ruby/ruby/pull/3903
2020-12-14Skip defined check in NODE_OP_ASGN_OR with ivarJohn Hawthorn
Previously we would add code to check if an ivar was defined when using `@foo ||= 123`, which was slower than `@foo || (@foo = 123)` when `@foo` was already defined. Recently 01b7d5acc702df22d306ae95f1a9c3096e63e624 made it so that accessing an undefined variable no longer generates a warning, making the defined check unnecessary and both statements exactly equal. This commit avoids emitting the defined instruction when compiling NODE_OP_ASGN_OR with a NODE_IVAR. Before: $ ruby --dump=insn -e '@foo ||= 123' == disasm: #<ISeq:<main>@-e:1 (1,0)-(1,12)> (catch: FALSE) 0000 putnil ( 1)[Li] 0001 defined instance-variable, :@foo, false 0005 branchunless 14 0007 getinstancevariable :@foo, <is:0> 0010 dup 0011 branchif 20 0013 pop 0014 putobject 123 0016 dup 0017 setinstancevariable :@foo, <is:0> 0020 leave After: $ ./ruby --dump=insn -e '@foo ||= 123' == disasm: #<ISeq:<main>@-e:1 (1,0)-(1,12)> (catch: FALSE) 0000 getinstancevariable :@foo, <is:0> ( 1)[Li] 0003 dup 0004 branchif 13 0006 pop 0007 putobject 123 0009 dup 0010 setinstancevariable :@foo, <is:0> 0013 leave This seems to be about 50% faster in this benchmark: require "benchmark/ips" class Foo def initialize @foo = nil end def test1 @foo ||= 123 end def test2 @foo || (@foo = 123) end end FOO = Foo.new Benchmark.ips do |x| x.report("test1", "FOO.test1") x.report("test2", "FOO.test2") end Before: $ ruby benchmark_ivar.rb Warming up -------------------------------------- test1 1.957M i/100ms test2 3.125M i/100ms Calculating ------------------------------------- test1 20.030M (± 1.7%) i/s - 101.780M in 5.083040s test2 31.227M (± 4.5%) i/s - 156.262M in 5.015936s After: $ ./ruby benchmark_ivar.rb Warming up -------------------------------------- test1 3.205M i/100ms test2 3.197M i/100ms Calculating ------------------------------------- test1 32.066M (± 1.1%) i/s - 163.440M in 5.097581s test2 31.438M (± 4.9%) i/s - 159.860M in 5.098961s Notes: Merged: https://github.com/ruby/ruby/pull/3904
2020-12-15Prepare to release rubygems-3.2.1 and bundler-2.2.1Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3901
2020-12-15ripper: return pushed new token instead of the token listNobuyoshi Nakada
2020-12-14Move docs for Integer#bit_length [ci skip]Alan Wu
2020-12-14Help RDoc find Exception [ci skip]Alan Wu
This was on top of `Init_Exception()`.
2020-12-15NEWS: make links to label [ci skip]Nobuyoshi Nakada
2020-12-15NEWS: make links to other document files [ci skip]Nobuyoshi Nakada
2020-12-14Reword docs for Fiddle::Function#call [ci skip]Alan Wu
I'm using `<code>` instead of `+` since `+` only works when it encloses a single word.
2020-12-14Update dependenciesAlan Wu
2020-12-14Deprecate Random::DEFAULTBenoit Daloze
* Closes [Feature #17351].
2020-12-14Remove references to Random::DEFAULT in the documentationBenoit Daloze
* Random::DEFAULT is no longer a Random instance, and referencing it is more confusing than helpful. Related to [Feature #17351]
2020-12-15NEWS: get rid of unintended link [ci skip]Nobuyoshi Nakada
2020-12-15* 2020-12-15 [ci skip]git
2020-12-15Fix code block indents [ci skip]Nobuyoshi Nakada
RDoc::Markdown requires all block elements nested under bullet list to be indended deeper than the first column of the list.
2020-12-14Fix indent for rdoc's markdownYusuke Endoh
It seems that nested points need four spaces
2020-12-14Merge Psych-3.2.1 from ruby/psychHiroshi SHIBATA
2020-12-14Fixed dst name for digest gemHiroshi SHIBATA
2020-12-14Support shareable_constant_value: literalNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3681
2020-12-14Make shareable_constant_value tri-stateNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3681
2020-12-14shareable_constant_value: is effective only in comment-only lineNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3681
2020-12-14Added continued line caseNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3681
2020-12-14Added false caseNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3681