ruby.git
4 hours agoHandle test failure of mock objectmaster
Hiroshi SHIBATA [Sun, 1 Jun 2025 23:50:54 +0000 (2 08:50 +0900)]
Handle test failure of mock object

Fixup 4c26a38ed3c

https://rubyci.s3.amazonaws.com/amazon2/ruby-master/log/20250601T213003Z.fail.html.gz

```
1)
An exception occurred during: Mock.verify_count
File.birthtime accepts an object that has a #to_path method FAILED
Mock 'path' expected to receive to_path(:any_args) exactly 1 times
but received it 0 times
/home/chkbuild/chkbuild/tmp/build/20250601T213003Z/ruby/spec/ruby/core/file/birthtime_spec.rb:4:in 'block in <top (required)>'
/home/chkbuild/chkbuild/tmp/build/20250601T213003Z/ruby/spec/ruby/core/file/birthtime_spec.rb:3:in '<top (required)>'
```

20 hours agoUpdate bundled gems list as of 2025-06-01
git [Sun, 1 Jun 2025 07:03:33 +0000 (1 07:03 +0000)]
Update bundled gems list as of 2025-06-01

22 hours agoSkip birthtime failures on old linux
Nobuyoshi Nakada [Sun, 1 Jun 2025 05:22:51 +0000 (1 14:22 +0900)]
Skip birthtime failures on old linux

`statx(2)` is available since Linux 4.11 and glibc 2.28.

24 hours agoWin: Use `VsDevCmd.bat` instead of old `vcvarsall.bat`
Nobuyoshi Nakada [Sat, 31 May 2025 10:02:32 +0000 (31 19:02 +0900)]
Win: Use `VsDevCmd.bat` instead of old `vcvarsall.bat`

26 hours agoWin: Fix `winget` command to `install`
Nobuyoshi Nakada [Sat, 31 May 2025 10:01:53 +0000 (31 19:01 +0900)]
Win: Fix `winget` command to `install`

40 hours agoUpdate rake version in bundler tests
Nobuyoshi Nakada [Sat, 31 May 2025 11:56:00 +0000 (31 20:56 +0900)]
Update rake version in bundler tests

41 hours agoUpdate rake version in lock files
Nobuyoshi Nakada [Sat, 31 May 2025 10:21:14 +0000 (31 19:21 +0900)]
Update rake version in lock files

42 hours agoUpdate bundled gems list as of 2025-05-31
git [Sat, 31 May 2025 09:43:52 +0000 (31 09:43 +0000)]
Update bundled gems list as of 2025-05-31

