1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/include/ruby/internal
Peter Zhu 3df16924b4 [Feature #18249] Implement ABI checking
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"]`.
2022-02-22 09:55:21 -05:00
..
arithmetic include/ruby/internal/arithmetic/char.h: add doxygen 2021-09-10 20:00:06 +09:00
attr Introduce RBIMPL_NONNULL_ARG macro 2021-09-27 14:47:52 +09:00
compiler_is include/ruby/internal/compiler_is: skip doxygen 2021-09-10 20:00:06 +09:00
core Suppress possible loss of data warnings 2022-01-14 13:46:12 +09:00
encoding rb_enc_code_to_mbclen: fix doxygen 2021-11-11 11:45:19 +09:00
has Define HAVE___BUILTIN_UNREACHABLE instead of UNREACHABLE 2022-02-19 23:32:52 +09:00
intern Mark rb_clear_constant_cache as internal use only 2022-01-20 13:54:37 +09:00
abi.h [Feature #18249] Implement ABI checking 2022-02-22 09:55:21 -05:00
anyargs.h include/ruby/internal/anyargs.h: fix typo 2021-09-10 20:00:06 +09:00
arithmetic.h sed -i 's/. They/. They/' 2021-09-10 20:00:06 +09:00
assume.h Check if __assume is supported 2022-02-19 23:32:52 +09:00
cast.h include/ruby/internal/cast.h: skip doxygen 2021-09-10 20:00:06 +09:00
compiler_is.h sed -i 's/. They/. They/' 2021-09-10 20:00:06 +09:00
compiler_since.h sed -i 's/. They/. They/' 2021-09-10 20:00:06 +09:00
config.h Enable Variable Width Allocation by default 2022-01-12 12:00:55 -05:00
constant_p.h include/ruby/internal/constant_p.h: add doxygen 2021-09-10 20:00:06 +09:00
core.h sed -i 's/. They/. They/' 2021-09-10 20:00:06 +09:00
ctype.h include/ruby/internal/ctype.h: add doxygen 2021-09-10 20:00:06 +09:00
dllexport.h include/ruby/internal/dllexport.h: add doxygen 2021-09-10 20:00:06 +09:00
dosish.h include/ruby/internal/dosish.h: add doxygen 2021-09-10 20:00:06 +09:00
error.h include/ruby/internal/error.h: name a parameter 2021-09-10 20:00:06 +09:00
eval.h include/ruby/internal/eval.h: add doxygen 2021-09-10 20:00:06 +09:00
event.h include/ruby/internal/event.h: add doxygen 2021-09-10 20:00:06 +09:00
fl_type.h Remove tainted and trusted features 2021-12-26 23:28:54 +09:00
gc.h sed -i 's/. They/. They/' 2021-09-10 20:00:06 +09:00
glob.h include/ruby/internal/glob.h: add doxygen 2021-09-10 20:00:06 +09:00
globals.h Deprecate include/prepend in refinements and add Refinement#import_methods instead 2021-10-21 16:31:54 +09:00
interpreter.h ruby_cleanup: fix MSVC compile error 2021-09-10 20:00:06 +09:00
iterator.h Suppress deprecated rb_iterate declaration warnings in C++ 2021-09-11 17:54:11 +09:00
memory.h Revert zero-check for alloca 2021-12-10 18:39:48 +09:00
method.h include/ruby/internal/intern/vm.h: add doxygen 2021-09-10 20:00:06 +09:00
module.h include/ruby/internal/module.h: add doxygen 2021-09-10 20:00:06 +09:00
newobj.h include/ruby/internal/newobj.h: add doxygen 2021-09-10 20:00:06 +09:00
rgengc.h include/ruby/internal/rgengc.h: add dosygen 2021-09-10 20:00:06 +09:00
scan_args.h include/ruby/internal/scan_args.h: add doxygen 2021-09-10 20:00:06 +09:00
special_consts.h include/ruby/internal/special_consts.h: add doxygen 2021-09-10 20:00:06 +09:00
static_assert.h sed -i 's/. They/. They/' 2021-09-10 20:00:06 +09:00
stdalign.h include/ruby/internal/stdalign.h: add doxygen 2021-09-10 20:00:06 +09:00
stdbool.h sed -i 's/. They/. They/' 2021-09-10 20:00:06 +09:00
symbol.h include/ruby/internal/symbol.h: add doxygen 2021-09-10 20:00:06 +09:00
value.h include/ruby/internal/value.h: add doxygen 2021-09-10 20:00:06 +09:00
value_type.h include/ruby/internal/value_type.h: add doxygen 2021-09-10 20:00:06 +09:00
variable.h include/ruby/internal/variable.h: add doxygen 2021-09-10 20:00:06 +09:00
warning_push.h include/ruby/internal/warning_push.h: add doxygen 2021-09-10 20:00:06 +09:00
xmalloc.h include/ruby/internal/xmalloc.h: add doxygen 2021-09-10 20:00:06 +09:00