aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * 2019-03-30svn2019-03-291-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mjit_worker.c: explicitly ignore the unused result of RB_DEBUG_COUNTER_INC_IFmame2019-03-291-4/+4
| | | | | | By adding `(void)`. This makes Coverity Scan happy. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add mjit_compile_failures debug counterk0kubun2019-03-292-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby tool/update-deps --fixk0kubun2019-03-291-0/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Prevent mjit length counters from being 0k0kubun2019-03-292-6/+10
| | | | | | | It seems that `debug_counter_show_results_at_exit` could be called earlier than `mjit_finish` sometimes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add debug counters for MJIT cancelk0kubun2019-03-297-1/+16
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add debug counter for rb_mjit_unit_listk0kubun2019-03-292-0/+11
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix a typo [ci skip]kazu2019-03-291-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Debug make install instead of makek0kubun2019-03-291-2/+2
| | | | | | | Actually what has randomly failed was `make install`: https://travis-ci.org/ruby/ruby/jobs/512988177 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add debug counters for MJITk0kubun2019-03-292-0/+16
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Elaborate more on some debug counters [ci skip]k0kubun2019-03-291-7/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add some more buffer for timeout checkk0kubun2019-03-291-1/+1
| | | | | | | This spec is unstable on our CI environment: https://gist.github.com/ko1/efa58acf4cd1d7b5bf1f63881537afe8 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * expand tabs.svn2019-03-291-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use GET_CFP() instead of access reg_cfp directly.ko12019-03-291-3/+3
| | | | | | | GET_CFP() macro contains performance counter logic. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: [DOC] fix markups [ci skip]nobu2019-03-291-7/+8
| | | | | | * process.c (rb_f_spawn): fix markups as rdoc. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* process.c: [DOC] fix markups [ci skip]nobu2019-03-291-3/+3
| | | | | | | * process.c (rb_clock_getres): fix code markups, as `+` can not include parentheses. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* strip trailing spaces [ci skip]nobu2019-03-291-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix broken retry logick0kubun2019-03-291-7/+5
| | | | | | | previous retry logic did not work https://dev.azure.com/rubylang/ruby/_build/results?buildId=266 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Guard spec against msys2 shellk0kubun2019-03-281-2/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [bug:8215] seems to be still broken on mswink0kubun2019-03-281-0/+1
| | | | | | | | | | | | | This test fails on AppVeyor mswin so often: https://ci.appveyor.com/project/ruby/ruby/builds/23427134/job/rowv0dohwni0xa37 https://ci.appveyor.com/project/ruby/ruby/builds/22970385/job/qdkqus13bhnyyfxf https://ci.appveyor.com/project/ruby/ruby/builds/22970385/job/o4k8keg95ltcryoe Maybe it's related to https://bugs.ruby-lang.org/issues/15569. As this test is harmful for mswin CI reliability, let me skip this at least until somebody fixes the above issue. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2019-03-29svn2019-03-281-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2019-03-280-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Do not fail with --disable-jit-supportk0kubun2019-03-281-2/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update to ruby/spec@e81b3cderegon2019-03-2853-106/+932
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* NEWS: Fix a typo [ci skip]kazu2019-03-281-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Note r67356 in NEWS [ci skip]k0kubun2019-03-281-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: show error line separatelynobu2019-03-281-13/+9
| | | | | | | * parse.y: show compile error and the error line separately, instead of building the error message by snprintf then yyerror. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] fix missing paren [ci skip]nobu2019-03-281-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* erb.rb: prohibit marshaling [EXPERIMENTAL]nobu2019-03-282-0/+17
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] Fix method references to Method instance methodsnobu2019-03-282-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] fix markups [ci skip]nobu2019-03-2812-197/+186
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2019-03-28svn2019-03-271-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix typoskazu2019-03-273-14/+14
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Skip EBADF spec in MJIT test for nowk0kubun2019-03-271-11/+13
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add debug print for random CI failure on osx Travisk0kubun2019-03-271-1/+14
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2019-03-27svn2019-03-271-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge fileutils-1.2.0 from ruby/fileutils.hsbt2019-03-272-12/+18
| | | | | | | | | | | It includes the following updates: * https://github.com/ruby/fileutils/pull/26 * https://github.com/ruby/fileutils/pull/27 * https://github.com/ruby/fileutils/pull/29 * https://github.com/ruby/fileutils/pull/34 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Prefer using vm_base_ptr rather than cfp->bpk0kubun2019-03-258-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in MJIT implementation. This allows us to drop cfp->bp by just modifying vm_base_ptr in the future. No performance impact: $ benchmark-driver benchmark.yml --rbenv='before::before --disable-gems --jit;bp_::after --disable-gems --jit;vm_env_ptr::ruby-svn --disable-gems --jit' -v --output=all --repeat-count=12 before: ruby 2.7.0dev (2019-03-24 trunk 67341) +JIT [x86_64-linux] bp_: ruby 2.7.0dev (2019-03-24 trunk 67342) +JIT [x86_64-linux] vm_env_ptr: ruby 2.7.0dev (2019-03-25 trunk 67343) +JIT [x86_64-linux] last_commit=Prefer using vm_base_ptr rather than cfp->bp Calculating ------------------------------------- before bp_ vm_env_ptr Optcarrot Lan_Master.nes 77.15059205092646 70.18873044267853 69.62171387083328 fps 78.75767783870441 77.49867689173411 75.43496867709587 79.60102690369321 77.78037687683523 79.36688927929428 80.25144236638835 78.74729849101701 80.42363742291455 82.22375417165489 80.44265482494045 80.90287243299306 82.29166786292619 80.51740049420938 81.81153053252902 83.35386925305345 80.91054205210609 81.93562989125176 83.39770634366975 81.34550754145043 82.24544621470430 83.88523450309972 81.60698516017347 82.76801860263230 84.17553130135879 82.69615943446324 83.02530407910871 84.42132328119858 83.00969158037691 83.19968539409922 84.60731429793329 83.32703363300098 83.81352746019631 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2019-03-25svn2019-03-251-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* use cfp->bp more.ko12019-03-258-12/+16
| | | | | | | | | | | | | | cfp->bp was (re-)introduced by Kokubun san, but VM doesn't use it because I (ko1) want to remove it in a future. But using it make leave instruction fast because of sp consisntency check. So now VM uses cfp->bp. To use cfp->bp, I checked the value and I found that it is not a "initial value of sp" but a "initial value of ep". Fix this problem and fix all bp references (this is why bp is renamed to bp_). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2019-03-24svn2019-03-241-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update power_assert to 1.1.4ktsj2019-03-242-3/+1
| | | | | | This update fixes a failure of test-bundled-gems, so we revert r67275. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2019-03-23svn2019-03-231-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* file.c: raise NotImplementedError instread of Errno::ENOSYSglass2019-03-231-1/+11
| | | | | | [Misc #15615] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] fix markups [ci skip]nobu2019-03-2215-482/+450
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add debug counters to count call cache fastpath.ko12019-03-223-0/+53
| | | | | | | | | Add counters to count ccf (call cache fastpath) usage. These counters will help which kind of method dispatch is important to optimize. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2019-03-22svn2019-03-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * expand tabs.svn2019-03-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* optimize method dispatch for lead/kw params.ko12019-03-221-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | similar idea to r67315, provide the following optimization for method dispatch with lead and kw parameters. (1) add a special branch to check passing kw arguments to a method which has lead and kw parameters. ex) def foo(x, k:1); end; foo(0, k:1) (2) add a special branch to check passing no-kw arguments to a method which has lead and kw parameters. ex) def foo(x, k:1); end; foo(0) For (1) and (2) cases, provide special dispatchers. For (2) case, this patch only use the special dispatcher if all default kw parameters are literal values (nil, 1, and so on. In other case, kw->default_values does not contains Qundef) (and no required kw parameters becaseu they don't pass any keyword parameters). Passing keyword arguments with a hash object is not a scope of this patch. Without this patch, (1) and (2) cases use `setup_parameters_complex()`. Especially, (2) seems frequent case for methods which extend a normal usecase with keyword parameters (like: `exception: true`). We can measure the performance with benchmark-driver: With methods: def kw k1:1, k2:2; end def m; end With the following binaries: clean-miniruby: unmodified trunk. opt_miniruby1: use special branches for lead/kw parameters. opt_miniruby2: use special dispatchers for lead/kw parameters. opt_cc_miniruby: apply step (2). Result with benchmark-driver: m opt_miniruby2: 75222278.0 i/s clean-miniruby: 73177896.5 i/s - 1.03x slower opt_miniruby1: 62466783.3 i/s - 1.20x slower kw opt_miniruby2: 52044504.4 i/s opt_miniruby1: 29142025.7 i/s - 1.79x slower clean-miniruby: 20515235.4 i/s - 2.54x slower kw k1: 10 opt_miniruby2: 26492219.5 i/s opt_miniruby1: 25409484.9 i/s - 1.04x slower clean-miniruby: 20235113.7 i/s - 1.31x slower kw k1: 10, k2: 20 opt_miniruby1: 24159534.0 i/s opt_miniruby2: 23470527.5 i/s - 1.03x slower clean-miniruby: 17822621.5 i/s - 1.36x slower git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c: fix Dir.glob starts with braceshirosaki2019-03-212-0/+37
| | | | | | | | * dir.c (ruby_glob0): expand braces if a glob pattern starts with brace. [ruby-core:91728] [Bug #15649] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e