| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Has been deprecated since 684bdf6171b76f5bc5e4f05926a5ab01ec2b4fd5.
Matz says in [ruby-core:83954] that Data should be an alias of Object.
Because rb_cData has not been deprecated, let us deprecate the constant
to make it a C-level synonym of rb_cObject.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
separate some fields from rb_ractor_t to rb_ractor_pub and put it
at the beggining of rb_ractor_t and declare it in vm_core.h so
vm_core.h can access rb_ractor_pub fields.
Now rb_ec_ractor_hooks() is a complete inline function and no
MJIT related issue.
|
|
|
|
|
| |
TracePoint should be ractor-local because the Proc can violate the
Ractor-safe.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
| |
|
| |
|
|
|
|
|
| |
It should raise an error if the same thread tris to call
receive/receive_if.
|
| |
|
|
|
|
| |
from rb_ractor_make_copy_shareable().
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
To check shareable-ness, rb_ractor_shareable_p() is needed
for Class/Module objects isntead of checking flags.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Co-Authored-By: Dāvis Mosāns <davispuh@gmail.com>
|
|
|
|
| |
Not to interfer in class variables.
|
| |
|
| |
|
|
|
|
| |
testing
|
|
|
|
| |
https://github.com/ruby/irb/commit/bcd96834c7
|