95567 Commits

Author SHA1 Message Date
Étienne Barrié
2f192c73cc [ruby/json] Respect Coder depth when generating
https://github.com/ruby/json/commit/9c36681b17
2025-11-27 13:01:57 +00:00
Étienne Barrié
78aa8d5b1d [ruby/json] Test current behavior regarding depth for Coder
Coder currently ignores its depth and always resets it to 0 when
generating a new JSON document.

https://github.com/ruby/json/commit/cca1f38316
2025-11-27 13:01:56 +00:00
Kazuhiro NISHIYAMA
68a7edaa81
[DOC] Fix a link in NEWS.md 2025-11-27 21:05:45 +09:00
Nobuyoshi Nakada
aebd391f9c
Clean prism directory 2025-11-27 18:47:59 +09:00
dependabot[bot]
3b09db3b35 Bump actions/checkout from 5.0.1 to 6.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5.0.1...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-27 16:36:52 +09:00
dependabot[bot]
cdf4634dc1 Bump actions/checkout in /.github/actions/setup/directories
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](93cb6efe18...1af3b93b68)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-27 16:36:32 +09:00
S-H-GAMELINKS
3ebb5b9c78 Remove unneeded trailing semicolons 2025-11-27 16:30:16 +09:00
Tommaso Barbato
4917f2335d Store snapshot info date as Date instead of String 2025-11-27 16:06:25 +09:00
Kouhei Yanagita
0f45d0c484 Update man and help: -d option set $VERBOSE to true 2025-11-27 16:00:35 +09:00
Sebastian Dufner
a2c12d3ffe Documentation: Added the |(pipe)/OR operator to syntax/methods.
It was not documented as an operator that can be overriden, which is confusing because it makes you think it can't be.
2025-11-27 15:48:10 +09:00
Alex Clink
3e926cd5dd NEWS.md: fix wording about Ractor::Port 2025-11-27 15:44:09 +09:00
NAITOH Jun
10522ca197 [DOC] Include strscan/lib 2025-11-27 15:00:57 +09:00
TOMITA Masahiro
2e770cdf77
Fix argument handling in IO::Buffer#each_byte (#15309)
The method incorrectly ignored its first argument and treated the second argument as offset and the third as count.
This change makes the first argument be treated as offset and the second as count.

