Actions
Bug #18779
closed`GC.compact` and other compaction related methods should be defined as rb_f_notimplement on non supported platforms.
Bug #18779:
`GC.compact` and other compaction related methods should be defined as rb_f_notimplement on non supported platforms.
Description
I received several bug report on native gems using GC.verify_compaction_references
in their test suite.
Examples:
- https://github.com/msgpack/msgpack-ruby/pull/275/files
- https://github.com/Shopify/bootsnap/pull/414/files
I think that when !GC_COMPACTION_SUPPORTED
, rather than raise NotImplementedError
, we should instead define these methods as rb_f_notimplement
like Process.fork
on Windows.
This way GC.respond_to?(:compact)
would be a proper way to test for compaction support.
Unfortunately, these methods are defined through .rb
files with Primitive
, and I don't know wether it's possible to check GC_COMPACTION_SUPPORTED
from there, nor if it's possible to define a rb_f_notimplement
method.
Actions