| Age | Commit message (Collapse) | Author |
|
|
|
https://ci.appveyor.com/project/ruby/ruby/builds/36942168/job/7ugrpk0pndoly9wp
```
_ruby_mjit_p11920u0.c
C:\Users\appveyor\AppData\Local\Temp\1/_ruby_mjit_p11920u0.c(14) : warning C4005: 'GET_SELF' : macro redefinition
c:\projects\ruby\vm_insnhelper.h(111) : see previous definition of 'GET_SELF'
Creating library C:\Users\appveyor\AppData\Local\Temp\1/_ruby_mjit_p11920u0.lib and object C:\Users\appveyor\AppData\Local\Temp\1/_ruby_mjit_p11920u0.exp
_ruby_mjit_p11920u0.obj : error LNK2001: unresolved external symbol rb_eRactorIsolationError
C:\Users\appveyor\AppData\Local\Temp\1/_ruby_mjit_p11920u0.so : fatal error LNK1120: 1 unresolved externals
```
|
|
|
|
Ractor has several restrictions to keep each ractor being isolated
and some operation such as `CONST="foo"` in non-main ractor raises
an exception. This kind of operation raises an error but there is
confusion (some code raises RuntimeError and some code raises
NameError).
To make clear we introduce Ractor::IsolationError which is raised
when the isolation between ractors is violated.
Notes:
Merged: https://github.com/ruby/ruby/pull/3957
|
|
|
|
|
|
Stop BigDecimal-specific optimization. Instead, it tries the conversion
methods in the following order:
1. `try_convert`,
2. `new`, and
3. class-named function, e.g. `Foo::Bar.Baz` function for `Foo::Bar::Baz` class
If all the above candidates are unavailable, it fallbacks to Float.
|
|
|
|
|
|
|
|
|
|
https://github.com/ruby/digest/commit/7b57b73f46
|
|
* win32/win32.c (init_stdhandle): enable escape sequence on
Windows10 console to show `ruby --help` colors correctly.
|
|
https://github.com/ruby/rdoc/commit/3d3616cb94
|
|
https://github.com/ruby/rdoc/commit/b1e7129e05
|
|
This is to avoid SEGV on a CC reference in a normal compilation
https://github.com/ruby/ruby/runs/1586578023
|
|
to avoid SEGV on mjit_recompile and compact_all_jit_code.
For some reason, ISeqs on stack are sometimes GC-ed (why?) and therefore
it may run mjit_recompile on a GC-ed ISeq, which I expected d07183ec85d
to fix but apparently it may refer to random things if already GC-ed.
Marking active_units would workaround the situation.
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3292740
Also, while compact_all_jit_code was executed, we saw some SEGVs where
CCs seemed to be already GC-ed, meaning their owner ISeq was not marked
properly. Even if units are still in active_units, it's not guaranteed
that their ISeqs are in use. So in this case we need to mark active_units
for a legitimate reason.
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3293277
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3293090
|
|
The original motivation of this marking was https://github.com/k0kubun/yarv-mjit/issues/20.
As wanabe said, there are multiple options to mitigate the issue, and
Eric Wong introduced another fix at 143776f6fe by checking unit->iseq
inside the lock.
Therefore this particular condition has been covered in two ways, and
the script given by wanabe no longer crashes without mjit_mark().
|
|
Because unfreeze Ractor::MovedObject at
https://github.com/ruby/ruby/commit/76e88480371469400346fca609efe67096813915
|
|
|
|
https://bugs.ruby-lang.org/issues/17413
|
|
|
|
It was my bad, the exception that actually raises is rb_eNoMemError.
[ci skip]
|
|
`@exception` is an alias of `@throw`. It might suite Ruby's document
because ruby uses `raise` terminology instead of `throw`. [ci skip]
|
|
|
|
Notes:
Merged-By: mrkn <mrkn@ruby-lang.org>
|
|
It should raise an error if the same thread tris to call
receive/receive_if.
Notes:
Merged: https://github.com/ruby/ruby/pull/3949
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3951
|
|
from rb_ractor_make_copy_shareable().
|
|
|
|
|
|
|
|
|
|
To check shareable-ness, rb_ractor_shareable_p() is needed
for Class/Module objects isntead of checking flags.
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3948
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/3948
|
|
Co-Authored-By: Dāvis Mosāns <davispuh@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/3948
|
|
Not to interfer in class variables.
|
|
|
|
|
|
testing
|
|
https://github.com/ruby/irb/commit/bcd96834c7
|
|
https://github.com/ruby/reline/commit/723c6e191a
|
|
You can use "measure" command to check performance in IRB like below:
irb(main):001:0> 3
=> 3
irb(main):002:0> measure
TIME is added.
=> nil
irb(main):003:0> 3
processing time: 0.000058s
=> 3
irb(main):004:0> measure :off
=> nil
irb(main):005:0> 3
=> 3
You can set "measure :on" by "IRB.conf[:MEASURE] = true" in .irbrc, and, also,
set custom performance check method:
IRB.conf[:MEASURE_PROC][:CUSTOM] = proc { |context, code, line_no, &block|
time = Time.now
result = block.()
now = Time.now
puts 'custom processing time: %fs' % (Time.now - time) if IRB.conf[:MEASURE]
result
}
https://github.com/ruby/irb/commit/3899eaf2e2
|
|
https://github.com/ruby/irb/commit/f3c8edad2a
|
|
* ruby:ext/rbconfig/exts.mk
* ruby:ext/rbconfig/sizeof/Makefile
* ruby:ext/rbconfig/sizeof/depend
* ruby:ext/rbconfig/sizeof/mkmf.log
* ruby:ext/win32/depend
* ruby:ext/win32/exts.mk
* ruby:ext/win32/resolv/depend
* ruby:lib/racc/pre-setup
|
|
|
|
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
|