42 hours agoBump bundled bigdecimal to 3.2.1 (#13482)
tomoya ishida [Sat, 31 May 2025 09:31:17 +0000 (31 18:31 +0900)]
Bump bundled bigdecimal to 3.2.1 (#13482)

42 hours agoFix typo (s/ractore/ractor/)
Daisuke Aritomo [Sat, 31 May 2025 01:12:41 +0000 (31 10:12 +0900)]
Fix typo (s/ractore/ractor/)

42 hours agoprepare IDs for `Ractor::monitor`
Koichi Sasada [Sat, 31 May 2025 04:13:38 +0000 (31 13:13 +0900)]
prepare IDs for `Ractor::monitor`

To prevent the following strange error, prepare IDs at first.

```
     <internal:ractor>:596:in 'Ractor#monitor': symbol :exited is already registered with 98610c (fatal)
             from <internal:ractor>:550:in 'Ractor#join'
             from <internal:ractor>:574:in 'Ractor#value'
             from bootstraptest.test_ractor.rb_2013_1309.rb:12:in '<main>'
```

BTW, the error should be fixed on ID management system.

43 hours agorake 13.3.0 -> 13.2.1
Koichi Sasada [Sat, 31 May 2025 06:23:10 +0000 (31 15:23 +0900)]
rake 13.3.0 -> 13.2.1

`make test-bundler-parallel` prints many errors, so try to
downgrade rake version.

```
  219) bundle install --standalone run in a subdirectory with --binstubs creates stubs that can be symlinked
       Failure/Error:
               raise <<~ERROR
                 #{error_header}

                 ----------------------------------------------------------------------
                 #{stdboth}
                 ----------------------------------------------------------------------
               ERROR

       RuntimeError:

         Commands:
         $ /home/ko1/ruby/build/trunk/ruby -I/home/ko1/ruby/src/trunk/spec/bundler -r/home/ko1/ruby/src/trunk/spec/bundler/support/artifice/compact_index.rb -r/home/ko1/ruby/src/trunk/spec/bundler/support/hax.rb /home/ko1/ruby/src/trunk/tmp/2.13/gems/system/bin/bundle config set --local path /home/ko1/ruby/src/trunk/tmp/2.13/bundled_app/bundle
         # $? => 0
         Invoking `/home/ko1/ruby/build/trunk/ruby -I/home/ko1/ruby/src/trunk/spec/bundler -r/home/ko1/ruby/src/trunk/spec/bundler/support/artifice/compact_index.rb -r/home/ko1/ruby/src/trunk/spec/bundler/support/hax.rb /home/ko1/ruby/src/trunk/tmp/2.13/gems/system/bin/bundle install --standalone --binstubs` failed with output:

         ----------------------------------------------------------------------
         [DEPRECATED] The --binstubs option will be removed in favor of `bundle binstubs --all`
         Could not find compatible versions

         Because every version of rails depends on rake = 13.3.0
           and rake = 13.3.0 could not be found in rubygems repository https://gem.repo1/ or installed locally,
           rails cannot be used.
         So, because Gemfile depends on rails >= 0,
           version solving has failed.
         Fetching gem metadata from https://gem.repo1/...
         Resolving dependencies...
         ----------------------------------------------------------------------
       Shared Example Group: "bundle install --standalone" called from ./spec/bundler/install/gems/standalone_spec.rb:532
       # /home/ko1/ruby/src/trunk/spec/bundler/support/command_execution.rb:26:in 'Spec::CommandExecution#raise_error!'
       # /home/ko1/ruby/src/trunk/spec/bundler/support/subprocess.rb:66:in 'Spec::Subprocess#sh'
       # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:216:in 'Spec::Helpers#sys_exec'
       # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:107:in 'Spec::Helpers#bundle'
       # /home/ko1/ruby/src/trunk/spec/bundler/install/gems/standalone_spec.rb:482:in 'block (3 levels) in <top (required)>'
       # /home/ko1/ruby/src/trunk/spec/bundler/spec_helper.rb:107:in 'block (4 levels) in <top (required)>'
       # /home/ko1/ruby/src/trunk/spec/bundler/spec_helper.rb:107:in 'block (3 levels) in <top (required)>'
       # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:355:in 'block in Spec::Helpers#with_gem_path_as'
       # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:369:in 'Spec::Helpers#without_env_side_effects'
       # /home/ko1/ruby/src/trunk/spec/bundler/support/helpers.rb:350:in 'Spec::Helpers#with_gem_path_as'
       # /home/ko1/ruby/src/trunk/spec/bundler/spec_helper.rb:106:in 'block (2 levels) in <top (required)>'
```

44 hours ago[DOC] Fix indentation
Nobuyoshi Nakada [Mon, 19 May 2025 13:49:22 +0000 (19 22:49 +0900)]
[DOC] Fix indentation

RDoc markdown parser requires exact 4 spaces or tab as indentation.
Also the first nested bullet list must be separated from the enclosing
bullet list item by a blank line.

47 hours agoNEWS entries for `Ractor::Port`
Koichi Sasada [Sat, 31 May 2025 01:27:31 +0000 (31 10:27 +0900)]
NEWS entries for `Ractor::Port`

47 hours agoskip failing test in a week
Koichi Sasada [Fri, 30 May 2025 23:38:58 +0000 (31 08:38 +0900)]
skip failing test in a week

```
  1) Failure:
TestGc#test_gc_stress_at_startup [/home/chkbuild/chkbuild/tmp/build/20250530T213003Z/ruby/test/ruby/test_gc.rb:799]:
[Bug #15784]
pid 1748790 killed by SIGSEGV (signal 11) (core dumped).

1. [3/3] Assertion for "success?"
   | Expected #<Process::Status: pid 1748790 SIGSEGV (signal 11) (core dumped)> to be success?.
```

2 days agoskip flaky test
Koichi Sasada [Fri, 30 May 2025 23:17:36 +0000 (31 08:17 +0900)]
skip flaky test

```
  1) Failure:
TestProcess#test_warmup_frees_pages [/tmp/ruby/src/trunk-random1/test/ruby/test_process.rb:2772]:
<164348> expected but was
<165985>.
```

can someone investigate it?

2 days agoUpdate bundled gems list as of 2025-05-30
git [Fri, 30 May 2025 19:14:14 +0000 (30 19:14 +0000)]
Update bundled gems list as of 2025-05-30

2 days agoskip tests for BigDecimal 3.2.0
Koichi Sasada [Fri, 30 May 2025 17:38:41 +0000 (31 02:38 +0900)]
skip tests for BigDecimal 3.2.0

2 days agofix for test-bundled-gems to catch up new API
Koichi Sasada [Thu, 29 May 2025 10:19:29 +0000 (29 19:19 +0900)]
fix for test-bundled-gems to catch up new API

2 days ago`Ractor::Port`
Koichi Sasada [Mon, 26 May 2025 18:58:04 +0000 (27 03:58 +0900)]
`Ractor::Port`

* Added `Ractor::Port`
  * `Ractor::Port#receive` (support multi-threads)
  * `Rcator::Port#close`
  * `Ractor::Port#closed?`
* Added some methods
  * `Ractor#join`
  * `Ractor#value`
  * `Ractor#monitor`
  * `Ractor#unmonitor`
* Removed some methods
  * `Ractor#take`
  * `Ractor.yield`
* Change the spec
  * `Racotr.select`

You can wait for multiple sequences of messages with `Ractor::Port`.

```ruby
ports = 3.times.map{ Ractor::Port.new }
ports.map.with_index do |port, ri|
  Ractor.new port,ri do |port, ri|
    3.times{|i| port << "r#{ri}-#{i}"}
  end
end

p ports.each{|port| pp 3.times.map{port.receive}}

```

In this example, we use 3 ports, and 3 Ractors send messages to them respectively.
We can receive a series of messages from each port.

You can use `Ractor#value` to get the last value of a Ractor's block:

```ruby
result = Ractor.new do
  heavy_task()
end.value
```

You can wait for the termination of a Ractor with `Ractor#join` like this:

```ruby
Ractor.new do
  some_task()
end.join
```

`#value` and `#join` are similar to `Thread#value` and `Thread#join`.

To implement `#join`, `Ractor#monitor` (and `Ractor#unmonitor`) is introduced.

This commit changes `Ractor.select()` method.
It now only accepts ports or Ractors, and returns when a port receives a message or a Ractor terminates.

We removes `Ractor.yield` and `Ractor#take` because:
* `Ractor::Port` supports most of similar use cases in a simpler manner.
* Removing them significantly simplifies the code.

We also change the internal thread scheduler code (thread_pthread.c):
* During barrier synchronization, we keep the `ractor_sched` lock to avoid deadlocks.
  This lock is released by `rb_ractor_sched_barrier_end()`
  which is called at the end of operations that require the barrier.
* fix potential deadlock issues by checking interrupts just before setting UBF.

https://bugs.ruby-lang.org/issues/21262

2 days ago[ruby/mmtk] Fix environment variable parsing
Kunshan Wang [Wed, 28 May 2025 08:21:09 +0000 (28 16:21 +0800)]
[ruby/mmtk] Fix environment variable parsing

Ues more idiomatic rust approaches.

https://github.com/ruby/mmtk/commit/ef125f9eae

2 days ago[ruby/mmtk] Fix clippy warnings and formatting.
Kunshan Wang [Wed, 28 May 2025 06:28:19 +0000 (28 14:28 +0800)]
[ruby/mmtk] Fix clippy warnings and formatting.

We also enable `#![warn(unsafe_op_in_unsafe_fn)]` in the whole mmtk_ruby
crate.

https://github.com/ruby/mmtk/commit/8b8025f71a

2 days ago[ruby/mmtk] Bump MMTk and dependencies version
Kunshan Wang [Tue, 27 May 2025 08:57:21 +0000 (27 16:57 +0800)]
[ruby/mmtk] Bump MMTk and dependencies version

https://github.com/ruby/mmtk/commit/de252637ec

2 days ago[ruby/mmtk] Remove unused constant
Kunshan Wang [Tue, 27 May 2025 08:31:54 +0000 (27 16:31 +0800)]
[ruby/mmtk] Remove unused constant

Remove the unused constant HAS_MOVED_GFIELDSTBL and related methods.

In the mmtk/mmtk-ruby repo, we are now able to find the global field
(IV) table of a moved object during copying GC without using the
HAS_MOVED_GFIELDSTBL bit.  We synchronize some of the code, although we
haven't implemented moving GC in ruby/mmtk, yet.

See: https://github.com/mmtk/mmtk-ruby/commit/13080acdf553f20a88a7ea9ab9f6877611017136

https://github.com/ruby/mmtk/commit/400ba4e747

2 days agoZJIT: Fold more fixnum operations (#13465)
Tavian Barnes [Fri, 30 May 2025 14:27:00 +0000 (30 10:27 -0400)]
ZJIT: Fold more fixnum operations (#13465)

2 days agoZJIT: Assert that we're compiling a specific YARV insn to HIR (#13471)
Max Bernstein [Fri, 30 May 2025 14:23:26 +0000 (30 10:23 -0400)]
ZJIT: Assert that we're compiling a specific YARV insn to HIR (#13471)

2 days ago[Feature #21205] Fix up birthtime in ruby/spec
Nobuyoshi Nakada [Sat, 10 May 2025 06:40:24 +0000 (10 15:40 +0900)]
[Feature #21205] Fix up birthtime in ruby/spec

2 days ago[Feature #21205] Define File::Stat#birthtime by statx
Nobuyoshi Nakada [Fri, 9 May 2025 13:16:34 +0000 (9 22:16 +0900)]
[Feature #21205] Define File::Stat#birthtime by statx

2 days agoWin: Add scripts to install and setup
Nobuyoshi Nakada [Thu, 29 May 2025 11:09:47 +0000 (29 20:09 +0900)]
Win: Add scripts to install and setup

3 days agoFix memory leak with invalid yield in prism
Peter Zhu [Wed, 28 May 2025 18:48:02 +0000 (28 14:48 -0400)]
Fix memory leak with invalid yield in prism

[Bug #21383]

The following script leaks memory:

    10.times do
      20_000.times do
        eval("class C; yield; end")
      rescue SyntaxError
      end

      puts `ps -o rss= -p #{$$}`
    end

Before:

    16464
    25536
    29424
    35904
    39552
    44576
    46736
    51600
    56096
    59824

After:

    13488
    16160
    18240
    20528
    19760
    21808
    21680
    22272
    22064
    22336

3 days agoRead {max_iv,variation}_count from prime classext
John Hawthorn [Fri, 23 May 2025 17:49:21 +0000 (23 10:49 -0700)]
Read {max_iv,variation}_count from prime classext

MAX_IV_COUNT is a hint which determines the size of variable width
allocation we should use for a given class. We don't need to scope this
by namespace, if we end up with larger builtin objects on some
namespaces that isn't a user-visible problem, just extra memory use.

Similarly variation_count is used to track if a given object has had too
many branches in shapes it has used, and to use too_complex when that
happens. That's also just a hint, so we can use the same value across
namespaces without it being visible to users.

Previously variation_count was being incremented (written to) on the
RCLASS_EXT_READABLE ext, which seems incorrect if we wanted it to be
different across namespaces

3 days agoTake VM lock around manipulation of fiber pool for vacant stacks
Luke Gruber [Thu, 29 May 2025 15:40:57 +0000 (29 11:40 -0400)]
Take VM lock around manipulation of fiber pool for vacant stacks

When creating fibers in multiple ractors at the same time there were
issues with the manipulation of this structure, causing segfaults.

I didn't add any tests for this because I'm making a more general
PR in the very near future to be able to run test methods (test-all suite)
inside multiple ractors at the same time. This is how this bug was
caught, running test/ruby/test_fiber.rb inside 10 ractors at once.

3 days ago[ruby/mmtk] Remove dependance on internal/object.h
Peter Zhu [Thu, 29 May 2025 14:46:22 +0000 (29 10:46 -0400)]
[ruby/mmtk] Remove dependance on internal/object.h

https://github.com/ruby/mmtk/commit/fdc13963f0

3 days agoRemoved needless components of BuildTools
Hiroshi SHIBATA [Thu, 29 May 2025 08:52:58 +0000 (29 17:52 +0900)]
Removed needless components of BuildTools

3 days ago[ruby/prism] [DOC] No RDoc in include/prism/ast.h
Nobuyoshi Nakada [Wed, 28 May 2025 21:11:08 +0000 (29 06:11 +0900)]
[ruby/prism] [DOC] No RDoc in include/prism/ast.h

https://github.com/ruby/prism/commit/1cae6e3b02

3 days ago[ruby/prism] [DOC] Simply use `String#ljust`
Nobuyoshi Nakada [Wed, 28 May 2025 10:49:45 +0000 (28 19:49 +0900)]
[ruby/prism] [DOC] Simply use `String#ljust`

https://github.com/ruby/prism/commit/ba019ab4b4

3 days ago[ruby/prism] [DOC] Markup `__FILE__` as code, not emphasis
Nobuyoshi Nakada [Wed, 28 May 2025 10:47:22 +0000 (28 19:47 +0900)]
[ruby/prism] [DOC] Markup `__FILE__` as code, not emphasis

https://github.com/ruby/prism/commit/571ba378f5

3 days ago[ruby/prism] [DOC] Stop rdoc from processing non-rdoc comments
Nobuyoshi Nakada [Wed, 28 May 2025 10:40:53 +0000 (28 19:40 +0900)]
[ruby/prism] [DOC] Stop rdoc from processing non-rdoc comments

https://github.com/ruby/prism/commit/de1faa1680

3 days ago[ruby/prism] [DOC] Add code fences
Nobuyoshi Nakada [Wed, 28 May 2025 10:26:54 +0000 (28 19:26 +0900)]
[ruby/prism] [DOC] Add code fences

https://github.com/ruby/prism/commit/641775e5fe

3 days ago[ruby/prism] [DOC] Specify markdown mode to RDoc
Nobuyoshi Nakada [Wed, 28 May 2025 10:25:48 +0000 (28 19:25 +0900)]
[ruby/prism] [DOC] Specify markdown mode to RDoc

https://github.com/ruby/prism/commit/12af4e144e

3 days agoAdded VS2022 BuildTools instructions
Hiroshi SHIBATA [Thu, 29 May 2025 04:15:08 +0000 (29 13:15 +0900)]
Added VS2022 BuildTools instructions

3 days ago VS2022 17.13.x and winsdk-10.0.26100 issues are resolved now
Hiroshi SHIBATA [Thu, 29 May 2025 04:08:09 +0000 (29 13:08 +0900)]
 VS2022 17.13.x and winsdk-10.0.26100 issues are resolved now

3 days agoAdded instruction for installing gcc toolchain with ridk
Hiroshi SHIBATA [Thu, 29 May 2025 04:05:22 +0000 (29 13:05 +0900)]
Added instruction for installing gcc toolchain with ridk

4 days ago[Bug #21380] Prohibit modification in String#split block
Nobuyoshi Nakada [Tue, 27 May 2025 13:24:28 +0000 (27 22:24 +0900)]
[Bug #21380] Prohibit modification in String#split block

Reported at https://hackerone.com/reports/3163876

4 days agoRemove unnecessary `GEM_PATH` modification
David Rodríguez [Wed, 28 May 2025 12:09:55 +0000 (28 14:09 +0200)]
Remove unnecessary `GEM_PATH` modification

4 days agoInitialize `gems` tmp when initializing bundled_gems_spec suite
David Rodríguez [Wed, 28 May 2025 12:18:44 +0000 (28 14:18 +0200)]
Initialize `gems` tmp when initializing bundled_gems_spec suite

That way it works even if no Bundler specs have run before.

4 days ago[ruby/resolv] Update resolv.rb - fix spelling
John Bampton [Wed, 28 May 2025 19:37:51 +0000 (29 05:37 +1000)]
[ruby/resolv] Update resolv.rb - fix spelling

https://github.com/ruby/resolv/commit/65ce7f214b

4 days agoZJIT: Add --enable-zjit=dev_nodebug (#13456)
Takashi Kokubun [Wed, 28 May 2025 21:20:10 +0000 (28 17:20 -0400)]
ZJIT: Add --enable-zjit=dev_nodebug (#13456)

4 days agoZJIT: Add CallableMethodEntry to type lattice (GH-13459)
Max Bernstein [Wed, 28 May 2025 20:59:51 +0000 (28 16:59 -0400)]
ZJIT: Add CallableMethodEntry to type lattice (GH-13459)

This will be useful when we split Send into Lookup+Call.
For reasoning about various method types during optimization.

4 days agoSet iclass_is_origin flag for FrozenCore
Peter Zhu [Wed, 28 May 2025 15:24:40 +0000 (28 11:24 -0400)]
Set iclass_is_origin flag for FrozenCore

We don't free the method table for FrozenCore since it is converted to
an iclass and doesn't have the iclass_is_origin flag set. This causes a
memory leak to be reported during RUBY_FREE_AT_EXIT:

    14  dyld                                  0x19f13ab98 start + 6076
    13  miniruby                              0x100644928 main + 96  main.c:62
    12  miniruby                              0x10064498c rb_main + 48  main.c:42
    11  miniruby                              0x10073be0c ruby_init + 16  eval.c:98
    10  miniruby                              0x10073bc6c ruby_setup + 232  eval.c:87
    9   miniruby                              0x100786b98 rb_call_inits + 168  inits.c:63
    8   miniruby                              0x1009b5010 Init_VM + 212  vm.c:4017
    7   miniruby                              0x10067aae8 rb_class_new + 44  class.c:834
    6   miniruby                              0x10067a04c rb_class_boot + 48  class.c:748
    5   miniruby                              0x10067a250 class_initialize_method_table + 32  class.c:721
    4   miniruby                              0x1009412a8 rb_id_table_create + 24  id_table.c:98
    3   miniruby                              0x100759fac ruby_xmalloc + 24  gc.c:5201
    2   miniruby                              0x10075fc14 ruby_xmalloc_body + 52  gc.c:5211
    1   miniruby                              0x1007726b4 rb_gc_impl_malloc + 92  default.c:8141
    0   libsystem_malloc.dylib                0x19f30d12c _malloc_zone_malloc_instrumented_or_legacy + 152

4 days agoUse flag for RCLASS_IS_INITIALIZED
John Hawthorn [Mon, 26 May 2025 18:48:41 +0000 (26 11:48 -0700)]
Use flag for RCLASS_IS_INITIALIZED

Previously we used a flag to set whether a module was uninitialized.
When checked whether a class was initialized, we first had to check that
it had a non-zero superclass, as well as that it wasn't BasicObject.

With the advent of namespaces, RCLASS_SUPER is now an expensive
operation, and though we could just check for the prime superclass, we
might as well take this opportunity to use a flag so that we can perform
the initialized check with as few instructions as possible.

It's possible in the future that we could prevent uninitialized classes
from being available to the user, but currently there are a few ways to
do that.

4 days agoMake class_alloc only accept type
John Hawthorn [Sun, 25 May 2025 05:49:54 +0000 (24 22:49 -0700)]
Make class_alloc only accept type

If any other flags were passed other than type they were ignored, so we
might as well be more explicit that that's all this accepts. This also
fixes the incorrect (internal) documentation.

It also turns out type is always known in the caller, so I made it
explicit in the two places additional flags were being passed.

4 days agoRefactor attr_index_t caches
Jean Boussier [Wed, 28 May 2025 10:39:21 +0000 (28 12:39 +0200)]
Refactor attr_index_t caches

Ensure the same helpers are used for packing and unpacking.

4 days agoGet rid of `vm_cc_attr_index` and `vm_cc_attr_index_dest_shape_id`
Jean Boussier [Wed, 28 May 2025 10:28:42 +0000 (28 12:28 +0200)]
Get rid of `vm_cc_attr_index` and `vm_cc_attr_index_dest_shape_id`

4 days agoGet rid of unused `vm_ic_attr_index_dest_shape_id`
Jean Boussier [Wed, 28 May 2025 10:20:37 +0000 (28 12:20 +0200)]
Get rid of unused `vm_ic_attr_index_dest_shape_id`

4 days ago[rubygems/rubygems] test(ruby): fix spelling
John Bampton [Tue, 27 May 2025 00:45:53 +0000 (27 10:45 +1000)]
[rubygems/rubygems] test(ruby): fix spelling

https://github.com/rubygems/rubygems/commit/398bc1365e

4 days ago[rubygems/rubygems] Fix example name typo
Tang Rufus [Sun, 25 May 2025 19:24:17 +0000 (25 20:24 +0100)]
[rubygems/rubygems] Fix example name typo

https://github.com/rubygems/rubygems/commit/2d0cf3c31e

5 days agoUse the latest version of Windows SDK
Hiroshi SHIBATA [Wed, 28 May 2025 00:03:17 +0000 (28 09:03 +0900)]
Use the latest version of Windows SDK

https://github.com/ruby/ruby/commit/72bda0f981c7136f50254c433bbfb97a953f634b

5 days agoRename `rb_shape_id_canonical_p` -> `rb_shape_canonical_p`
Jean Boussier [Tue, 27 May 2025 12:08:30 +0000 (27 14:08 +0200)]
Rename `rb_shape_id_canonical_p` -> `rb_shape_canonical_p`

5 days agoRename `rb_shape_frozen_shape_p` -> `shape_frozen_p`
Jean Boussier [Tue, 27 May 2025 12:07:50 +0000 (27 14:07 +0200)]
Rename `rb_shape_frozen_shape_p` -> `shape_frozen_p`

5 days agoRename `rb_shape_set_shape_id` in `rb_obj_set_shape_id`
Jean Boussier [Tue, 27 May 2025 11:53:14 +0000 (27 13:53 +0200)]
Rename `rb_shape_set_shape_id` in `rb_obj_set_shape_id`

5 days agoRefactor `rb_shape_too_complex_p` to take a `shape_id_t`.
Jean Boussier [Tue, 27 May 2025 11:32:55 +0000 (27 13:32 +0200)]
Refactor `rb_shape_too_complex_p` to take a `shape_id_t`.

5 days agoRefactor `rb_shape_has_object_id`
Jean Boussier [Tue, 27 May 2025 11:20:58 +0000 (27 13:20 +0200)]
Refactor `rb_shape_has_object_id`

Now takes a `shape_id_t` and the version that takes a `rb_shape_t *`
is private.

5 days agoRefactor `rb_obj_shape` out.
Jean Boussier [Tue, 27 May 2025 11:16:50 +0000 (27 13:16 +0200)]
Refactor `rb_obj_shape` out.

It still exists but only in `shape.c`.

5 days agoGet rid of rb_shape_set_shape
Jean Boussier [Tue, 27 May 2025 10:58:24 +0000 (27 12:58 +0200)]
Get rid of rb_shape_set_shape

5 days agoRefactor `rb_shape_get_iv_index` to take a `shape_id_t`
Jean Boussier [Tue, 27 May 2025 10:57:03 +0000 (27 12:57 +0200)]
Refactor `rb_shape_get_iv_index` to take a `shape_id_t`

Further reduce exposure of `rb_shape_t`.

5 days agoGet rid of `rb_shape_id(rb_shape_t *)`
Jean Boussier [Tue, 27 May 2025 09:51:29 +0000 (27 11:51 +0200)]
Get rid of `rb_shape_id(rb_shape_t *)`

We should avoid conversions from `rb_shape_t *` into `shape_id_t`
outside of `shape.c` as the short term goal is to have `shape_id_t`
contain tags.

5 days agoGet rid of `rb_shape_canonical_p`
Jean Boussier [Tue, 27 May 2025 09:46:02 +0000 (27 11:46 +0200)]
Get rid of `rb_shape_canonical_p`

5 days agoRefactor `rb_shape_rebuild_shape` to stop exposing `rb_shape_t`
Jean Boussier [Tue, 27 May 2025 07:36:33 +0000 (27 09:36 +0200)]
Refactor `rb_shape_rebuild_shape` to stop exposing `rb_shape_t`

5 days agobundle rbs-3.9.4 to fix test failure (#13287)
Soutaro Matsumoto [Tue, 27 May 2025 06:54:22 +0000 (27 15:54 +0900)]
bundle rbs-3.9.4 to fix test failure (#13287)

* Skip CGI tests

* Bundle rbs-3.9.4

5 days ago[Bug #21255] Win32: Do not export `__declspec(selectany)` symbols
Nobuyoshi Nakada [Mon, 26 May 2025 11:37:14 +0000 (26 20:37 +0900)]
[Bug #21255] Win32: Do not export `__declspec(selectany)` symbols

```
x64-vcruntime140-ruby350.def : error LNK2001: unresolved external symbol Avx2WmemEnabledWeakValue
```

5 days agoWin: Suppress false warnings from Visual C 17.14.1
Nobuyoshi Nakada [Mon, 26 May 2025 11:11:41 +0000 (26 20:11 +0900)]
Win: Suppress false warnings from Visual C 17.14.1

https://developercommunity.visualstudio.com/t/warning-C5287:-operands-are-different-e/10877942?

It is not able to silence "operands are different enum types"
warnings, even using an explicit cast, as the message says.

5 days agoFix reference updating for id2ref table
Peter Zhu [Mon, 26 May 2025 19:05:02 +0000 (26 15:05 -0400)]
Fix reference updating for id2ref table

The id2ref table could contain dead entries which should not be passed
into rb_gc_location. Also, we already update references in gc_update_references
using rb_gc_vm_weak_table_foreach so we do not need to update it again.

6 days agoRemove set library from maintainers doc, as Set is now a core class
Jeremy Evans [Sun, 25 May 2025 05:56:49 +0000 (24 22:56 -0700)]
Remove set library from maintainers doc, as Set is now a core class

6 days agoDon't copy FL_PROMOTED to new object in Ractor move
Peter Zhu [Mon, 26 May 2025 18:11:51 +0000 (26 14:11 -0400)]
Don't copy FL_PROMOTED to new object in Ractor move

We should not copy the FL_PROMOTED flag when we move an object in Ractor#send(move: true)
because the newly created object may not be old.

6 days ago[DOC] More tweaks for String#byteindex
BurdetteLamar [Sun, 25 May 2025 14:59:52 +0000 (25 09:59 -0500)]
[DOC] More tweaks for String#byteindex

6 days agoAdd shape_id to RBasic under 32 bit
John Hawthorn [Wed, 14 May 2025 18:06:46 +0000 (14 11:06 -0700)]
Add shape_id to RBasic under 32 bit

This makes `RBobject` `4B` larger on 32 bit systems
but simplifies the implementation a lot.

[Feature #21353]

Co-authored-by: Jean Boussier <[email protected]>
7 days agoUpdate default gems list at 874469e7cefc6a08afb8fb30556786 [ci skip]
git [Mon, 26 May 2025 02:47:26 +0000 (26 02:47 +0000)]
Update default gems list at 874469e7cefc6a08afb8fb30556786 [ci skip]

7 days ago[rubygems/rubygems] Bump the rb-sys group across 2 directories with 1 update
dependabot[bot] [Wed, 21 May 2025 20:19:00 +0000 (21 20:19 +0000)]
[rubygems/rubygems] Bump the rb-sys group across 2 directories with 1 update

Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib directory: [rb-sys](https://github.com/oxidize-rb/rb-sys).
Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example directory: [rb-sys](https://github.com/oxidize-rb/rb-sys).

Updates `rb-sys` from 0.9.111 to 0.9.115
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.111...v0.9.115)

Updates `rb-sys` from 0.9.111 to 0.9.115
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.111...v0.9.115)

---
updated-dependencies:
- dependency-name: rb-sys
  dependency-version: 0.9.115
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rb-sys
- dependency-name: rb-sys
  dependency-version: 0.9.115
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rb-sys
...

Signed-off-by: dependabot[bot] <[email protected]>
https://github.com/rubygems/rubygems/commit/a7c0ff5641

7 days ago[rubygems/rubygems] Remove backport of LATEST_RUBY_WITHOUT_PATCH_VERSIONS
Samuel Giddins [Sat, 17 May 2025 14:58:37 +0000 (17 10:58 -0400)]
[rubygems/rubygems] Remove backport of LATEST_RUBY_WITHOUT_PATCH_VERSIONS

Signed-off-by: Samuel Giddins <[email protected]>
https://github.com/rubygems/rubygems/commit/24c8073b24

7 days ago[rubygems/rubygems] Remove platform backports from bundler
Samuel Giddins [Wed, 14 May 2025 20:31:43 +0000 (14 13:31 -0700)]
[rubygems/rubygems] Remove platform backports from bundler

Signed-off-by: Samuel Giddins <[email protected]>
https://github.com/rubygems/rubygems/commit/9336d3811c

7 days ago[rubygems/rubygems] Remove reference to validate_rust_builder_rubygems_version
Samuel Giddins [Wed, 14 May 2025 20:31:24 +0000 (14 13:31 -0700)]
[rubygems/rubygems] Remove reference to validate_rust_builder_rubygems_version

Signed-off-by: Samuel Giddins <[email protected]>
https://github.com/rubygems/rubygems/commit/f8baf13ab0

7 days ago[rubygems/rubygems] Bump required_ruby_version to 3.2
Samuel Giddins [Mon, 14 Apr 2025 07:39:52 +0000 (14 16:39 +0900)]
[rubygems/rubygems] Bump required_ruby_version to 3.2

Ruby 3.1 was EOL March 2025

Signed-off-by: Samuel Giddins <[email protected]>
https://github.com/rubygems/rubygems/commit/29c21b1e78

7 days ago[ruby/json] Release 2.12.2
Jean Boussier [Fri, 23 May 2025 15:07:39 +0000 (23 17:07 +0200)]
[ruby/json] Release 2.12.2

https://github.com/ruby/json/commit/a29cb77d52

7 days ago[ruby/json] Release 2.12.1
Jean Boussier [Fri, 23 May 2025 09:36:41 +0000 (23 11:36 +0200)]
[ruby/json] Release 2.12.1

https://github.com/ruby/json/commit/8603a57a91

7 days ago[ruby/json] fbuffer.c: add debug mode with bound checks.
Jean Boussier [Fri, 23 May 2025 09:27:29 +0000 (23 11:27 +0200)]
[ruby/json] fbuffer.c: add debug mode with bound checks.

This would have caught https://github.com/ruby/json/pull/808
on CI.

https://github.com/ruby/json/commit/8109421fb4

7 days ago[ruby/json] Fix: generate_json_float to reserve enough memory for large negative...
Jean Boussier [Fri, 23 May 2025 07:28:56 +0000 (23 09:28 +0200)]
[ruby/json] Fix: generate_json_float to reserve enough memory for large negative floats.

Fix: https://github.com/ruby/json/issues/807

Since https://github.com/ruby/json/pull/800, `fpconv_dtoa` can actually
generate up to 28 chars.

https://github.com/ruby/json/commit/d73ae93d3c

7 days ago* remove trailing spaces. [ci skip]
git [Mon, 26 May 2025 02:44:58 +0000 (26 02:44 +0000)]
* remove trailing spaces. [ci skip]

7 days agoUse RB_VM_LOCKING
Nobuyoshi Nakada [Fri, 23 May 2025 11:14:20 +0000 (23 20:14 +0900)]
Use RB_VM_LOCKING

7 days agoDelimit the scopes using encoding/symbol tables
Nobuyoshi Nakada [Wed, 27 Oct 2021 02:45:59 +0000 (27 11:45 +0900)]
Delimit the scopes using encoding/symbol tables

7 days agoAdd RB_VM_LOCKING macro which delimits the variable scope
Nobuyoshi Nakada [Wed, 27 Oct 2021 02:44:29 +0000 (27 11:44 +0900)]
Add RB_VM_LOCKING macro which delimits the variable scope

9 days agoZJIT: Parse branchnil into HIR
Max Bernstein [Fri, 23 May 2025 20:17:16 +0000 (23 16:17 -0400)]
ZJIT: Parse branchnil into HIR

9 days agoZJIT: Parse opt_aref into HIR
Max Bernstein [Fri, 23 May 2025 19:05:19 +0000 (23 15:05 -0400)]
ZJIT: Parse opt_aref into HIR

9 days agoZJIT: Add fast-paths for Array#length and Array#size
Max Bernstein [Fri, 23 May 2025 18:21:07 +0000 (23 14:21 -0400)]
ZJIT: Add fast-paths for Array#length and Array#size

9 days agoractor_wakeup was broken when compiled with USE_RUBY_DEBUG_LOG
Luke Gruber [Fri, 23 May 2025 17:53:00 +0000 (23 13:53 -0400)]
ractor_wakeup was broken when compiled with USE_RUBY_DEBUG_LOG

The `ractor_wakeup` function takes an optional `th` argument, so it can be NULL.
There is a macro call to RUBY_DEBUG_LOG that dereferences `th` without checking
if it's NULL first. To fix this, we never dereference `th` in this macro call.

9 days agoZJIT: Implement find for Defined
Max Bernstein [Fri, 23 May 2025 18:08:08 +0000 (23 14:08 -0400)]
ZJIT: Implement find for Defined

9 days agoZJIT: Mark SideExit as terminator
Max Bernstein [Fri, 23 May 2025 17:47:57 +0000 (23 13:47 -0400)]
ZJIT: Mark SideExit as terminator

9 days agoZJIT: Side-exit into the interpreter on unknown call types
Max Bernstein [Fri, 23 May 2025 17:45:38 +0000 (23 13:45 -0400)]
ZJIT: Side-exit into the interpreter on unknown call types

9 days agoZJIT: Side-exit into the interpreter on unknown opt_newarray_send
Max Bernstein [Fri, 23 May 2025 17:41:01 +0000 (23 13:41 -0400)]
ZJIT: Side-exit into the interpreter on unknown opt_newarray_send

9 days agoZJIT: Side-exit into the interpreter on unknown opcodes
Max Bernstein [Fri, 23 May 2025 17:27:19 +0000 (23 13:27 -0400)]
ZJIT: Side-exit into the interpreter on unknown opcodes

No need to bail out of compilation completely; we can compile all the
code up until that point.