summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-12-16Fix a typo [ci skip]Kazuhiro NISHIYAMA
2020-12-16Ripper: Pass callback result to alias_error as well as other errorsNobuyoshi Nakada
[Bug #17345]
2020-12-16Ripper: Fixed erred token on wrong alias [Bug #17345]Nobuyoshi Nakada
2020-12-16strip trailing spaces [ci skip]Nobuyoshi Nakada
2020-12-16Ractor#receive_if to receive only matched messagesKoichi Sasada
Instead of Ractor.receive, Ractor.receive_if can provide a pattern by a block and you can choose the receiving message. [Feature #17378] Notes: Merged: https://github.com/ruby/ruby/pull/3862
2020-12-16Made LARGEFILE_SUPPORT mandatoryNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3914
2020-12-16Removed stale declarationNobuyoshi Nakada
rb_w32_pipe_exec was removed in 1.9.3, at commit:7ac32d7a16734ea66de15319bcff2fd429abae7f. Notes: Merged: https://github.com/ruby/ruby/pull/3914
2020-12-16Ignore failure on unsupported fcntl to drop non-blocking modeNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3913
2020-12-16Different names instead of `ulimit`Nobuyoshi Nakada
2020-12-16Lazily move units from active_units to stale_unitsTakashi Kokubun
to avoid SEGV like http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3289588 by a race condition between mjit_recompile and compation around active_units
2020-12-16fix Ractor#receive by other ractorsKoichi Sasada
Ractor#receive can be called by the another Ractors using send, so making this method completely same as `Ractor.receive` even if the ractor is specified by the receiver (OO term :p).
2020-12-16test/ruby/test_enum.rb: Avoid "warning: assigned but unused variable"Yusuke Endoh
2020-12-16vm debug: dump registers on ARM too. (#3900)David CARLIER
* vm debug: dump registers on ARM too. Notes: Merged-By: nurse <naruse@airemix.jp>
2020-12-16tuning vm_setivar_slowpath() more.Koichi Sasada
specify inline/noinline code for is_attr condition.
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.