summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
30 hoursAdd missing write barrier in set_i_initialize_copyJohn Hawthorn
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
33 hoursZJIT: Parse opt_regexpmatch2 into HIRAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13549
33 hoursZJIT: Parse opt_not into HIRAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13549
33 hoursZJIT: Parse opt_or into HIRAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13549
33 hoursZJIT: Parse opt_and into HIRAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13549
33 hoursZJIT: Parse opt_succ into HIRAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13549
33 hoursZJIT: Parse opt_empty_p into HIRAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13549
39 hours[Feature #21219] Selective inspect of instance variablesNobuyoshi Nakada
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
3 daysrecord load average at failKoichi Sasada
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. ```
3 daysincrease timeout for high load envKoichi Sasada
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 ```
3 daysGet rid of SHAPE_T_OBJECTJean Boussier
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
3 daysReplicate `heap_index` in shape_id flags.Jean Boussier
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
4 daysshape.c: match capacity growth with T_OBJECT embedded sizesJean Boussier
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
5 daysZJIT: Add codegen for uncached setinstancevariableMax Bernstein
Notes: Merged: https://github.com/ruby/ruby/pull/13527
5 daysZJIT: Add codegen for uncached getinstancevariableMax Bernstein
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
5 daysFix `blocking_operation_wait` use-after-free bug.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/13437
5 days`rb_io_blocking_operation_exit` should not execute with pending interrupts.Samuel Williams
Notes: Merged: https://github.com/ruby/ruby/pull/13437
5 daysSync ruby/opensslHiroshi SHIBATA
Pick https://github.com/ruby/openssl/pull/896
5 daysMove most of Bundler::GemHelpers to Gem::PlatformSamuel Giddins
This will help centralize wheel platform selection logic eventually Signed-off-by: Samuel Giddins <[email protected]>
5 daysHandle spurious wakeups in `Thread#join`. (#13532)Samuel Williams
Notes: Merged-By: ioquatix <[email protected]>
5 daysZJIT: Pass self through basic block params (#13529)Takashi Kokubun
* 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]>
5 daysRefactor raw accesses to rb_shape_t.capacityJean Boussier
Notes: Merged: https://github.com/ruby/ruby/pull/13524
5 daysAdd debug message to test_heaps_grow_independentlyPeter Zhu
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
5 daysZJIT: Add `insns` param that tests for opcode presenceAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/13470 Merged-By: XrXr
6 days[rubygems/rubygems] Fix headings levels in ChangelogsAntoine Marguerie
And adapt release scripts and configuration to the new structure. https://github.com/rubygems/rubygems/commit/3deb1aedae
6 daysGet rid of `rb_shape_t.flags`Jean Boussier
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
6 daysZJIT: Add newrange support (#13505)Stan Lo
* Add newrange support to zjit * Add RangeType enum for Range insn's flag * Address other feedback Notes: Merged-By: k0kubun <[email protected]>
6 daysmark main Ractor objectKoichi Sasada
`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
6 daysZJIT: Implement side exits for entry frames (#13469)Takashi Kokubun
Co-authored-by: Max Bernstein <[email protected]> Co-authored-by: Alan Wu <[email protected]> Notes: Merged-By: k0kubun <[email protected]>
7 daysZJIT: Spill to the stack using arguments instead of FrameStateAlan Wu
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
7 days[ruby/did_you_mean] Revert "Alias value to take in old Ruby"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/did_you_mean/commit/15d7b0bfa573. https://github.com/ruby/did_you_mean/commit/86a7daca19
7 daysGet rid of frozen shapes.Jean Boussier
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
7 days[ruby/psych] Revert "Alias value or join to take in old Ruby"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/psych/commit/1a4d383efe0b. https://github.com/ruby/psych/commit/2f51c02280
7 days[ruby/uri] Revert "Alias value or join to take in old Ruby"Hiroshi SHIBATA
This reverts commit https://github.com/ruby/uri/commit/443ed0cf8540. https://github.com/ruby/uri/commit/9e51838a04
7 days[ruby/date] Removed workaround for assert_ractorHiroshi SHIBATA
https://github.com/ruby/date/commit/700e44ef54
7 days[ruby/time] Removed workaround for assert_ractorHiroshi SHIBATA
https://github.com/ruby/time/commit/337410e971
7 days[ruby/etc] Removed workaround for assert_ractorHiroshi SHIBATA
https://github.com/ruby/etc/commit/fd61177b71
7 daysFix scheduler warningJean Boussier
``` test/fiber/test_scheduler.rb:98: warning: Scheduler should implement #fiber_interrupt ``` Notes: Merged: https://github.com/ruby/ruby/pull/13501
7 daysFix memory leak in Prism's RubyVM::InstructionSequence.newPeter Zhu
[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
8 days[ruby/tmpdir] Restore Ractor.yield style test for old version of RubyHiroshi SHIBATA
https://github.com/ruby/tmpdir/commit/f12c766996
8 days[ruby/time] Alias value or join to take in old RubyHiroshi SHIBATA
https://github.com/ruby/time/commit/2a1827b0ce
8 days[ruby/json] Update `JSONInRactorTest` to handle Ruby 3.5 Ractors.Jean Boussier
https://github.com/ruby/json/commit/d42b36963d
8 days[ruby/strscan] Support `Ractor#value`Hiroshi SHIBATA
(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]>
8 days[ruby/pathname] Alias value or join to take in old RubyHiroshi SHIBATA
https://github.com/ruby/pathname/commit/c501767d12
8 days[ruby/uri] Alias value or join to take in old RubyHiroshi SHIBATA
https://github.com/ruby/uri/commit/443ed0cf85
8 days[ruby/io-wait] Alias value or join to take in old RubyHiroshi SHIBATA
https://github.com/ruby/io-wait/commit/cf84aea70d
8 days[ruby/did_you_mean] Omit some tests with JRubyHiroshi SHIBATA
https://github.com/ruby/did_you_mean/commit/a7a438ae27
8 days[ruby/did_you_mean] Alias value to take in old RubyHiroshi SHIBATA
https://github.com/ruby/did_you_mean/commit/15d7b0bfa5
8 days[ruby/psych] Alias value or join to take in old RubyHiroshi SHIBATA
https://github.com/ruby/psych/commit/1a4d383efe
8 days[ruby/stringio] Support `Ractor#value`Hiroshi SHIBATA
(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]>