aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add missing castTakashi Kokubun2020-06-231-1/+1
|
* Annotate Kernel#class as inline (#3250)Takashi Kokubun2020-06-235-24/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | ``` $ benchmark-driver -v --rbenv 'before;after;before --jit;after --jit' benchmark/mjit_class.yml --repeat-count=4 before: ruby 2.8.0dev (2020-06-23T07:09:54Z master 37a2e48d76) [x86_64-linux] after: ruby 2.8.0dev (2020-06-23T17:29:56Z inline-class 0ff147c007) [x86_64-linux] before --jit: ruby 2.8.0dev (2020-06-23T07:09:54Z master 37a2e48d76) +JIT [x86_64-linux] after --jit: ruby 2.8.0dev (2020-06-23T17:29:56Z inline-class 0ff147c007) +JIT [x86_64-linux] Calculating ------------------------------------- before after before --jit after --jit mjit_class(self) 39.219M 40.060M 53.502M 69.202M i/s - 40.000M times in 1.019915s 0.998495s 0.747631s 0.578021s mjit_class(1) 39.567M 41.242M 52.100M 68.895M i/s - 40.000M times in 1.010935s 0.969885s 0.767749s 0.580591s Comparison: mjit_class(self) after --jit: 69201690.7 i/s before --jit: 53502336.4 i/s - 1.29x slower after: 40060289.1 i/s - 1.73x slower before: 39218939.2 i/s - 1.76x slower mjit_class(1) after --jit: 68895358.6 i/s before --jit: 52100353.0 i/s - 1.32x slower after: 41241993.6 i/s - 1.67x slower before: 39567314.0 i/s - 1.74x slower ```
* Trace :return of builtin methodsTakashi Kokubun2020-06-233-2/+20
| | | | | | using opt_invokebuiltin_delegate_leave insn. Since Ruby 2.7, :return of methods using builtin have not been traced properly.
* * 2020-06-24 [ci skip]git2020-06-241-1/+1
|
* Fix RubyVM::AbstractSyntaxTree documentMasataka Pocke Kuwabara2020-06-241-2/+2
| | | | RubyVM::AbstractSyntaxTree is a module actually, but the document says "class".
* [ci skip] Enhanced RDoc for Array (#3237)Burdette Lamar2020-06-231-107/+272
| | | | | | | | | | | Methods: #rotate! #rotate #sort! #sort #bsearch #bsearch_index
* Avoid generating opt_send with cfunc cc with JITTakashi Kokubun2020-06-233-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | only for opt_nil_p and opt_not. While vm_method_cfunc_is is used for opt_eq too, many fast paths of it don't call it. So if it's populated, it should generate opt_send, regardless of cfunc or not. And again, opt_neq isn't relevant due to the difference in operands. So opt_nil_p and opt_not are the only variants using vm_method_cfunc_is like they use. ``` $ benchmark-driver -v --rbenv 'before2 --jit::ruby --jit;before --jit;after --jit' benchmark/mjit_opt_cc_insns.yml --repeat-count=4 before2 --jit: ruby 2.8.0dev (2020-06-22T08:37:37Z master 3238641750) +JIT [x86_64-linux] before --jit: ruby 2.8.0dev (2020-06-23T01:01:24Z master 9ce2066209) +JIT [x86_64-linux] after --jit: ruby 2.8.0dev (2020-06-23T06:58:37Z master 17e9df3157) +JIT [x86_64-linux] last_commit=Avoid generating opt_send with cfunc cc with JIT Calculating ------------------------------------- before2 --jit before --jit after --jit mjit_nil?(1) 54.204M 75.536M 75.031M i/s - 40.000M times in 0.737947s 0.529548s 0.533110s mjit_not(1) 53.822M 70.921M 71.920M i/s - 40.000M times in 0.743195s 0.564007s 0.556171s mjit_eq(1, nil) 7.367M 6.496M 7.331M i/s - 8.000M times in 1.085882s 1.231470s 1.091327s Comparison: mjit_nil?(1) before --jit: 75536059.3 i/s after --jit: 75031409.4 i/s - 1.01x slower before2 --jit: 54204431.6 i/s - 1.39x slower mjit_not(1) after --jit: 71920324.1 i/s before --jit: 70921063.1 i/s - 1.01x slower before2 --jit: 53821697.6 i/s - 1.34x slower mjit_eq(1, nil) before2 --jit: 7367280.0 i/s after --jit: 7330527.4 i/s - 1.01x slower before --jit: 6496302.8 i/s - 1.13x slower ```
* lldb_cruby.py: show the sign of Bignum [ci skip]Nobuyoshi Nakada2020-06-231-2/+3
|
* [ruby/psych] Fixup 05d7e818a6abe3ee1c56b6be92f086647d73141cHiroshi SHIBATA2020-06-231-1/+1
| | | | https://github.com/ruby/psych/commit/4e7794fc2c
* [ruby/psych] Bump version strings for header fileHiroshi SHIBATA2020-06-231-5/+5
| | | | https://github.com/ruby/psych/commit/68da645c7e
* [ruby/psych] Bump libyaml version to 0.2.5Hiroshi SHIBATA2020-06-239-192/+433
| | | | https://github.com/ruby/psych/commit/39996192cc
* [ruby/psych] Fix anchor lookup with symbolized namesJean Boussier2020-06-232-7/+17
| | | | https://github.com/ruby/psych/commit/ef74fc01e2
* Match the output without encoding for localized compilersNobuyoshi Nakada2020-06-231-1/+1
|
* Improved error messages for mjit optionNobuyoshi Nakada2020-06-231-15/+26
| | | | and default jit-verbose to 1 if no argument.
* Removed execpath argument of path_check_0 as always TRUE nowNobuyoshi Nakada2020-06-231-5/+5
|
* Removed fpath_check, no longer used since taint flag was removedNobuyoshi Nakada2020-06-231-6/+0
|
* Convert RMoved to a doubly linked listAaron Patterson2020-06-221-35/+34
| | | | | | | | This commit converts RMoved slots to a doubly linked list. I want to convert this to a doubly linked list because the read barrier (currently in development) must remove nodes from the moved list sometimes. Removing nodes from the list is much easier if the list is doubly linked. In addition, we can reuse the list manipulation routines.
* Skip test_read_body_block_mod for --jit-waitTakashi Kokubun2020-06-221-1/+2
|
* * 2020-06-23 [ci skip]git2020-06-231-1/+1
|
* Ignore configurations in un-built extension librariesNobuyoshi Nakada2020-06-231-0/+1
| | | | | Exclude linker flags for external libraries used by no longer built extension libraries when static-linked-ext.
* Fix Encoding::CompatibilityError in `FileUtils::Entry_#join`Kazuhiro NISHIYAMA2020-06-222-4/+9
|
* Fix typosKazuhiro NISHIYAMA2020-06-221-2/+2
|
* Revert d231b8f95b35d8a344cec4f62d7bbdf360a70e1c and add debug printKazuhiro NISHIYAMA2020-06-222-6/+5
|
* Compile opt_send for opt_* only when cc has ISeqTakashi Kokubun2020-06-224-8/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | because opt_nil/opt_not/opt_eq populates cc even when it doesn't fallback to opt_send_without_block because of vm_method_cfunc_is. ``` $ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark/mjit_opt_cc_insns.yml --repeat-count=4 before --jit: ruby 2.8.0dev (2020-06-22T08:11:24Z master d231b8f95b) +JIT [x86_64-linux] after --jit: ruby 2.8.0dev (2020-06-22T08:53:27Z master e1125879ed) +JIT [x86_64-linux] last_commit=Compile opt_send for opt_* only when cc has ISeq Calculating ------------------------------------- before --jit after --jit mjit_nil?(1) 54.106M 73.693M i/s - 40.000M times in 0.739288s 0.542795s mjit_not(1) 53.398M 74.477M i/s - 40.000M times in 0.749090s 0.537075s mjit_eq(1, nil) 7.427M 6.497M i/s - 8.000M times in 1.077136s 1.231326s Comparison: mjit_nil?(1) after --jit: 73692594.3 i/s before --jit: 54106108.4 i/s - 1.36x slower mjit_not(1) after --jit: 74477487.9 i/s before --jit: 53398125.0 i/s - 1.39x slower mjit_eq(1, nil) before --jit: 7427105.9 i/s after --jit: 6497063.0 i/s - 1.14x slower ``` Actually opt_eq becomes slower by this. Maybe it's indeed using opt_send_without_block, but I'll approach that one in another commit.
* Use filesystem encoding for file path onlyKazuhiro NISHIYAMA2020-06-221-4/+7
| | | | | `path_info` contains filesystem encoding and binary. Example is `"/webrick.cgi/%A5%DB%A4%B2/%A4%DB%A4%B2"` in `TestWEBrickCGI#test_cgi`.
* Add tests of nested multibyte path and DirectoryIndexKazuhiro NISHIYAMA2020-06-221-13/+23
|
* Fix remove_entry error when path encoding is not compatible UTF-8Kazuhiro NISHIYAMA2020-06-222-1/+22
|
* Check symlink in tmpdir and do not use empty pathKazuhiro NISHIYAMA2020-06-221-1/+5
|
* Share warmup logic across MJIT benchmarksTakashi Kokubun2020-06-225-30/+38
|
* The RUBYOPT= comment is no longer neededTakashi Kokubun2020-06-223-6/+0
|
* Stop relying on `make benchmark`'s `-I$(srcdir)/benchmark/lib`Takashi Kokubun2020-06-224-4/+4
| | | | | | These days I don't use `make benchmark`. The YAML files should be executable with bare `benchmark-driver` CLI without passing `RUBYOPT=-Ibenchmark/lib`.
* Try increasing read_timeout a little moreTakashi Kokubun2020-06-211-1/+1
| | | | | It failed again http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3018488
* Increase read_timeout for --jit-waitTakashi Kokubun2020-06-211-0/+1
| | | | | This tries to fix a random failure like http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3017837
* Use canary cond also if not VM_CHECK_MODE to suppress warningsNobuyoshi Nakada2020-06-221-2/+2
|
* * 2020-06-22 [ci skip]git2020-06-221-1/+1
|
* Verify builtin inline annotation with VM_CHECK_MODE (#3244)Takashi Kokubun2020-06-213-13/+16
| | | | | * Verify builtin inline annotation with VM_CHECK_MODE * Remove static to fix the link issue on MJIT
* test/ruby/test_jit.rb: Change the condition to detect RHEL 7.1 s390xYusuke Endoh2020-06-211-1/+1
|
* Increase read timeout of FTP tests with --jit-waitTakashi Kokubun2020-06-211-1/+13
| | | | | Trying to eliminate some newer random failures http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3016543
* Fix -Wmaybe-uninitialized at vm_invoke_blockTakashi Kokubun2020-06-211-0/+1
|
* [DOC] Mentioned that `Time.parse` method is not validatorNobuyoshi Nakada2020-06-211-0/+5
|
* [ruby/date] [DOC] Mentioned alternative `strptime` methodsNobuyoshi Nakada2020-06-211-3/+6
| | | | https://github.com/ruby/date/commit/5f4ac92947
* [ruby/date] [DOC] Emphasized that `parse` methods are not validatorsNobuyoshi Nakada2020-06-211-4/+15
| | | | https://github.com/ruby/date/commit/81a057db11
* Skip a test_jit with builtin for rhel_zlinuxTakashi Kokubun2020-06-201-0/+1
| | | | | | | | Either 95b0fed371 or 7561db8c00 started to cause https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel_zlinux/ruby-master/log/20200621T053303Z.fail.html.gz But so far no idea why it's happening. Until I get direct ssh access to debug the details, let me skip this as it's essentially not ruby's fault.
* Prefer more descriptive assertion methodsNobuyoshi Nakada2020-06-211-11/+11
|
* Prefer ruby_install_name as runnerNobuyoshi Nakada2020-06-211-2/+3
| | | | | `Gem::Commands::EnvironmentCommand` expects that `Gem.ruby` has the transformed basename.
* Introduce Primitive.attr! to annotate 'inline' (#3242)Takashi Kokubun2020-06-207-2/+74
| | | [Feature #15589]
* C-expression does not include a semicolonNobuyoshi Nakada2020-06-211-1/+1
|
* * 2020-06-21 [ci skip]git2020-06-211-1/+1
|
* Make Integer#zero? a separated method and builtin (#3226)Takashi Kokubun2020-06-208-8/+44
| | | | | | | A prerequisite to fix https://bugs.ruby-lang.org/issues/15589 with JIT. This commit alone doesn't make a significant difference yet, but I thought this commit should be committed independently. This method override was discussed in [Misc #16961].
* [ruby/date] Bump version to 3.0.1Hiroshi SHIBATA2020-06-201-1/+1
| | | | https://github.com/ruby/date/commit/47cca1b76b