Граф коммитов

2035 Коммитов

Автор SHA1 Сообщение Дата
David Rodríguez 735bd501e7 [rubygems/rubygems] Bump compact_index to 0.12.1
https://github.com/rubygems/rubygems/commit/08374d0e4a
2020-06-05 07:32:42 +09:00
Nobuyoshi Nakada 2b7454eb92
Update leaked-globals [Bug #16934]
* match uppercase types which would be global, other than [BDT]
* ignore `RUBY_` prefixed symbols
2020-06-04 17:00:52 +09:00
Nobuyoshi Nakada eb2b7fca43
Fixed up 56ca006784
Run lldb just before sending ABRT or KILL signal.  Some tests
terminate child processes by TERM signal intentionally.
2020-06-03 17:28:15 +09:00
Koichi Sasada 56ca006784 run lldb to investigate the stuck process.
Before sending signals (ABRT, KILL), use lldb to show the
backtrace of a stuck process.

This commit also reverts recent changes for terminate().
2020-06-02 17:21:03 +09:00
Koichi Sasada 7b9527ce74 add more 2 sec.
After sending SEGV signal, but no response. Try to add 2 more
seconds. If we can not have a detailed log, we need to use
gdb/lldb to show the backtrace.
2020-06-01 17:03:27 +09:00
Koichi Sasada 3591703b31 send SEGV to show backtrace.
send SEGV to terminate the remaining process before sending
ABRT and KILL to show the backtrace.
2020-06-01 10:15:03 +09:00
Nobuyoshi Nakada 0d1f0cd9cc
runnable.rb: ignore broken symlink error on Windows [ci skip] 2020-05-30 01:15:23 +09:00
Takashi Kokubun 0bd025ad69
Add a debug_counter for JIT cancel on leave 2020-05-28 22:45:35 -07:00
Jeremy Evans 07b2102a88 Remove Ruby <2.2 support from tool/lib/vcs.rb
BASERUBY now requires at least Ruby 2.2, so there is no point
trying to support older ruby versions here.
2020-05-28 07:57:29 -07:00
Yusuke Endoh f186f2d01d Use Module#name instead of #inspect
Coverage measurement had failed since 7d5da30c9e
https://github.com/ruby/actions/runs/708557030?check_suite_focus=true
2020-05-28 14:39:53 +09:00
Jeremy Evans e0b40ef5d8 Don't convert bundler man pages from mdoc to man
These man pages are already in man format and assuming they are
mdoc format breaks things.

Fixes [Bug #16823]
2020-05-27 07:47:50 +09:00
Yusuke Endoh 962c302a1a test/drb/test_drbssl.rb: skip LeakChecker as openssl keeps /dev/random
and /dev/urandom intentionally.  OpenSSL::PKey::RSA.new opens the two
random generators and keeps the file descriptors.

93f99b681a/crypto/rand/rand_unix.c (L674)

They are detected by the LeakChecker as fd leak, but it is intentional.

http://rubyci.s3.amazonaws.com/graviton2/ruby-master/log/20200526T160005Z.log.html.gz
```
[  597/20199] DRbTests::TestDRbSSLAry#test_01 = 0.29 s
Leaked file descriptor: DRbTests::TestDRbSSLAry#test_01: 8 #<File::Stat dev=0x6, ino=11, mode=020666, nlink=1, uid=0, gid=0, rdev=0x109, size=0, blksize=4096, blocks=0, atime=2020-05-23 14:45:13.751999995 +0000, mtime=2020-05-23 14:45:13.751999995 +0000, ctime=2020-05-23 14:45:13.751999995 +0000>
Leaked file descriptor: DRbTests::TestDRbSSLAry#test_01: 9 #<File::Stat dev=0x6, ino=10, mode=020666, nlink=1, uid=0, gid=0, rdev=0x108, size=0, blksize=4096, blocks=0, atime=2020-05-23 14:45:13.755999995 +0000, mtime=2020-05-23 14:45:13.755999995 +0000, ctime=2020-05-23 14:45:13.755999995 +0000>
```
2020-05-27 02:07:38 +09:00
Nobuyoshi Nakada 135c6a4b99
fiddle: need to update configure after updating config tools 2020-05-27 00:30:59 +09:00
Nobuyoshi Nakada 0b2fc4cf37
extlibs.rb: make symlink only if the target exists 2020-05-23 14:56:13 +09:00
Hiroshi SHIBATA 36f29b598a
Fixed wrong usage rm_rf for cleanup the default gems in sync tool 2020-05-23 07:27:42 +09:00
Nobuyoshi Nakada 2480ef904c
pure_parser.rb: get rid of an error at localed messages 2020-05-20 10:52:32 +09:00
Nobuyoshi Nakada 79292b3088
Make builtin loader sources by Ripper 2020-05-19 12:54:51 +09:00
Takashi Kokubun b16a2aa938
Reduce code size for rb_class_of
by inlining only hot path.

=== mame/optcarrot ===

$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark.yml --repeat-count=24 --output=all
before --jit: ruby 2.8.0dev (2020-05-18T05:21:31Z master 0e5a58b6bf) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-05-18T06:12:04Z master 0e3d71a8d1) +JIT [x86_64-linux]
last_commit=Reduce code size for rb_class_of
Calculating -------------------------------------
                                 before --jit           after --jit
Optcarrot Lan_Master.nes    71.62880463568773     70.95730063273503 fps
                            71.73973684273152     71.98447841929851
                            75.03923801841310     75.54262519509039
                            75.16300287174957     77.64029272984344
                            75.16834828625935     78.67861469580785
                            75.17670723726911     78.81879353707393
                            75.67637908020630     79.18188850392886
                            76.19843953215396     79.66484891814478
                            77.28166716118808     79.80278072861037
                            77.38509903325165     80.05859292679696
                            78.12693418455953     80.34624804808006
                            78.73654441746730     80.66326571254345
                            79.25387513454415     80.69760605740196
                            79.44137881689524     81.32053489212245
                            79.50497657368358     81.50250852553751
                            79.62401328582868     82.27544931834611
                            79.79178811723664     82.67455264522741
                            81.20275352937418     82.93857260493297
                            81.57027048640776     83.15019118788184
                            81.63373188649095     83.20728816044721
                            81.93420437766426     83.25027576772972
                            82.05716136357167     83.27072145898173
                            82.21070805525066     83.36008265822194
                            82.56924063784872     83.36112268888493

=== benchmark-driver/sinatra ===

[rps]
before: 13143.49 rps
after: 13505.70 rps

[inlined rb_class_of size]
before: 11.5K
after: 3.8K

(calculated by `dwarftree --die inlined_subroutine --flat --merge --show-size`)
2020-05-17 23:38:19 -07:00
Takashi Kokubun 0e5a58b6bf
Mark some JIT-ed functions as COLDFUNC
Put some functions which are unlikely to be called on JIT in
.text.unlikely section to improve hot code's locality.
2020-05-17 22:21:31 -07:00
Nobuyoshi Nakada 968d6df49f
Added --test-order=nosort option
Run tests in the order given in the command line.
2020-05-17 16:34:06 +09:00
Nobuyoshi Nakada 8c3a60df2a
leakchecker.rb: show test name
When multiple autoclose IO objects are leaked too.
2020-05-16 17:35:09 +09:00
Nobuyoshi Nakada 336119dfc5
extlibs.rb: fixed Downloader.cache_file call and return value
`cache_dir` is an optinal argument but not a keyword argument, and
the return value is a `Pathname`.
2020-05-14 17:19:39 +09:00
Takashi Kokubun fcd2576290
Stop always inlining not-optimized get/setivar
As we have the optimization in _mjit_compile_ivar.erb, we don't use
these functions if we successfully optimize ivars. Therefore it's
consuming code size where we can't optimize it well.

To decrease code size, we'd better avoid inlining them.

```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark.yml --repeat-count=12 --output=all
before --jit: ruby 2.8.0dev (2020-05-13T04:49:21Z master 61d451d6ce) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-05-13T05:46:59Z master a072d323db) +JIT [x86_64-linux]
Calculating -------------------------------------
                                 before --jit           after --jit
Optcarrot Lan_Master.nes     69.8567095356444      73.0360609399857 fps
                             70.3283101279035      74.6106251902062
                             72.9135395729567      75.2797344839106
                             76.6944690546044      77.5705757485036
                             77.0027971817715      78.2269524040059
                             78.5069033659736      78.4457471014131
                             80.1873218604913      80.1273811685818
                             81.3079566400696      81.7148593303302
                             81.7285827817226      81.7637234555871
                             81.7657097839637      82.4520295422720
                             81.8310114206406      82.7532354379759
                             81.9886488857863      82.8358739858206
```
2020-05-12 22:50:05 -07:00
Hiroshi SHIBATA 5b634afe4c Added test_gems.rb for setup dependencies 2020-05-13 07:54:37 +09:00
Nobuyoshi Nakada 3150b97d32 extlibs.rb: links in extracted directory
Allow to create symbolic links (if available) to share same or
updated files.
2020-05-12 15:57:47 +09:00
Nobuyoshi Nakada d1748484e8 extlibs.rb: added variable references
Reduce duplicate parts such as package name and version numbers.
2020-05-12 15:57:47 +09:00
卜部昌平 4fca592e8c delete mk_builtin_binary.rb
To generate what is necessary via generic_erb.rb instead.
2020-05-10 16:51:10 +09:00
卜部昌平 191cfcc407 delete mk_call_iseq_optimized.rb
To generate what is necessary via generic_erb.rb instead.
2020-05-10 16:51:10 +09:00
Nobuyoshi Nakada 1181edd54c
rbuninstall.rb: show paths without destdir as well as rbinstall.rb 2020-05-09 13:45:50 +09:00
Nobuyoshi Nakada e88bb6a2f7
rbuninstall.rb: get rid of errors when prefix ends with "/." 2020-05-09 01:43:53 +09:00
Nobuyoshi Nakada 8830d60dae
rbuninstall.rb: print output record separator instead of $\ 2020-05-09 01:40:40 +09:00
Nobuyoshi Nakada 3333d02357
rbinstall.rb: get rid of installing duplicate files
Should not overwrite ext/rubyvm/lib/forwardable/impl.rb by
lib/forwardable/impl.rb.
2020-05-09 01:22:16 +09:00
Nobuyoshi Nakada cc3352cc41
rbinstall.rb: record bundled gem files 2020-05-09 00:55:55 +09:00
Hiroshi SHIBATA 1fe2b7f41c Workaround for Minitest5 2020-05-08 07:38:50 +09:00
Kazuhiro NISHIYAMA 22b1e824d7
Check encodings of STDIN,STDOUT,STDERR too 2020-05-08 00:12:48 +09:00
Takashi Kokubun a5073c053f
Always correct sp on leave cancel
Even if local stack optimization is not used and values are written to
VM stack, the stack pointer itself may not be moved properly. So this
should be always moved on JIT cancellation.

By the way it's hard to write a test for this because if we try to
generate an interrupt, it will be a method call and it consumes the
interrupt by itself on popping a frame.
2020-05-06 20:26:03 -07:00
Nobuyoshi Nakada 545d2ab7d2
leakchecker.rb: try `lsof` 2020-05-07 02:58:28 +09:00
Nobuyoshi Nakada de3f725978
Makes nil-safe 2020-05-06 14:09:03 +09:00
Nobuyoshi Nakada b247ac086e
Ignore FDs kept by system library
`getaddrinfo` on macOS seems keeping FDs to query host names
internally.
2020-05-06 13:47:09 +09:00
Nobuyoshi Nakada 039a8ef786
leakchecker.rb: search /dev/fd too
It is more popular than /proc/self/fd.
2020-05-06 10:09:29 +09:00
Nobuyoshi Nakada f0b5629c8c
envutil.rb: Also alias to #name 2020-05-05 13:53:44 +09:00
Nobuyoshi Nakada 5c2508060b
Bison 3.5.91 now defaults parse.error to "simple" 2020-05-04 18:10:02 +09:00
Nobuyoshi Nakada 47720e2255
Bison 3.59.1 folds yydestruct function header 2020-05-04 13:35:38 +09:00
Takashi Kokubun f5ddbba9a2
Include unit id in a function name of an inlined method
I'm trying to make it possible to include all JIT-ed code in a single C
file. This is needed to guarantee uniqueness of all function names
2020-04-30 23:08:13 -07:00
Nobuyoshi Nakada 7c88bb3eba
fetch-bundled_gems.rb: Fixed the position of -c 2020-04-25 13:56:24 +09:00
Nobuyoshi Nakada f12f9f511d
fetch-bundled_gems.rb: Quiet detached HEAD advice 2020-04-25 13:16:40 +09:00
Hiroshi SHIBATA c2700379ad
`git co` is alias of `git checkout` 2020-04-25 12:15:01 +09:00
Nobuyoshi Nakada d1f50b9872
Initialize the class variable for Minitest::Unit.current_repeat_count 2020-04-23 10:44:27 +09:00
Nobuyoshi Nakada 2e87488d13
Expand retrying test file names to realpath
As well as worker processes do in Test::Unit::Worker#run.
2020-04-23 10:25:09 +09:00
Nobuyoshi Nakada 3cd3a507e3
[sync_default_gems.rb] Force reset conflict files to be ignored
[ci skip]
2020-04-20 21:27:02 +09:00
Nobuyoshi Nakada aeb9d11594
Revert irrelevant change [ci skip] 2020-04-20 21:26:55 +09:00
Nobuyoshi Nakada e571bb8436
Removed phony atomic operations for void* and VALUE 2020-04-20 21:14:04 +09:00
Takashi Kokubun 04e56958e6
Make sure newarraykwsplat accesses a correct index
on stack when local_stack_p is enabled.

This fixes `RB_FL_TEST_RAW:"RB_FL_ABLE(obj)"` assertion failure
on power_assert's test with JIT enabled.
2020-04-18 01:41:50 -07:00
Nobuyoshi Nakada 3152977b31
Rescue EPIPE in _report
Instead of letting callers rescue the error always.
2020-04-17 14:25:20 +09:00
Nobuyoshi Nakada 3cca0d1958 core_assertions.rb: fixed fd leak at timeout 2020-04-17 00:52:29 +09:00
Nobuyoshi Nakada e231f8e8a8 envutil.rb: not try to close pipes twice 2020-04-17 00:52:29 +09:00
Takashi Kokubun 310ef9f40b
Make vm_call_cfunc_with_frame a fastpath (#3027)
when there's no need to call CALLER_SETUP_ARG and CALLER_REMOVE_EMPTY_KW_SPLAT
(i.e. !rb_splat_or_kwargs_p(ci) && !calling->kw_splat).

Micro benchmark:
```
$ benchmark-driver -v --rbenv 'before;after' benchmark/vm_send_cfunc.yml --repeat-count=4
before: ruby 2.8.0dev (2020-04-13T23:45:05Z master b9d3ceee8f) [x86_64-linux]
after: ruby 2.8.0dev (2020-04-14T00:48:52Z no-splat-fastpath 418d363722) [x86_64-linux]
Calculating -------------------------------------
                         before       after
       vm_send_cfunc    69.585M     88.724M i/s -    100.000M times in 1.437097s 1.127096s

Comparison:
                    vm_send_cfunc
               after:  88723605.2 i/s
              before:  69584737.1 i/s - 1.28x  slower
```

Optcarrot:
```
$ benchmark-driver -v --rbenv 'before;after' benchmark.yml --repeat-count=12 --output=all
before: ruby 2.8.0dev (2020-04-13T23:45:05Z master b9d3ceee8f) [x86_64-linux]
after: ruby 2.8.0dev (2020-04-14T00:48:52Z no-splat-fastpath 418d363722) [x86_64-linux]
Calculating -------------------------------------
                                       before                 after
Optcarrot Lan_Master.nes    50.76119601545175     42.73858236484051 fps
                            50.76388649761503     51.04211379912850
                            50.80930672252514     51.39455790755538
                            50.90236000778749     51.75656936556145
                            51.01744746340430     51.86875277356489
                            51.06495279015112     51.88692482485558
                            51.07785337168974     51.93429603190578
                            51.20163525187862     51.95768145071314
                            51.34671771913112     52.45577266040274
                            51.35918340835583     52.53163888762858
                            51.46641337418146     52.62172484121034
                            51.50835463462257     52.85064021113239
```
2020-04-13 20:32:59 -07:00
Takashi Kokubun b9d3ceee8f
Unwrap vm_call_cfunc indirection on JIT
for VM_METHOD_TYPE_CFUNC.

This has been known to decrease optcarrot fps:

```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark.yml --repeat-count=24 --output=all
before --jit: ruby 2.8.0dev (2020-04-13T16:25:13Z master fb40495cd9) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-04-13T23:23:11Z mjit-inline-c bdcd06d159) +JIT [x86_64-linux]
Calculating -------------------------------------
                                 before --jit           after --jit
Optcarrot Lan_Master.nes    66.38132676191719     67.41369177299630 fps
                            69.42728743772243     68.90327567263054
                            72.16028300263211     69.62605130880686
                            72.46631319102777     70.48818243767207
                            73.37078877002490     70.79522887347566
                            73.69422431217367     70.99021920193194
                            74.01471487018695     74.69931965402584
                            75.48685183295630     74.86714575949016
                            75.54445264507932     75.97864419721677
                            77.28089738169756     76.48908637569581
                            78.04183397891302     76.54320932488021
                            78.36807984096562     76.59407262898067
                            78.92898762543574     77.31316743361343
                            78.93576483233765     77.97153484180480
                            79.13754917503078     77.98478782102325
                            79.62648945850653     78.02263322726446
                            79.86334213878064     78.26333724045934
                            80.05100635898518     78.60056756355614
                            80.26186843769584     78.91082645644468
                            80.34205717020330     79.01226659142263
                            80.62286066044338     79.32733939423721
                            80.95883033058557     79.63793060542024
                            80.97376819251613     79.73108936622778
                            81.23050939202896     80.18280109433088
```

and I deleted this capability in an early stage of YARV-MJIT development:
0ab130feee

I suspect either of the following things could be the cause:

* Directly calling vm_call_cfunc requires more optimization effort in GCC,
  resulting in 30ms-ish compilation time increase for such methods and
  decreasing the number of methods compiled in a benchmarked period.

* Code size increase => icache miss hit

These hypotheses could be verified by some methodologies. However, I'd
like to introduce this regardless of the result because this blocks
inlining C method's definition.

I may revert this commit when I give up to implement inlining C method
definition, which requires this change.

Microbenchmark-wise, this gives slight performance improvement:

```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark/mjit_send_cfunc.yml --repeat-count=4
before --jit: ruby 2.8.0dev (2020-04-13T16:25:13Z master fb40495cd9) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-04-13T23:23:11Z mjit-inline-c bdcd06d159) +JIT [x86_64-linux]
Calculating -------------------------------------
                     before --jit  after --jit
     mjit_send_cfunc      41.961M      56.489M i/s -    100.000M times in 2.383143s 1.770244s

Comparison:
                  mjit_send_cfunc
         after --jit:  56489372.5 i/s
        before --jit:  41961388.1 i/s - 1.35x  slower
```
2020-04-13 16:45:05 -07:00
Hiroshi SHIBATA 55a5a4bc03
Fixed to initialize ruby-core repository when it has no master branch 2020-04-09 18:23:49 +09:00
Hiroshi SHIBATA 7a26021d1d
Support one repository for updating the latest commits 2020-04-09 16:34:25 +09:00
卜部昌平 9e6e39c351
Merge pull request #2991 from shyouhei/ruby.h
Split ruby.h
2020-04-08 13:28:13 +09:00
Takashi Kokubun b66d7d9be5
Remove unused variable stack_size
_mjit_compile_send.erb doesn't use _mjit_compile_insn_body.erb
2020-04-06 02:00:23 -07:00
Takashi Kokubun 3194cd36e2
Delay definition of pc_moved_p
to unify the duplicated declarations and to make sure it's not used
until set properly.

Also changed it from legacy TRUE/FALSE to stdbool.
2020-04-06 01:55:18 -07:00
Takashi Kokubun 928bb17770
Fix -Wshorten-64-to-32 in 4f802828f4 2020-04-06 01:50:12 -07:00
Takashi Kokubun 4f802828f4
Refactor `argc` in mjit_compile_send
using sp_inc_of_sendish for consistency and to make it easier to
understand
2020-04-06 01:42:32 -07:00
Takashi Kokubun 1a33845215
Update outdated comments in mjit_compile_send
and simplify `v` variable references a little.

There's no CALL_METHOD anymore, and the original code lives in
vm_sendish instead of insns.def now.
2020-04-06 01:31:11 -07:00
Takashi Kokubun f984975c4d
Collapse `if` conditions to decrease indentation
in mjit_compile_send to clarify it's not that deeply branched.
2020-04-06 00:45:43 -07:00
Nobuyoshi Nakada ec03d13742
Fallback if Pathname#relative_path_from fails
It can fail due to different prefixes, e.g., drive letters or UNC
paths on DOSish platform.
2020-04-05 11:58:31 +09:00
Nobuyoshi Nakada df275179bd
Revert "Moved aclocal.m4 to macro directory"
This reverts commit 4a6571dbc1,
because chkbuild does not follow.
2020-04-05 11:53:07 +09:00
Nobuyoshi Nakada 4a6571dbc1 Moved aclocal.m4 to macro directory 2020-04-05 09:26:57 +09:00
Nobuyoshi Nakada 11fa1dcc23
Also scan `rescue` clauses 2020-04-04 12:38:00 +09:00
Kazuhiro NISHIYAMA f70ca6a1f9
Remove unnecessary escape 2020-04-04 00:35:51 +09:00
Nobuyoshi Nakada 691a15ebc7
[sync_default_gems.rb] Reset files to be ignored
[ci skip]
2020-04-03 10:49:45 +09:00
Nobuyoshi Nakada 668c97b72c
[sync_default_gems.rb] Ignore files under .github directory
[ci skip]
2020-04-03 10:49:38 +09:00
Nobuyoshi Nakada 3df764721a
[sync_default_gems.rb] Use block form `IO.popen` to reap zombies
[ci skip]
2020-04-03 10:49:28 +09:00
Takashi Kokubun 151f8be40d
Make JIT-ed leave insn leaf
to eliminate sp / pc moves by cancelling JIT execution on interrupts.

$ benchmark-driver benchmark.yml -v --rbenv 'before --jit;after --jit' --repeat-count=12 --output=all
before --jit: ruby 2.8.0dev (2020-04-01T03:48:56Z master 5a81562dfe) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-04-01T04:58:01Z master 39beb26a27) +JIT [x86_64-linux]
Calculating -------------------------------------
                                 before --jit           after --jit
Optcarrot Lan_Master.nes    75.06409603894944     76.06422026555558 fps
                            75.12025067279242     78.48161731616810
                            77.42020273492177     79.78958240950033
                            79.07253675128945     79.88645902325614
                            79.99179109732327     80.33743931749331
                            80.07633091008627     80.53790081529166
                            80.15450942667547     80.99048270668010
                            80.48372803283709     81.70497146081003
                            80.57410149187352     82.79494539467382
                            81.80449157081202     82.85797792223954
                            82.24629397834902     83.00603891515506
                            82.63708148686703     83.23221006969828

$ benchmark-driver -v --rbenv 'before;before --jit;after --jit' benchmark/mjit_leave.yml --repeat-count=4
before: ruby 2.8.0dev (2020-04-01T03:48:56Z master 5a81562dfe) [x86_64-linux]
before --jit: ruby 2.8.0dev (2020-04-01T03:48:56Z master 5a81562dfe) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-04-01T04:58:01Z master 39beb26a27) +JIT [x86_64-linux]
Calculating -------------------------------------
                         before  before --jit  after --jit
          mjit_leave   106.656M       82.786M      91.635M i/s -    200.000M times in 1.875183s 2.415881s 2.182569s

