Bug #18779
closed
`GC.compact` and other compaction related methods should be defined as rb_f_notimplement on non supported platforms.
Added by byroot (Jean Boussier) over 2 years ago.
Updated over 1 year ago.
Description
I received several bug report on native gems using GC.verify_compaction_references
in their test suite.
Examples:
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.
cc @tenderlovemaking (Aaron Patterson)
- Status changed from Open to Closed
- Backport changed from 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN to 2.7: WONTFIX, 3.0: REQUIRED, 3.1: REQUIRED
The PR was merged so we can now close this.
I'm marking 3.0 and 3.1 for backport. The two commits are:
0de1495f358e9b892dfa63d4b74f59b1d2903703
0c36ba53192c5a0d245c9b626e4346a32d7d144e
- Is duplicate of Bug #18560: "Compaction isn't available on this platform" error running PG test suite on ppc64le added
I'm marking 3.0 and 3.1 for backport. The two commits are:
6ddec1082d06431111123c03b18ca41e7a2cec12
e9623f7432b4603735c74b6f0bb683a9bf19c2c6
Did you backport to ruby_3_0 and ruby_3_1 branches? I cannot find the 2 commit hashes above.
@jaruga (Jun Aruga) no, I requested it, but it's the release manager of each branch that is supposed to do the backport.
These two commits are on master. The backported commits will likely be widely different as there was many changes in compaction APIs between 3.0 and master.
If it helps, this 1 is the patch we are carrying around in Fedora for Ruby 3.1. I would appreciate if is backported, because it influences files which are pregenerated and part of the release tarball 2.
MEMO: It seems that #18829 is required to be backported preceded for this issue.
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0