Age | Commit message (Collapse) | Author |
|
When we copy the table from one set to another we need to run write
barriers.
Notes:
Merged: https://github.com/ruby/ruby/pull/13558
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13549
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13549
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13549
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13549
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13549
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13549
|
|
Make Kernel#inspect ask which instance variables should be dumped by
the result of `#instance_variables_to_inspect`.
Co-Authored-By: Jean Boussier <[email protected]>
Notes:
Merged: https://github.com/ruby/ruby/pull/13555
|
|
On a high load machine, the following test can fail.
This patch simply records the load average with `uptime`.
```
1) Failure:
TestThreadQueue#test_thr_kill [/tmp/ruby/src/trunk_gcc10/test/ruby/test_thread_queue.rb:239]:
only 165/250 done in 60 seconds.
```
|
|
I can reproduce timeout failure with the high load machine:
```
$ RUBY_MAX_CPU=100 ruby -e '100.times{Ractor.new{loop{}}}; sleep' &
$ while make test-all -o exts -o encs TESTS='ruby/gc -n /test_interrupt_in_finalizer/ --repeat-count=100'; do date; done
....
Finished(93/100) tests in 0.653434s, 1.5304 tests/s, 7.6519 assertions/s.
Finished(94/100) tests in 0.614422s, 1.6275 tests/s, 8.1377 assertions/s.
[1/1] TestGc#test_interrupt_in_finalizer = 11.08 s
1) Timeout:
TestGc#test_interrupt_in_finalizer
```
|
|
Now that we have the `heap_index` in shape flags we no longer
need `T_OBJECT` shapes.
Notes:
Merged: https://github.com/ruby/ruby/pull/13556
|
|
This is preparation to getting rid of `T_OBJECT` transitions.
By first only replicating the information it's easier to ensure
consistency.
Notes:
Merged: https://github.com/ruby/ruby/pull/13556
|
|
This helps with getting with of `SHAPE_T_OBJECT`, by ensuring
that transitions will have capacities that match the next embed size.
Notes:
Merged: https://github.com/ruby/ruby/pull/13548
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13527
|
|
I didn't know `rb_ivar_get` existed until @Xrxr pointed me to it.
Thanks, Alan!
Notes:
Merged: https://github.com/ruby/ruby/pull/13527
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13437
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13437
|
|
Pick https://github.com/ruby/openssl/pull/896
|
|
This will help centralize wheel platform selection logic eventually
Signed-off-by: Samuel Giddins <[email protected]>
|
|
Notes:
Merged-By: ioquatix <[email protected]>
|
|
* ZJIT: Pass self through basic block params
Co-authored-by: Max Bernstein <[email protected]>
* Add comments for self
* Use self_param for ivar
* Make self_param a loop local
* Fix rest parameter type check
* Push self_param first
* Add a test case for putself
* Use SELF_PARAM_IDX
Co-authored-by: Max Bernstein <[email protected]>
* Fix test_unknown
---------
Co-authored-by: Max Bernstein <[email protected]>
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13524
|
|
To debug flaky failures on i686 that look like:
1) Failure:
TestGc#test_heaps_grow_independently [test/ruby/test_gc.rb:704]:
Expected 2061929 to be < 2000000.
Notes:
Merged: https://github.com/ruby/ruby/pull/13140
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13470
Merged-By: XrXr
|
|
And adapt release scripts and configuration to the new structure.
https://github.com/rubygems/rubygems/commit/3deb1aedae
|
|
Now all flags are only in the `shape_id_t`, and can all be checked
without needing to dereference a pointer.
Notes:
Merged: https://github.com/ruby/ruby/pull/13515
|
|
* Add newrange support to zjit
* Add RangeType enum for Range insn's flag
* Address other feedback
Notes:
Merged-By: k0kubun <[email protected]>
|
|
`RUBY_DEBUG=gc_stress ./miniruby -e0` crashes because of this
marking miss.
BTW, to use `RUBY_DEBUG=gc_stress` we need to specify
`--enable-debug-env` configure option. This is why I couldn't repro
on my environments.
see c0c94ab183d0d428595ccb74ae71ee945f1afd45
Notes:
Merged: https://github.com/ruby/ruby/pull/13506
|
|
Co-authored-by: Max Bernstein <[email protected]>
Co-authored-by: Alan Wu <[email protected]>
Notes:
Merged-By: k0kubun <[email protected]>
|
|
The FrameState on the SendWithoutBlock represents the entry state,
but for instructions that push to the stack in the middle of the
instruction before actually doing the send like opt_aref_with,
the FrameState is incorrect. We need to write to the stack using the
arguments for the instruction.
Notes:
Merged: https://github.com/ruby/ruby/pull/13468
|
|
This reverts commit https://github.com/ruby/did_you_mean/commit/15d7b0bfa573.
https://github.com/ruby/did_you_mean/commit/86a7daca19
|
|
Instead `shape_id_t` higher bits contain flags, and the first one
tells whether the shape is frozen.
This has multiple benefits:
- Can check if a shape is frozen with a single bit check instead of
dereferencing a pointer.
- Guarantees it is always possible to transition to frozen.
- This allow reclaiming `FL_FREEZE` (not done yet).
The downside is you have to be careful to preserve these flags
when transitioning.
Notes:
Merged: https://github.com/ruby/ruby/pull/13289
|
|
This reverts commit https://github.com/ruby/psych/commit/1a4d383efe0b.
https://github.com/ruby/psych/commit/2f51c02280
|
|
This reverts commit https://github.com/ruby/uri/commit/443ed0cf8540.
https://github.com/ruby/uri/commit/9e51838a04
|
|
https://github.com/ruby/date/commit/700e44ef54
|
|
https://github.com/ruby/time/commit/337410e971
|
|
https://github.com/ruby/etc/commit/fd61177b71
|
|
```
test/fiber/test_scheduler.rb:98: warning: Scheduler should implement #fiber_interrupt
```
Notes:
Merged: https://github.com/ruby/ruby/pull/13501
|
|
[Bug #21394]
There are two ways to make RubyVM::InstructionSequence.new raise which
would cause the options->scopes to leak memory:
1. Passing in any (non T_FILE) object where the to_str raises.
2. Passing in a T_FILE object where String#initialize_dup raises. This is
because rb_io_path dups the string.
Example 1:
10.times do
100_000.times do
RubyVM::InstructionSequence.new(nil)
rescue TypeError
end
puts `ps -o rss= -p #{$$}`
end
Before:
13392
17104
20256
23920
27264
30432
33584
36752
40032
43232
After:
9392
11072
11648
11648
11648
11712
11712
11712
11744
11744
Example 2:
require "tempfile"
MyError = Class.new(StandardError)
String.prepend(Module.new do
def initialize_dup(_)
if $raise_on_dup
raise MyError
else
super
end
end
end)
Tempfile.create do |f|
10.times do
100_000.times do
$raise_on_dup = true
RubyVM::InstructionSequence.new(f)
rescue MyError
else
raise "MyError was not raised during RubyVM::InstructionSequence.new"
end
puts `ps -o rss= -p #{$$}`
ensure
$raise_on_dup = false
end
end
Before:
14080
18512
22000
25184
28320
31600
34736
37904
41088
44256
After:
12016
12464
12880
12880
12880
12912
12912
12912
12912
12912
Notes:
Merged: https://github.com/ruby/ruby/pull/13496
|
|
https://github.com/ruby/tmpdir/commit/f12c766996
|
|
https://github.com/ruby/time/commit/2a1827b0ce
|
|
https://github.com/ruby/json/commit/d42b36963d
|
|
(https://github.com/ruby/strscan/pull/157)
This is same as https://github.com/ruby/stringio/pull/134
---------
https://github.com/ruby/strscan/commit/141f9cf9b6
Co-authored-by: Koichi Sasada <[email protected]>
|
|
https://github.com/ruby/pathname/commit/c501767d12
|
|
https://github.com/ruby/uri/commit/443ed0cf85
|
|
https://github.com/ruby/io-wait/commit/cf84aea70d
|
|
https://github.com/ruby/did_you_mean/commit/a7a438ae27
|
|
https://github.com/ruby/did_you_mean/commit/15d7b0bfa5
|
|
https://github.com/ruby/psych/commit/1a4d383efe
|
|
(https://github.com/ruby/stringio/pull/134)
from https://bugs.ruby-lang.org/issues/21262
We need to alias `Ractor#value` to `Ractor#take` for old versions of
Ruby.
---------
https://github.com/ruby/stringio/commit/9954dabd80
Co-authored-by: Koichi Sasada <[email protected]>
Co-authored-by: Sutou Kouhei <[email protected]>
|