Also fix incorrect block parameter in comments.
2025-11-27 15:10:43 +13:00
John Hawthorn
a60cd8787c Error if deleting a nonexistent obj from geniv
I don't think this ever happened, but we should raise the same error
we'd raise on lookup
2025-11-26 16:13:38 -08:00
John Hawthorn
5bef7577b3 Ensure we don't dereference fields_obj as Qundef
We rely on the GC to clear this when the GC is run on another EC than
the cache.
2025-11-26 16:13:38 -08:00
John Hawthorn
970b18e9a9 Clear fields obj when removing
This fixes a bug where the gen_fields_cache could become invalid when
the last ivar was removed. Also adds more assertions.
2025-11-26 16:13:38 -08:00
Max Bernstein
db94a79da4
ZJIT: Count fallback reasons for set/get/definedivar (#15324)
lobsters:

```
Top-4 setivar fallback reasons (100.0% of total 7,789,008):
  shape_transition: 6,074,085 (78.0%)
   not_monomorphic: 1,484,013 (19.1%)
      not_t_object:   172,629 ( 2.2%)
       too_complex:    58,281 ( 0.7%)
Top-3 getivar fallback reasons (100.0% of total 9,348,832):
     not_t_object: 4,658,833 (49.8%)
  not_monomorphic: 4,542,316 (48.6%)
      too_complex:   147,683 ( 1.6%)
Top-3 definedivar fallback reasons (100.0% of total 366,383):
  not_monomorphic: 361,389 (98.6%)
      too_complex:   3,062 ( 0.8%)
     not_t_object:   1,932 ( 0.5%)
```

railsbench:

```
Top-3 setivar fallback reasons (100.0% of total 15,119,057):
  shape_transition: 13,760,763 (91.0%)
   not_monomorphic:    982,368 ( 6.5%)
      not_t_object:    375,926 ( 2.5%)
Top-2 getivar fallback reasons (100.0% of total 14,438,747):
     not_t_object: 7,643,870 (52.9%)
  not_monomorphic: 6,794,877 (47.1%)
Top-2 definedivar fallback reasons (100.0% of total 209,613):
  not_monomorphic: 209,526 (100.0%)
     not_t_object:      87 ( 0.0%)
```

shipit:

```
Top-3 setivar fallback reasons (100.0% of total 14,516,254):
  shape_transition: 8,613,512 (59.3%)
   not_monomorphic: 5,761,398 (39.7%)
      not_t_object:   141,344 ( 1.0%)
Top-2 getivar fallback reasons (100.0% of total 21,016,444):
  not_monomorphic: 11,313,482 (53.8%)
     not_t_object:  9,702,962 (46.2%)
Top-2 definedivar fallback reasons (100.0% of total 290,382):
  not_monomorphic: 287,755 (99.1%)
     not_t_object:   2,627 ( 0.9%)
```
2025-11-26 15:36:00 -08:00
Nobuyoshi Nakada
52426a22de
Remove an excess colon [ci skip] 2025-11-27 08:10:56 +09:00
Luke Gruber
bee02c41bc
Fix a ractor barrier issue during VM cleanup. (#15091) 2025-11-26 17:14:55 -05:00
Luke Gruber
1660b8145c
Eliminate redundant work and branching when marking T_OBJECT (#15274) 2025-11-26 16:23:34 -05:00
Randy Stauner
5f55c9c8fb YJIT: Abort expandarray optimization if method_missing is defined
Fixes: [Bug #21707]
[AW: rewrote comments]
Co-authored-by: Alan Wu <alanwu@ruby-lang.org>
2025-11-26 15:56:27 -05:00
Stan Lo
c42c6c27c3 ZJIT: Remove dead unnecessary_transmutes allow
```
warning: unknown lint: `unnecessary_transmutes`
   --> zjit/src/cruby.rs:107:9
    |
107 | #[allow(unnecessary_transmutes)] // https://github.com/rust-lang/rust-bindgen/issues/2807
    |         ^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unknown_lints)]` on by default
```
2025-11-26 15:37:35 -05:00
John Hawthorn
67a14e94c6 Set age bitmap outside of adding to freelist
This allows us to do less work when allocating a fresh page.
2025-11-26 10:40:56 -08:00
John Hawthorn
795e290ead Avoid extra set of age bit flags 2025-11-26 10:40:56 -08:00
Jean Boussier
e057ff333a [Doc] Fix duplicated entry in GC.stat documentation 2025-11-26 18:06:58 +01:00
Étienne Barrié
ab3b79ea3d [ruby/json] Don't copy JSON_Generator_State in generate_new
Now that the state isn't mutated in generate_new, we no longer need to
copy the struct, we can just use it.

https://github.com/ruby/json/commit/d7964f8892
2025-11-26 14:47:27 +00:00
Étienne Barrié
98a9667736 [ruby/json] Don't write depth to JSON_Generator_State in some cases
For `JSON.generate` and `JSON::State#generate_new`, don't copy
generate_json_data::depth to JSON_Generator_State::depth.

In `JSON.generate`, the JSON_Generator_State is on the stack and
discarded anyway. In `JSON::State#generate_new`, we copy the struct to
avoid mutating the original one.

https://github.com/ruby/json/commit/873b29ea34
2025-11-26 14:47:27 +00:00
Étienne Barrié
4b8ec8c9fc [ruby/json] Add depth to struct generate_json_data
Instead of incrementing JSON_Generator_State::depth, we now increment
generate_json_data::depth, and only copied at the end.

https://github.com/ruby/json/commit/5abd434907
2025-11-26 14:47:27 +00:00
Étienne Barrié
adc0521b22 [ruby/json] Test to_json using State#depth
https://github.com/ruby/json/commit/ac0a980668
2025-11-26 14:47:27 +00:00
Étienne Barrié
dd6a4ea2b9 [ruby/json] Test depth
https://github.com/ruby/json/commit/d02e40324a
2025-11-26 14:47:27 +00:00
Étienne Barrié
fb642b78cb [ruby/json] Test that depth of unfrozen State does not change
https://github.com/ruby/json/commit/9d32cf4618
2025-11-26 14:47:27 +00:00
Sam Westerman
38022961ae [ruby/optparse] Remove unneeded public
Removed public visibility from the candidate method.

https://github.com/ruby/optparse/commit/9a784a89a2
2025-11-26 10:40:38 +00:00
Sam Westerman
6ace0251ef [ruby/optparse] Put private before method declarations
https://github.com/ruby/optparse/commit/5478354d4f
2025-11-26 10:40:38 +00:00
Nobuyoshi Nakada
c85eb2d0d0 [ruby/timeout] Revert "Suppress warnings in two tests"
This reverts commit https://github.com/ruby/timeout/commit/983cbf636a17, that is
fixed by test-unit 3.7.3.

https://github.com/ruby/timeout/commit/095207f270
2025-11-26 09:55:51 +00:00
git
61f3456803 Update default gems list at ecdeb90fe94af86c6d84fe343c1f95 [ci skip] 2025-11-26 07:03:09 +00:00
Hiroshi SHIBATA
ecdeb90fe9 [ruby/rubygems] Bump up to 4.0.0.beta2
https://github.com/ruby/rubygems/commit/b8529f48bf
2025-11-26 07:01:41 +00:00
Nobuyoshi Nakada
525ee3ab26 [ruby/cgi] Fix mixed declarations and code
Use C90 syntax only, as far as supporting ruby 2.6 or earlier.

https://github.com/ruby/cgi/commit/886c82982a
2025-11-26 06:50:54 +00:00
Nobuyoshi Nakada
43ed35de6c [ruby/cgi] Skip unless CGI::EscapeExt methods are implemented
https://github.com/ruby/cgi/commit/7b5a13952b
2025-11-26 06:41:42 +00:00
Nobuyoshi Nakada
72eb929ec1
[DOC] Exclude the word Box from RDoc's autolinking 2025-11-26 11:50:24 +09:00
Nobuyoshi Nakada
30fe3654ca
Ignore missed commits [ci skip] 2025-11-26 11:48:36 +09:00
Nobuyoshi Nakada
2f53985da9
Revert miscommit at "Reset the cache variable before retrying"
This reverts commit 26a9e0b4e31f7b5a9cbd755e0a15823a8fa51bae partially.
2025-11-26 11:35:15 +09:00
Alan Wu
724e94a09c ZJIT: CI: Run btest with call-threshold=2 2025-11-25 21:26:08 -05:00
git
0b0c2cc4cb Update bundled gems list as of 2025-11-25 2025-11-26 02:08:43 +00:00
Nobuyoshi Nakada
26a9e0b4e3
Reset the cache variable before retrying 2025-11-26 10:47:17 +09:00
git
6354afa64a Update bundled gems list as of 2025-11-26 2025-11-26 01:23:33 +00:00
Stan Lo
1e6079dcaf
[DOC] Use Aliki as the documentation website theme (#15319)
Use Aliki as the documentation website theme
2025-11-26 01:22:39 +00:00
Satoshi Tagomori
e84b91a292 Box: mark/move Box object referred via ENV/rb_env_t 2025-11-26 10:10:47 +09:00
Satoshi Tagomori
0654bcd4f8 Box: Add a test to drop the reference to a box 2025-11-26 10:10:47 +09:00
Peter Zhu
8bf333a199 Fix live object count for multi-Ractor forking
Since we do not run a Ractor barrier before forking, it's possible that
another other Ractor is halfway through allocating an object during forking.
This may lead to allocated_objects_count being off by one.

For example, the following script reproduces the bug:

    100.times do |i|
      Ractor.new(i) do |j|
        10000.times do |i|
          "#{j}-#{i}"
        end
        Ractor.receive
      end
      pid = fork { GC.verify_internal_consistency }
      _, status = Process.waitpid2 pid
      raise unless status.success?
    end

We need to run with `taskset -c 1` to force it to use a single CPU core
to more consistenly reproduce the bug:

    heap_pages_final_slots: 1, total_freed_objects: 16628
    test.rb:8: [BUG] inconsistent live slot number: expect 19589, but 19588.
    ruby 4.0.0dev (2025-11-25T03:06:55Z master 55892f5994) +PRISM [x86_64-linux]

    -- Control frame information -----------------------------------------------
    c:0007 p:---- s:0029 e:000028 l:y b:---- CFUNC  :verify_internal_consistency
    c:0006 p:0004 s:0025 e:000024 l:n b:---- BLOCK  test.rb:8 [FINISH]
    c:0005 p:---- s:0022 e:000021 l:y b:---- CFUNC  :fork
    c:0004 p:0012 s:0018 E:0014c0 l:n b:---- BLOCK  test.rb:8
    c:0003 p:0024 s:0011 e:000010 l:y b:0001 METHOD <internal:numeric>:257
    c:0002 p:0005 s:0006 E:001730 l:n b:---- EVAL   test.rb:1 [FINISH]
    c:0001 p:0000 s:0003 E:001d20 l:y b:---- DUMMY  [FINISH]

    -- Ruby level backtrace information ----------------------------------------
    test.rb:1:in '<main>'
    <internal:numeric>:257:in 'times'
    test.rb:8:in 'block in <main>'
    test.rb:8:in 'fork'
    test.rb:8:in 'block (2 levels) in <main>'
    test.rb:8:in 'verify_internal_consistency'

    -- Threading information ---------------------------------------------------
    Total ractor count: 1
    Ruby thread count for this ractor: 1

    -- C level backtrace information -------------------------------------------
    ruby(rb_print_backtrace+0x14) [0x61b67ac48b60] vm_dump.c:1105
    ruby(rb_vm_bugreport) vm_dump.c:1450
    ruby(rb_bug_without_die_internal+0x5f) [0x61b67a818a28] error.c:1098
    ruby(rb_bug) error.c:1116
    ruby(gc_verify_internal_consistency_+0xbdd) [0x61b67a83d8ed] gc/default/default.c:5186
    ruby(gc_verify_internal_consistency+0x2d) [0x61b67a83d960] gc/default/default.c:5241
    ruby(rb_gc_verify_internal_consistency) gc/default/default.c:8950
    ruby(gc_verify_internal_consistency_m) gc/default/default.c:8966
    ruby(vm_call_cfunc_with_frame_+0x10d) [0x61b67a9e50fd] vm_insnhelper.c:3902
    ruby(vm_sendish+0x111) [0x61b67a9eeaf1] vm_insnhelper.c:6124
    ruby(vm_exec_core+0x84) [0x61b67aa07434] insns.def:903
    ruby(vm_exec_loop+0xa) [0x61b67a9f8155] vm.c:2811
    ruby(rb_vm_exec) vm.c:2787
    ruby(vm_yield_with_cref+0x90) [0x61b67a9fd2ea] vm.c:1865
    ruby(vm_yield) vm.c:1873
    ruby(rb_yield) vm_eval.c:1362
    ruby(rb_protect+0xef) [0x61b67a81fe6f] eval.c:1154
    ruby(rb_f_fork+0x16) [0x61b67a8e98ab] process.c:4293
    ruby(rb_f_fork) process.c:4284
2025-11-25 14:19:30 -08:00
John Hawthorn
4263f1d718 Store fiber serial as Ractor-local 2025-11-25 13:48:35 -08:00