Hiroshi SHIBATA
f14aaa2b12
Guard < Ruby 3.0 for the repositories of default gems.
2020-12-23 13:44:47 +09:00
Marc-Andre Lafortune
02233ed024
Adapt tool/search-cgvars.rb for MacOS
2020-12-22 22:25:41 -05:00
Marc-Andre Lafortune
3df3b47187
Add tool/search-cgvars.rb, thanks @ko1
2020-12-22 22:25:41 -05:00
Hiroshi SHIBATA
edb76e8765
Prepare to release json-2.5.0
2020-12-22 19:44:27 +09:00
Takashi Kokubun
692af8e8f8
Prefer stdbool in vm_exec
...
Make the code a bit modern and consistent with some other places.
2020-12-21 21:16:39 -08:00
Akinori MUSHA
63b872c409
Prepare for importing the set gem
2020-12-22 12:17:47 +09:00
Marc-Andre Lafortune
1ecac8e4d0
Add `require_relative` option to `assert_ractor`
2020-12-20 22:00:05 -05:00
Takashi Kokubun
7d0144e055
Check mjit_call_p only when interrupted
...
for leaf_without_check_ints insns.
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-12-20T05:02:18Z master 02b3555874
) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-12-20T05:36:00Z master 3f58de4eab) +JIT [x86_64-linux]
last_commit=Check mjit_call_p only when interrupted
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 84.50647332260259 85.85057800433144 fps
91.17796644338372 92.09930605656054
91.29346683444497 93.01336611323687
91.50322318568884 93.07234029037433
91.66560903214686 93.22773241529644
91.82315142636172 93.37032901061119
92.15066379608260 93.83701526141679
92.37897097456643 93.86032792681507
92.53049815524908 93.91211970920320
92.78414507914283 94.09109196967890
92.90299756525958 94.40107239595325
93.70279428858790 95.01326369371263
2020-12-19 21:38:14 -08:00
Marc-Andre Lafortune
b1b6dbfdc3
`assert_ractor` tweak. Thanks Nobu
2020-12-19 22:37:27 -05:00
Marc-Andre Lafortune
70f20234b2
Add `assert_ractor` [Feature #17367 ]
2020-12-19 17:13:08 -05:00
Takashi Kokubun
5611066e03
Prefer RB_OBJ_FROZEN_RAW
...
following the original implementation's change.
RB_TYPE_P(obj, T_OBJECT) is already checked in these places.
```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-12-19T08:27:44Z master 52b1716c78
) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-12-19T08:27:44Z master 52b1716c78
) +JIT [x86_64-linux]
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 88.04551460097873 84.38303800957766 fps
88.25194345156318 85.31098251408059
88.34143982084871 86.60491582339496
88.63486879856976 88.23675694701865
88.85392212902701 88.23696283371444
89.05739427483194 88.97185459567562
89.08141031147311 90.16373192658857
89.11359420883423 90.61655686444394
89.80323392966130 90.77044959019291
90.58912189625207 90.88534596330966
90.59847996970350 91.34314801302897
90.61180456415137 93.11599164249547
```
2020-12-19 00:34:33 -08:00
Jeremy Evans
05313c914b
Use category: :deprecated in warnings that are related to deprecation
...
Also document that both :deprecated and :experimental are supported
:category option values.
The locations where warnings were marked as deprecation warnings
was previously reviewed by shyouhei.
Comment a couple locations where deprecation warnings should probably
be used but are not currently used because deprecation warning
enablement has not occurred at the time they are called
(RUBY_FREE_MIN, RUBY_HEAP_MIN_SLOTS, -K).
Add assert_deprecated_warn to test assertions. Use this to simplify
some tests, and fix failing tests after marking some warnings with
deprecated category.
2020-12-18 09:54:11 -08:00
Nobuyoshi Nakada
9908177857
test/ruby: Check warning messages at a finer granularity
...
Instead of suppressing all warnings wholly in each test scripts by
setting `$VERBOSE` to `nil` in `setup` methods.
2020-12-17 20:06:18 +09:00
Hiroshi SHIBATA
44fba194a5
ruby/pathname separated .rb file to top-level directory.
2020-12-17 17:24:51 +09:00
Takashi Kokubun
5d74894f2b
Lazily move PC with RUBY_VM_CHECK_INTS
...
```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-12-17T06:17:46Z master 3b4d698e0b
) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-12-17T07:01:48Z master 843abb96f0) +JIT [x86_64-linux]
last_commit=Lazily move PC with RUBY_VM_CHECK_INTS
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 80.29343646660429 83.15779723251525 fps
82.26755637885149 85.50197941326810
83.50682959728820 88.14657804306270
85.01236533133049 88.78201988978667
87.81799334561326 88.94841008936447
87.88228562393064 89.37925215601926
88.06695585889995 89.86143277214475
88.84730834922165 90.00773346420887
90.46317871213088 90.82603371104014
90.96308347148916 91.29797694822179
90.97945938504556 91.31086331868738
91.57127890154500 91.49949184318844
```
2020-12-16 23:06:28 -08:00
Takashi Kokubun
3b4d698e0b
Ignore catch_except_p for PC motion
...
We probably don't need to move it when an insn is leaf...
2020-12-16 22:17:46 -08:00
Hiroshi SHIBATA
46ea74297e
Bump version to json-2.4.1 and use VERSION file for json version same as upstream
2020-12-17 14:20:42 +09:00
Takashi Kokubun
53babf35ef
Inline getconstant on JIT ( #3906 )
...
* Inline getconstant on JIT
* Support USE_MJIT=0
2020-12-16 06:24:07 -08:00
Takashi Kokubun
9d85ed6cbb
Simplify positioning of '{' and '}'
...
and fix inconsistent indentation in mjit_compile.inc.erb
2020-12-14 21:07:41 -08:00
Koichi Sasada
aa6287cd26
fix inline method cache sync bug
...
`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`.
2020-12-15 13:29:30 +09:00
Hiroshi SHIBATA
27520a1e1e
Fixed dst name for digest gem
2020-12-14 19:39:32 +09:00
Takashi Kokubun
aacd2295d0
Debug the command used for gdb dump
...
It's not working
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3288206 . I'm
debugging why.
2020-12-13 23:35:29 -08:00
Takashi Kokubun
246d7e4f1d
Dump a backtrace with gdb
...
Because Ruby often fails to dump a C backtrace.
2020-12-12 18:46:24 -08:00
Nobuyoshi Nakada
3b7c05ef8d
Fixed RUBY_RM_RECURSIVE when autoconf met the required version
...
Before 9189cf5793
the result of
`m4_version_compare` was compared to -1, however the `$2` of
`m4_version_prereq` has different meaning and is expanded when
the required version met.
2020-12-13 01:16:57 +09:00
Yusuke Endoh
248f1ef282
tool/mk_builtin_loader.rb: prevent "assigned but unused variable"
2020-12-12 23:09:11 +09:00
Hiroshi SHIBATA
a6a68bae3c
Removed needless gemspec of webrick
2020-12-11 14:16:42 +09:00
Hiroshi SHIBATA
947a5505e5
Bump webrick-1.7.0 for version management with ruby/webrick.
2020-12-11 14:16:42 +09:00
NARUSE, Yui
7856da5fe7
remove bz2
2020-12-10 18:24:43 +09:00
Hiroshi SHIBATA
0e73b49b4c
Promote webrick to bundled gems
2020-12-10 18:06:25 +09:00
Hiroshi SHIBATA
5dc786bf86
Move webrick library into internal test toolchain
2020-12-10 18:06:25 +09:00
Hiroshi SHIBATA
aeeaf90b7e
Added missing dependency of fileutils
2020-12-08 18:38:25 +09:00
Nobuyoshi Nakada
05e1d87e62
rbinstall.rb: do not install useless files after installed
2020-12-07 23:57:31 +09:00
Nobuyoshi Nakada
91f831ac17
Extract gemspec to versioned file
...
Not to be overwritten by test-bundler-prepare. gem files often
contain useless gemspec files which have not been processed.
2020-12-07 23:47:37 +09:00
Nobuyoshi Nakada
e025113d71
rbinstall.rb: relaxed split argument
...
did_you_mean splits the output by `$/`.
2020-12-07 22:40:46 +09:00
Nobuyoshi Nakada
5894ea5954
rbinstall.rb: fix the position to expand files
...
As `spec.files` is used for `executables` and so on, the expanded
list needs to be located at the same place.
2020-12-07 22:38:09 +09:00
Nobuyoshi Nakada
29dee10af2
rbinstall.rb: install files expanded from bundled gems
...
Although gemspec file (e.g., power_assert and rake) often uses
`git ls-files`, as it does not make sense in other than its own
repository, it has been ignored now. Gather all files expanded
from the bundled gem to install, instead.
2020-12-07 19:09:23 +09:00
Nobuyoshi Nakada
e4e2a33560
update-bundled_gems: support recent format, keep the tag to test
2020-12-06 16:11:10 +09:00
Nobuyoshi Nakada
ea9f16a27f
update-bundled_gems: chomp ".git" suffix from the source code URI
2020-12-06 16:11:09 +09:00
Nobuyoshi Nakada
967ed35bbb
Moved update-bundled_gems code to a tool
2020-12-06 16:11:09 +09:00
Benoit Daloze
b4ec4a41c2
Guard all accesses to RubyVM::MJIT with defined?(RubyVM::MJIT) &&
...
* Otherwise those tests, etc cannot run on alternative Ruby implementations.
2020-12-04 16:45:54 +01:00
Takashi Kokubun
f1757a88a4
Avoid leaving too many core files in /tmp
...
for CIs like ci.rvm.jp.
2020-12-03 21:33:35 -08:00
Takashi Kokubun
30fba5f37d
Do not require time and fileutils by default
...
I have no idea what I'm doing, but the previous commit caused lots of CI
failures like https://github.com/ruby/ruby/runs/1496949568 and this
place is the most suspicious.
2020-12-03 21:24:36 -08:00
Takashi Kokubun
067f45ecd3
Save a core file on a worker crash
...
CI failures like
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/3280458 doesn't
provide any useful information, and it doesn't leave a core file in a CI
environment because a test like `Process.kill(:TRAP, $$)` overwrites in
a next run very quickly.
Thus I'd like to keep core files in /tmp.
2020-12-03 21:01:25 -08:00
Takashi Kokubun
0734a6cd59
Revert "Report a full_message on a worker crash"
...
This reverts commit 00f046ef57
.
It was not helpful for an issue I was debugging.
2020-12-03 20:55:36 -08:00
Nobuyoshi Nakada
2a99fea89e
test-bundled-gems.rb: show failed gems at last
2020-12-03 21:31:44 +09:00
Nobuyoshi Nakada
9e94cd18fc
test-bundled-gems: select bundled gems to test by BUNDLED_GEMS
2020-12-02 17:06:09 +09:00
Koichi Sasada
e79f1941b2
tune parallel test
...
This patch contains the fowllowing hacks:
(1) Add "--timetable-data=FILE" option for test-all
This option enables to dump timeline event
contains worker, suite, and start/end time.
(2) remove TestJIT in test_jit_debug.rb on parallel test.
it is duplicated test.
(3) move test_jit.rb and test_jit_debug.rb at first
because these two tests are bottleneck of parallel tests.
On my environment, `make test-all TESTS=-j12` reduced the total time
190 seconds -> 140 seconds.
2020-12-01 09:39:09 +09:00
Takashi Kokubun
d409837729
Cache access to reg_cfp->self on JIT
...
```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-11-27T06:41:15Z master 8ce1711c25
) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-11-27T08:36:02Z master 2c592126b9) +JIT [x86_64-linux]
last_commit=Cache access to reg_cfp->self on JIT
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 82.40522392468650 82.66023870551237 fps
82.67998539899482 83.08660305312587
85.51280693947453 87.09311989553235
86.32925337181406 87.16115255191410
87.35617494926235 87.30699391518075
87.91865339426212 88.47590342996875
88.11573661006648 88.64778616696353
88.16060826662158 88.67015079203991
88.21639244865058 89.19630739497482
88.47241577897603 89.23443637947730
89.37087287229809 89.57052723997015
89.46969964699964 89.97803363889025
```
2020-11-27 00:42:42 -08:00
Takashi Kokubun
8ce1711c25
Revert "Set VM_FRAME_FLAG_FINISH at once on MJIT"
...
This reverts commit 4d2c8edca6
.
Unfortunately this seems to cause several issues:
https://github.com/ruby/ruby/runs/1462188376?check_suite_focus=true
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3272802
2020-11-26 22:41:15 -08:00
Takashi Kokubun
4d2c8edca6
Set VM_FRAME_FLAG_FINISH at once on MJIT
...
Performance is probably improved?
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-11-27T04:37:47Z master 69e77e81dc
) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (2020-11-27T05:28:19Z master df6b05c6dd) +JIT [x86_64-linux]
last_commit=Set VM_FRAME_FLAG_FINISH at once
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 80.89292998533379 82.19497327502751 fps
80.93130641142331 85.13943315260148
81.06214830270119 87.43757879797808
82.29172808453910 87.89942441487113
84.61206450455929 87.91309779491075
85.44545883567997 87.98026086648694
86.02923132404449 88.03081060383973
86.07411817365879 88.14650206137341
86.34348799602836 88.32791633649961
87.90257338977324 88.57599644892220
88.58006509876580 88.67426384743277
89.26611118140011 88.81669430874207
This should have no bad impact on VM because this function is ALWAYS_INLINE.
2020-11-26 21:32:14 -08:00