Age | Commit message (Collapse) | Author |
|
and default jit-verbose to 1 if no argument.
|
|
|
|
|
|
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.
Notes:
Merged: https://github.com/ruby/ruby/pull/3249
|
|
|
|
|
|
Exclude linker flags for external libraries used by no longer
built extension libraries when static-linked-ext.
|
|
|
|
|
|
|
|
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.
|
|
`path_info` contains filesystem encoding and binary.
Example is `"/webrick.cgi/%A5%DB%A4%B2/%A4%DB%A4%B2"` in `TestWEBrickCGI#test_cgi`.
|
|
|
|
|
|
|
|
|
|
|
|
These days I don't use `make benchmark`. The YAML files should be
executable with bare `benchmark-driver` CLI without passing
`RUBYOPT=-Ibenchmark/lib`.
|
|
It failed again
http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3018488
|
|
This tries to fix a random failure like
http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3017837
|
|
|
|
|
|
* Verify builtin inline annotation with VM_CHECK_MODE
* Remove static to fix the link issue on MJIT
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
Trying to eliminate some newer random failures
http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3016543
|
|
|
|
|
|
https://github.com/ruby/date/commit/5f4ac92947
|
|
https://github.com/ruby/date/commit/81a057db11
|
|
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.
|
|
|
|
`Gem::Commands::EnvironmentCommand` expects that `Gem.ruby` has
the transformed basename.
|
|
[Feature #15589]
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
|
|
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].
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
https://github.com/ruby/date/commit/47cca1b76b
|
|
(Fixes #20)
https://github.com/ruby/date/commit/e022e8b3ce
|
|
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
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3240
|
|
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.
Notes:
Merged: https://github.com/ruby/ruby/pull/3240
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3240
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3240
|
|
instead of maros. Just refactoring.
Notes:
Merged: https://github.com/ruby/ruby/pull/3240
|
|
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]
Notes:
Merged: https://github.com/ruby/ruby/pull/3174
|
|
|
|
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'
```
|
|
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'
```
|