ruby/internal
Koichi Sasada 45907b1b00 add SET_SHAREABLE macros
* `RB_OBJ_SET_SHAREABLE(obj)` makes obj shareable.
  All of reachable objects from `obj` should be shareable.
* `RB_OBJ_SET_FROZEN_SHAREABLE(obj)` same as above
  but freeze `obj` before making it shareable.

Also `rb_gc_verify_shareable(obj)` is introduced to check
the `obj` does not violate shareable rule (an shareable object
only refers shareable objects) strictly.

The rule has some exceptions (some shareable objects can refer to
unshareable objects, such as a Ractor object (which is a shareable
object) can refer to the Ractor local objects.
To handle such case, `check_shareable` flag is also introduced.

`STRICT_VERIFY_SHAREABLE` macro is also introduced to verify
the strict shareable rule at `SET_SHAREABLE`.
2025-10-23 13:08:26 +09:00
..
2025-06-23 20:03:48 +09:00
2025-10-23 13:08:26 +09:00
2025-09-16 08:35:45 -04:00
2025-10-13 15:21:36 -04:00
2025-05-11 23:32:50 +09:00
2025-06-02 09:52:25 -04:00
2025-08-19 10:02:13 -04:00
2025-08-27 10:01:07 -07:00