Project

General

Profile

Actions

Bug #19289

closed

RbConfig::CONFIG["STRIP"] should keep `ruby_abi_version` and `ruby_abi_version` should always be part of Ruby

Added by Eregon (Benoit Daloze) over 1 year ago. Updated over 1 year ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:111529]

Description

From https://github.com/grpc/grpc/pull/31970 and https://github.com/redis-rb/redis-client/issues/58

First, I think we could add -K rb_abi_version to RbConfig::CONFIG["STRIP"] so it's automatically kept if RbConfig::CONFIG["STRIP"] is used (and that should be used if one strips any native extension).

Second, I think it would be much better if the symbol is kept also for releases.
The check could be kept too for safety (e.g., it can detect Ruby 3.3.0 gems used by Ruby 3.2.0), the value of rb_abi_version would just be the same as RbConfig::CONFIG["ruby_version"], i.e., 3.2.0 for Ruby 3.2.x.

Any difference between dev and release builds is a risk of not properly testing the release, and there is proof here that removing the symbol in releases causes troubles.

Doing both of these would avoid complex and brittle logic upstream as in grpc and redis-client to deal with the new symbol.

cc @nobu (Nobuyoshi Nakada) @peterzhu2118 (Peter Zhu)

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0