Skip to content
  • Peter Zhu's avatar
    3df16924
    [Feature #18249] Implement ABI checking · 3df16924
    Peter Zhu authored
    Header file include/ruby/internal/abi.h contains RUBY_ABI_VERSION which
    is the ABI version. This value should be bumped whenever an ABI
    incompatible change is introduced.
    
    When loading dynamic libraries, Ruby will compare its own
    `ruby_abi_version` and the `ruby_abi_version` of the loaded library. If
    these two values don't match it will raise a `LoadError`. This feature
    can also be turned off by setting the environment variable
    `RUBY_RUBY_ABI_CHECK=0`.
    
    This feature will prevent cases where previously installed native gems
    fail in unexpected ways due to incompatibility of changes in header
    files. This will force the developer to recompile their gems to use the
    same header files as the built Ruby.
    
    In Ruby, the ABI version is exposed through
    `RbConfig::CONFIG["ruby_abi_version"]`.
    3df16924
    [Feature #18249] Implement ABI checking
    Peter Zhu authored
    Header file include/ruby/internal/abi.h contains RUBY_ABI_VERSION which
    is the ABI version. This value should be bumped whenever an ABI
    incompatible change is introduced.
    
    When loading dynamic libraries, Ruby will compare its own
    `ruby_abi_version` and the `ruby_abi_version` of the loaded library. If
    these two values don't match it will raise a `LoadError`. This feature
    can also be turned off by setting the environment variable
    `RUBY_RUBY_ABI_CHECK=0`.
    
    This feature will prevent cases where previously installed native gems
    fail in unexpected ways due to incompatibility of changes in header
    files. This will force the developer to recompile their gems to use the
    same header files as the built Ruby.
    
    In Ruby, the ABI version is exposed through
    `RbConfig::CONFIG["ruby_abi_version"]`.
Loading