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