summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-17Adding `GC.compact` and compacting GC support.tenderlove
This commit adds the new method `GC.compact` and compacting GC support. Please see this issue for caveats: https://bugs.ruby-lang.org/issues/15626 [Feature #15626] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-16Recompile without method inliningk0kubun
if cancel happens in an inlined method. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-16Introduce frame-omitted method inliningk0kubun
for ISeq including only leaf and no-handles_sp insns except leaf. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-16* 2019-04-17svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-16Implement single-level basic method inlining in JITk0kubun
"Basic" means it does not omit a call frame. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-15* 2019-04-16svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-15Mention SNI support in Net::IMAPknu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-15Carve out mjit_compile_bodyk0kubun
This refactoring is needed for implementing inlining later. I've had this since long ago and it has conflicted sometimes. So let me just commit this now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-15Support SNI (Reapplying r67488)knu
This fixes connecting using TLS 1.3 to imap.gmail.com [Fix GH-2077] [Feature #15594] From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-15Import CSV 3.0.9kou
This fixes test failures on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Import CSV 3.0.8kou
This includes performance improvements and backward incompatibility fixes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Drop obsoleted debugging output [ci skip]k0kubun
I confirmed that it's working now in https://dev.azure.com/rubylang/ruby/_build/results?buildId=396&view=logs&jobId=8c5967c9-8e3a-5773-c80c-34c55d5c3051 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14* 2019-04-15svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Fix broken variable propagation on Azurek0kubun
It looks like the old definition was not working as intended... https://dev.azure.com/rubylang/ruby/_build/results?buildId=394 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14OpenStruct: improve error message when passing wrong number of arguments.marcandre
Patch by Lisa Ugray (issue #15515) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Debug bundled-gems allow_failuresk0kubun
it seems not working in https://dev.azure.com/rubylang/ruby/_build/results?buildId=392 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Do not require Ruby 2.4 for baserubyk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Fix missing debug counter namek0kubun
r67550 introduced the typo git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Avoid crash on logging GC-ed ISeqk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Do not execute MJIT copy job when ISeq is GC-edk0kubun
I assumed that ISeq is never GC-ed by `in_jit` + `mjit_mark` on copy job ISeq, but unfortunately I found SEGV on `mjit_copy_job_handler` in which iseq->body was somehow Qnil. And it seems to be fixed by disabling the job when `mjit_free_iseq` is called for the ISeq. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Share optimization cancel handlersk0kubun
$ benchmark-driver benchmark.yml --rbenv='before --jit;after --jit' -v --output=all --repeat-count=12 before --jit: ruby 2.7.0dev (2019-04-14 trunk 67549) +JIT [x86_64-linux] after --jit: ruby 2.7.0dev (2019-04-14 trunk 67549) +JIT [x86_64-linux] last_commit=Share optimization cancel handlers Calculating ------------------------------------- before --jit after --jit Optcarrot Lan_Master.nes 69.55360655447375 74.15329176797863 fps 73.74545038318978 79.60903046141544 75.85637357897092 82.00930075612054 77.10594124022951 82.56228187301674 78.67350527368366 83.37512204205953 79.97235230767613 83.41521927993719 81.03050342478066 84.20227901852776 81.61308297895094 84.73733526226468 82.06805141753206 85.27884867863791 82.46493179193394 85.36558922650367 83.85259832896313 85.39993587223481 84.02325292922997 85.63649355214602 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Prefer uintptr_t over ptrdiff_t for i686k0kubun
as debugged in PR [close https://github.com/ruby/ruby/pull/2130] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Detect send-compatible opt insns automaticallyk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Allow falling back to non-inlined opt_send_without_blockk0kubun
for opt_aref with inline cache to minimize the possibility of JIT cancel. Also opt_aset and opt_mod are added for the targets. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Add debug counter for MJIT stale_unitsk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Do not reset non-increment-only countersk0kubun
to prevernt underflow. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Add RubyVM.reset_debug_counters when RB_DEBUG_COUNTERk0kubun
is defined. It's 0 by default and so it dissappears on actual build. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Add more debug print for random CI failure on osx Traviskazu
see r67347 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Enabled to some bundler examples again.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Skip to failing examples on ruby core repository.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Added rspec dependency for bundler examples.hsbt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Merge Bundler 2.1.0.pre.1 as developed version from upstream.hsbt
https://github.com/bundler/bundler/commit/a53709556b95a914e874b22ed2116a46b0528852 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Revert "Try to set false explicitly"k0kubun
This reverts commit a1b5d20068a9b1859b383b249e510cd33d196e4a. Revert "Revert "Skip recompiling tests on i686 Linux"" This reverts commit 7b88a9207b97b94bc3c3be35084c742296f4aff2. Revert "Simplify matrix for debugging" This reverts commit e85d6c5c5e62dde37c6f6ffdb7125b9008b9ebfa. Sorry, these 3 commits were under debugging in https://github.com/ruby/ruby/pull/2129 but accidentally merged by using `git svn dcommit` instead of `git push` to the topic branch :bow: git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Try to set false explicitlyk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Revert "Skip recompiling tests on i686 Linux"k0kubun
This reverts commit 19513c88d5f923abb7f226520192aef9f3fcc1c7. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Simplify matrix for debuggingk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Fix typo in platform matcherk0kubun
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Unify comment styles across MJIT sourcesk0kubun
I'm writing `//` comments in newer MJIT code after C99 enablement (because I write 1-line comments more often than multi-line comments and `//` requires fewer chars on 1-line) and then they are mixed with `/* */` now. For consistency and to avoid the conversion in future changes, let me finish the rewrite in MJIT-related code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Skip recompiling tests on i686 Linuxk0kubun
somehow they are filing like https://travis-ci.org/ruby/ruby/jobs/519830085 but they are not so fatal. Let me just skip them for now and fix tests afterwards. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14* 2019-04-14svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-14Recompile JIT-ed code without optimizationk0kubun
based on inline cache when JIT cancel happens by that. This feature was in the original MJIT implementation by Vladimir, but on merging MJIT to Ruby it was removed for simplification. This commit adds the functionality again for the following benchmark: https://github.com/benchmark-driver/misc/blob/52f05781f65467baf895bf6ba79d172c9b0826fd/concurrent-map/bench.rb (shown float is duration seconds. shorter is better) * Before ``` $ INHERIT=0 ruby -v bench.rb ruby 2.7.0dev (2019-04-13 trunk 67523) [x86_64-linux] -- 1.6507579649914987 $ INHERIT=0 ruby -v --jit bench.rb ruby 2.7.0dev (2019-04-13 trunk 67523) +JIT [x86_64-linux] -- 1.5091587850474752 $ INHERIT=1 ruby -v bench.rb ruby 2.7.0dev (2019-04-13 trunk 67523) [x86_64-linux] -- 1.6124781150138006 $ INHERIT=1 ruby --jit -v bench.rb ruby 2.7.0dev (2019-04-13 trunk 67523) +JIT [x86_64-linux] -- 1.7495657080435194 # <-- this ``` * After ``` $ INHERIT=0 ruby -v bench.rb ruby 2.7.0dev (2019-04-13 trunk 67523) [x86_64-linux] last_commit=Recompile JIT-ed code without optimization -- 1.653559010999743 $ INHERIT=0 ruby --jit -v bench.rb ruby 2.7.0dev (2019-04-13 trunk 67523) +JIT [x86_64-linux] last_commit=Recompile JIT-ed code without optimization -- 1.4738391840364784 $ INHERIT=1 ruby -v bench.rb ruby 2.7.0dev (2019-04-13 trunk 67523) [x86_64-linux] last_commit=Recompile JIT-ed code without optimization -- 1.645227018976584 $ INHERIT=1 ruby --jit -v bench.rb ruby 2.7.0dev (2019-04-13 trunk 67523) +JIT [x86_64-linux] last_commit=Recompile JIT-ed code without optimization -- 1.523708809982054 # <-- this ``` git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-13Revert "GET_CFP and ec->cfp are different"k0kubun
This reverts commit 30f71f4768e0babc60f5be6ca235d2c40268bc27. I've also overlooked we're doing RESTORE_REGS()... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-13GET_CFP and ec->cfp are differentk0kubun
When reviewing r66565, I overlooked that `GET_ISEQ()` and `GET_EP()` are NOT `ec->cfp->iseq` and `ec->cfp->ep` but `reg_cfp->iseq` and `reg_cfp->ep`. `vm_push_frame` updates `ec->cfp` and in this case we want to check the callee's cfp and so `ec->cfp` should be checked instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-13* 2019-04-13svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67521 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-13* expand tabs.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-13Proc.new: change deprecation warning for clarity (issue #15539)marcandre
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-12* 2019-04-12svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-12[DOC] Add `ifnone` example to `find` documentation [ci skip]nagachika
[Fix GH-2110] From: OKURA Masafumi <masafumi.o1988@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-11* 2019-04-11svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-04-11Get rid of a magic numbernobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e