aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * 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
* [ruby/date] Promote simple date to complex date to load fractional date ↵Nobuyoshi Nakada2020-06-201-4/+7
| | | | | | (Fixes #20) https://github.com/ruby/date/commit/e022e8b3ce
* [ruby/date] Fix cannot load complex into simple error when loading marshal ↵Jeremy Evans2020-06-202-2/+9
| | | | | | | | | | | | | | | dump (Fixes #20) This problem exists because Marshal.load calls Date.allocate, which uses a SimpleDateData. There doesn't seem to be any support for taking an existing Date instance and converting it from SimpleDateData to ComplexDateData. Work around this issue by making Date.allocate use a ComplexDateData. This causes problems in Date#initialize, so remove the Date#initialize method (keeping the date_initialize function, used internally for Date.civil). Alias Date.new to Date.civil, since they do the same thing. https://github.com/ruby/date/commit/6bb8d8fa0f
* Removed space linesNobuyoshi Nakada2020-06-201-2/+0
|
* Remove unused variablesKazuki Tsujimoto2020-06-201-1/+0
|
* test/coverage/test_coverage.rb: Add a test for [Bug #16967]Yusuke Endoh2020-06-201-0/+20
|
* compile.c: Improve branch coverage instrumentation [Bug #16967]Yusuke Endoh2020-06-203-63/+150
| | | | | | | | | | | | | | Formerly, branch coverage measurement counters are generated for each compilation traverse of the AST. However, ensure clause node is traversed twice; one is for normal-exit case (the resulted bytecode is embedded in its outer scope), and the other is for exceptional case (the resulted bytecode is used in catch table). Two branch coverage counters are generated for the two cases, but it is not desired. This changeset revamps the internal representation of branch coverage measurement. Branch coverage counters are generated only at the first visit of a branch node. Visiting the same node reuses the already-generated counter, so double counting is avoided.
* compile.c: pass NODE* instead of a quadruple of code locationYusuke Endoh2020-06-201-82/+37
|
* compile.c (branch_coverage_valid_p): Refactored outYusuke Endoh2020-06-201-8/+10
|
* compile.c: Use functions for building branch coverage instructionsYusuke Endoh2020-06-201-54/+65
| | | | instead of maros. Just refactoring.
* Implement Proc#== and #eql?Jeremy Evans2020-06-195-9/+93
| | | | | | | | | | Previously, these were not implemented, and Object#== and #eql? were used. This tries to check the proc internals to make sure that procs created from separate blocks are treated as not equal, but procs created from the same block are treated as equal, even when the lazy proc allocation optimization is used. Implements [Feature #14267]
* * 2020-06-20 [ci skip]git2020-06-201-1/+1
|
* Use section sign instead of Hiragana Letter AKazuhiro NISHIYAMA2020-06-201-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | It can convert to Windows-1252and Windows-31J. ``` "\u00a7".encode("Windows-1252") #=> "\xA7" "\u00a7".encode("Windows-31J") #=> "\x{8198}" ``` https://github.com/ruby/ruby/runs/788357527?check_suite_focus=true#step:14:959 ``` 1) Failure: WEBrick::TestFileHandler#test_cjk_in_path [D:/a/ruby/ruby/src/test/webrick/utils.rb:72]: exceptions on 2 threads: webrick log start: [2020-06-19 14:49:38] ERROR Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and Windows-1252 D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:341:in `+' D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:341:in `set_filename' D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:310:in `exec_handler' D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:245:in `do_GET' D:/a/ruby/ruby/src/lib/webrick/httpservlet/abstract.rb:105:in `service' D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:241:in `service' D:/a/ruby/ruby/src/lib/webrick/httpserver.rb:140:in `service' D:/a/ruby/ruby/src/lib/webrick/httpserver.rb:96:in `run' D:/a/ruby/ruby/src/lib/webrick/server.rb:307:in `block in start_thread' ```
* Fix `ERROR ArgumentError: invalid byte sequence in UTF-8`Kazuhiro NISHIYAMA2020-06-191-1/+1
| | | | | | | | | | | | | | | | | http://ci.rvm.jp/results/trunk-test@ruby-sky1/3012894 ``` /tmp/ruby/v3/src/trunk-test/tool/lib/minitest/unit.rb:199:in `assert': webrick log start: (MiniTest::Assertion) [2020-06-19 23:01:59] ERROR ArgumentError: invalid byte sequence in UTF-8 /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:336:in `scan' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:336:in `set_filename' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:310:in `exec_handler' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:245:in `do_GET' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/abstract.rb:105:in `service' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:241:in `service' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpserver.rb:140:in `service' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpserver.rb:96:in `run' /tmp/ruby/v3/src/trunk-test/lib/webrick/server.rb:307:in `block in start_thread' ```
* Use filesystem encoding as FileHandler's encodingKazuhiro NISHIYAMA2020-06-192-10/+14
| | | | | | | | | instead of `@root.encoding`. And fallback to ASCII-8BIT when filesystem encoding is US-ASCII. When `@root.encoding` is not compatible filesystem encoding, `Encoding::CompatibilityError` raised at `webrick/httpservlet/filehandler.rb:341`. So `DocumentRoot` must be compatible with filesystem encoding.
* Do not change local_path encoding in WEBrick::HTTPServlet::DefaultFileHandlerKazuhiro NISHIYAMA2020-06-191-1/+1
| | | | This reverts 750203c514e0e9a49f7d53fb54084e6844fca42a and 93e6fa1d319d19ce7fba37e4b9924862447b9f38
* Fix failure on mswin CIKazuhiro NISHIYAMA2020-06-192-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | https://rubyci.org/logs/mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-master/log/20200619T054159Z.fail.html.gz ``` 1) Failure: WEBrick::TestFileHandler#test_cjk_in_path [D:/tmp/mswin-build20200619-14304-utgij/ruby/test/webrick/utils.rb:72]: exceptions on 2 threads: webrick log start: [2020-06-19 16:28:42] ERROR `/あ.txt' not found. webrick log end Filesystem encoding is Windows-31J. <"200"> expected but was <"404">. --- <[]> expected but was <["[2020-06-19 16:28:42] ERROR `/\xE3\x81\x82.txt' not found.\n"]>. ``` `prevent_directory_traversal` treats `path_info` as filesystem encoding. So path_info should be filesystem encoding in request URL. On some environments, fallback to ASCII-8BIT when EncodingError.
* Hide error location from error messageKazuhiro NISHIYAMA2020-06-191-1/+1
|
* [Feature #16254] Use `Primitive.func` styleNobuyoshi Nakada2020-06-199-58/+58
|