Comparison:
                       mjit_leave
              before: 106656239.9 i/s
         after --jit:  91635143.7 i/s - 1.16x  slower
        before --jit:  82785537.2 i/s - 1.29x  slower
2020-03-31 22:10:16 -07:00
Takashi Kokubun b736ea63bd
Optimize exivar access on JIT-ed getivar
JIT support of dd723771c1.

$ benchmark-driver -v --rbenv 'before;before --jit;after --jit' benchmark/mjit_exivar.yml --repeat-count=4
before: ruby 2.8.0dev (2020-03-30T12:32:26Z master e5db3da9d3) [x86_64-linux]
before --jit: ruby 2.8.0dev (2020-03-30T12:32:26Z master e5db3da9d3) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-03-31T05:57:24Z mjit-exivar 128625baec) +JIT [x86_64-linux]
Calculating -------------------------------------
                         before  before --jit  after --jit
         mjit_exivar    57.944M       53.579M      54.471M i/s -    200.000M times in 3.451588s 3.732772s 3.671687s

Comparison:
                      mjit_exivar
              before:  57944345.1 i/s
         after --jit:  54470876.7 i/s - 1.06x  slower
        before --jit:  53579483.4 i/s - 1.08x  slower
2020-03-30 23:16:35 -07:00
Hiroshi SHIBATA e5db3da9d3
Migrate {assert,refute}_patch_exits for compatibility with Minitest5 2020-03-30 21:32:26 +09:00
Nobuyoshi Nakada 9552fa9c0d
[DOC] Updated module name [ci skip] 2020-03-30 15:53:55 +09:00
Nobuyoshi Nakada 4adb2d655d
Make RbConfig::CONFIG values mutable [Bug #16738]
As `RbConfig.expand` modifies the argument and involved `CONFIG`
values, its values should be mutable.
2020-03-25 22:09:28 +09:00
Takashi Kokubun 5b3157a511
Make file names and variable names consistent 2020-03-23 22:33:01 -07:00
Takashi Kokubun 13e9551b97
Change the filename like make variable
for consistency
2020-03-22 23:15:50 -07:00
Takashi Kokubun d578f1d3ea
Change the run_without_tabs switching to dedicated
variable of make instead of d059714746 as requested.

You can disable this like `make MJIT_WITHOUT_TABS=false` or
`export MJIT_WITHOUT_TABS=false`.
2020-03-22 23:12:54 -07:00
Takashi Kokubun d059714746
Disable run_without_tabs when there's no -ggdb3
in debugflags, as requested by nobu

I actually wanted to check debugflags directly rather than MJIT_DEBUGFLAGS
because debugflags is always used but MJIT_DEBUGFLAGS may not be always used.
But I couldn't find a better way to check debugflags.
2020-03-22 20:20:27 -07:00
Takashi Kokubun c4e3d9e953
Expand tabs of include/ruby/ruby.h in MJIT header
rb_class_of is indented with tabs
2020-03-22 16:37:19 -07:00
Takashi Kokubun 3cf3427c99
Try asserting no static decl rather than warning
This didn't exist in my machine, but it may exist in some CI
environments.
2020-03-22 15:49:55 -07:00
Takashi Kokubun a55f670757
Reduce the number of lines used by transform_mjit_header 2020-03-22 15:46:53 -07:00
Takashi Kokubun dec0f582e4
Workaround an encoding problem in run_without_tabs
It's to be fixed properly later. But this should be able to avoid the failure.

https://travis-ci.org/github/ruby/ruby/jobs/665580361
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20200322T190003Z.fail.html.gz
2020-03-22 12:19:24 -07:00
Takashi Kokubun 9ebf74fd78
Expand tabs for rb_mjit_header.h (#2975)
This is necessary to avoid converting a hard tab to just 1 space in
preprocessor to generate rb_mjit_header.h, which is helpful when using
gdb or perf report.

See also: [Misc #16112]

This reverts commit 91acdd17c4.
Fixed permission failure on Travis, encoding, and added SKIPPED_FILES.
2020-03-22 11:50:45 -07:00
Takashi Kokubun 91acdd17c4
Revert "Expand tabs for rb_mjit_header.h"
This reverts commit 57119dd561.

Temporarily reverting for Travis failures
2020-03-22 00:53:05 -07:00
Takashi Kokubun 57119dd561
Expand tabs for rb_mjit_header.h
I can't live without this when using gdb or perf report.

See also: [Misc #16112]
2020-03-22 00:37:31 -07:00
taki b2041c8b70 [ci skip]Fix return type on RbConfig.fire_update! 2020-03-21 16:38:04 +09:00
Jun Aruga 86ca640287 Enablie IPv6 on Travis s390s case again.
It seems the issue was fixed by Travis.
See https://travis-ci.community/t/6719/5 .
2020-03-21 11:51:32 +09:00
Hiroshi SHIBATA 4be2a891cc
The upstream repository of bundler was changed rubygems/rubygems now.
https://github.com/rubygems/rubygems/pull/3166
2020-03-16 19:28:52 +09:00
Nobuyoshi Nakada 8a6ba10f9d
Do not make disabled directories at installation [Bug #12392] 2020-03-16 17:26:10 +09:00
NARUSE, Yui de15a26e9e tool/redmine-backporter.rb: fix typo 2020-03-13 22:27:54 +09:00
Takashi Kokubun 0cd7be99e9
Avoid referring to an old value of realloc
OpenBSD RubyCI has failed with SEGV since 4bcd5981e8.
https://rubyci.org/logs/rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20200312T223005Z.fail.html.gz

This was because `status->cc_entries` could be stale after `realloc` call
for inlined iseqs.
2020-03-12 22:51:34 -07:00
Takashi Kokubun da4b97a0e3
Pin and inline cme in JIT-ed method calls
```
$ benchmark-driver benchmark.yml -v --rbenv 'before --jit;after --jit' --repeat-count=12 --output=all
before --jit: ruby 2.8.0dev (2020-03-11T07:43:12Z master e89ebdcb87) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-03-11T07:54:18Z master 143776a0da) +JIT [x86_64-linux]
Calculating -------------------------------------
                                 before --jit           after --jit
Optcarrot Lan_Master.nes    73.86976729561439     77.20184819316513 fps
                            74.46997176460742     78.43493030231805
                            77.59686308754307     78.55714131655935
                            78.53693921126656     79.08984255596820
                            80.10158944910573     79.17751731838183
                            80.12254974411167     79.60853122429181
                            80.28678655204945     79.74674066871896
                            80.38690681095379     79.90624544440300
                            80.79223498756919     80.57881084206193
                            80.82857188422419     80.70677614429169
                            81.06447745878245     81.03868541295149
                            81.21620802278490     82.16354660940607
```
2020-03-11 00:59:34 -07:00
Takashi Kokubun 9511b4c8fa
Optimize away call data refs in JIT-ed method calls
According to ko1, `cd->cc != cc` was for GC.compact guard.
As we pin cc by rb_gc_mark(), we don't need the check.

```
$ benchmark-driver benchmark.yml -v --rbenv 'before --jit;after --jit' --repeat-count=12 --output=all
before --jit: ruby 2.8.0dev (2020-03-11T05:36:48Z master da6948753e) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-03-11T06:26:34Z master 36b20b8b4a) +JIT [x86_64-linux]
Calculating -------------------------------------
                                 before --jit           after --jit
Optcarrot Lan_Master.nes    74.03480698689405     71.63404803273507 fps
                            74.15085286586992     73.43923328104295
                            75.51738277744781     75.75465268365384
                            76.24922600109410     76.74071607861318
                            76.45513422802325     77.47521029238116
                            76.86617230739330     78.14759496269018
                            77.71509137131933     79.14051571125866
                            77.72839157096146     79.35884822673313
                            78.25218904561633     79.92538876408051
                            78.72521071333249     79.98075556706726
                            78.79950460165091     80.51747831497875
                            79.43884960720381     80.97973166525254
```
2020-03-10 23:29:50 -07:00
Kazuki Yamaguchi 61cfd6da84 tool/sync_default_gems.rb: update paths for openssl
Now ruby/openssl has a different directory structure. The test suite is
moved from /test/test_* to /test/openssl/test_*.
2020-03-10 17:41:01 +09:00