Issue #19442 has been updated by peterzhu2118 (Peter Zhu).
I'm for removing many of the untested code paths in gc.c since they may be buggy and
are probably not used (like this one, which doesn't even compile so clearly nobody is
using it).
----------------------------------------
Bug #19442: Remove USE_RINCGC flag
https://bugs.ruby-lang.org/issues/19442#change-101897
* Author: eightbitraptor (Matthew Valentine-House)
* Status: Open
* Priority: Normal
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
[GitHub PR #7317](https://github.com/ruby/ruby/pull/7313)
Ruby doesn't compile when USE_RINCGC is disabled. It's also not being tested in
CI. As @nobu has pointed out in comments on the PR, fixing it is simple.
I think there are 2 approaches we could take:
1. Remove `USE_RINCGC` entirely and always run with incremental GC enabled. We have a
precedent for this: `USE_RGENGC=0` was removed [in this
commit](https://github.com/ruby/ruby/commit/62c2b8c74e47652fc5bbaf6150f4acd…
almost 3 years ago. `USE_RINCGC=0` is in a similar state. It has been broken for almost a
year (since [this
commit](https://github.com/ruby/ruby/commit/dde164e968e382d50b07ad455946888…),
and [disabled in CI for more than 2
years](https://github.com/ruby/ruby/commit/46d3ea2c2569e2e5a9ee3e7e206f07f0….
2. We could fix `USE_RINCGC`. If we do this we should re-enable the CI task so that we
continue to keep it working in the future.
I am very much in favour of option 1, because I don't think this flag is being
actively used, and removing it will simplify the code and reduce the cognitive overhead of
working with the GC. However I am happy to defer to the team here.
--
https://bugs.ruby-lang.org/