| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* 94b6933d1c6f4c8698319fbcac9dcecc9033b4b9
* ca76337a00244635faa331afd04f4b75161ce6fb
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Revert "Lock the entire active_units loop"
This reverts commit 5c2ff88be2e515613dfe54823e8429656f688e9f.
Revert "Lock active_units references on compaction"
This reverts commit 556a7285080c1344c75bb93a333c9bfc5d631c61.
Revert "Wait for GC before unload_units"
This reverts commit a8f16df615daa55901bb351efe038e86b61fbb92.
Well, the previous revert actually didn't fix it, but this series of
reverts seems to rollback the situation a little.
|
|
|
|
|
|
|
| |
This reverts commit 3319ce37651aa7e50c31b5fba14871938318b37a.
I still haven't figured out why, but this seems to have increased the
failure rate.
|
| |
|
| |
|
|
|
|
| |
The previous fix seems not working. Let me test if this works.
|
|
|
| |
[Bug #17372]
|
|
|
|
|
| |
Fixing the failure of a4f292426b40f9d6c8f3d646e4b7c667313074f2 like
https://github.com/ruby/ruby/runs/1513663542
|
|
|
|
| |
to convert list_node to rb_mjit_unit easily in gdb.
|
|
|
|
| |
https://bugs.ruby-lang.org/issues/17372
|
|
|
|
| |
uenc has already been initialized the top of the function.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Windows: Read ENV names and values as UTF-8 encoded Strings
Implements issue #12650: fix https://bugs.ruby-lang.org/issues/12650
This also removes the special encoding for ENV['PATH'] and some
complexity in the code that is unnecessary now.
* Windows: Improve readablity of getenv() encoding
getenv() did use the expected codepage as an implicit parameter of the macro.
This is mis-leading since include/ruby/win32.h has a different definition.
Using the "cp" variable explicit (like the other function calls) makes it
more readable and consistent.
* Windows: Change external C-API macros getenv() and execv() to use UTF-8
They used to process and return strings with locale encoding,
but since all ruby-internal spawn and environment functions use UTF-8,
it makes sense to change the C-API equally.
|
|
|
|
|
|
| |
* Use UTF-8 as default for Encoding.default_external on Windows
* Document UTF-8 change on Windows to Encoding.default_external
fix https://bugs.ruby-lang.org/issues/16604
|
|
|
|
| |
https://github.com/ruby/reline/commit/0a4f175b0a
|
| |
|
| |
|
|
|
|
|
| |
Not to be overwritten by test-bundler-prepare. gem files often
contain useless gemspec files which have not been processed.
|
|
|
|
| |
did_you_mean splits the output by `$/`.
|
|
|
|
|
| |
As `spec.files` is used for `executables` and so on, the expanded
list needs to be located at the same place.
|
|
|
|
|
| |
We couldn't support it for now, because getaddrinfo_a(3)
was reverted in 5d8bcc4870. `resolv_timeout` will be just ignored.
|
|
|
|
|
|
|
| |
Although gemspec file (e.g., power_assert and rake) often uses
`git ls-files`, as it does not make sense in other than its own
repository, it has been ignored now. Gather all files expanded
from the bundled gem to install, instead.
|
| |
|
| |
|
|
|
|
| |
Has been deprecated since 0c97c8e33584e6203bb09c08f92b63bd2cca8ae7.
|
| |
|
|
|
|
|
|
|
|
|
| |
Thread's interrupt set Ractor's wakeup_status as interrupted, but
the status remains next Ractor communication API. This patch makes
to ignore the previous interrupt state.
[Bug #17366]
Also this patch solves the Thread#kill and Ractor#take issues.
|
|
|
|
| |
Follow N2328 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2328.pdf
|
|
|
|
|
|
|
|
| |
getaddrinfo_a() gets stuck after fork().
To avoid this, we need 1 second sleep to wait for internal
worker threads of getaddrinfo_a() to be finished, but that is unacceptable.
[Bug #17220] [Feature #17134] [Feature #17187]
|
|
|
|
|
| |
Some data should be accessed in parallel so they should be protected
by the lock.
|
|
|
|
| |
This might race with mjit_recompile.
|
|
|
| |
* Update TypeProf to 0.9.0
|
|
|
|
|
|
|
|
|
| |
Write barrier requires VM lock because it accesses VM global bitmap
but RB_VM_LOCK_ENTER() can invoke GC because another ractor can wait
to invoke GC and RB_VM_LOCK_ENTER() is barrier point. This means that
before protecting by a write barrier, GC can invoke.
To prevent such situation, RB_VM_LOCK_ENTER_NO_BARRIER() is introduced.
This lock primitive does not become GC barrier points.
|
|
|
|
| |
This assertion is not considerred on multi-ractor mdoe.
|
|
|
|
|
|
|
| |
On windows, MJIT doesn't work without this patch because of
the declaration of ruby_single_main_ractor. This patch fix this
issue and move the definition of it from ractor.c to vm.c to locate
near place of ruby_current_vm_ptr.
|
|
|
|
|
| |
Passing current ec can improve performance of newobj. This patch
tries it for Array and String literals ([] and '').
|
|
|
|
| |
NEWOBJ with current ec.
|
|
|
|
|
|
|
|
| |
Now object allocation requires VM global lock to synchronize objspace.
However, of course, it introduces huge overhead.
This patch caches some slots (in a page) by each ractor and use cached
slots for object allocation. If there is no cached slots, acquire the global lock
and get new cached slots, or start GC (marking or lazy sweeping).
|
|
|
|
| |
Before this patch, there is no information to start locking.
|
|
|
|
|
| |
This is variant of RB_VM_LOCK_ENTER_LEV, but accept current racotr's
pointer.
|
|
|
|
|
|
|
| |
Without this patch, Ruby doesn't show ractor's information when
there is only 1 ractor. However it is hard to read the log when
some ractors are created and terminated. This patch makes to keep
showing ractor's information on multi-ractor mode.
|
|
|
|
|
|
|
| |
accessing theap needs complicating synchronization but it reduce
performance on multi-ractor mode. So simply stop using theap
on multi-ractor mode. In future, theap should be replaced with
more cleaver memory strategy.
|
|
|
|
|
|
|
|
| |
ruby_multi_ractor was a flag that indicates the interpreter doesn't
make any additional ractors (single ractor mode).
Instead of boolean flag, ruby_single_main_ractor pointer is introduced
which keeps main ractor's pointer if single ractor mode. If additional
ractors are created, ruby_single_main_ractor becomes NULL.
|