mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Stop defining RUBY_ABI_VERSION
if released versions
As commented in include/ruby/internal/abi.h, since teeny versions of Ruby should guarantee ABI compatibility, `RUBY_ABI_VERSION` has no role in released versions of Ruby.
This commit is contained in:
parent
a201cfd0cd
commit
cd1a0b3caa
Notes:
git
2022-08-12 15:57:46 +09:00
7 changed files with 33 additions and 5 deletions
|
@ -88,7 +88,9 @@ AC_SUBST(GIT)
|
||||||
AC_SUBST(HAVE_GIT)
|
AC_SUBST(HAVE_GIT)
|
||||||
|
|
||||||
eval `sed -n -e ['s/^@%:@define RUBY_[A-Z_]*VERSION_\([A-Z][A-Z][A-Z_0-9]*\) \([0-9][0-9]*\)$/\1=\2/p'] \
|
eval `sed -n -e ['s/^@%:@define RUBY_[A-Z_]*VERSION_\([A-Z][A-Z][A-Z_0-9]*\) \([0-9][0-9]*\)$/\1=\2/p'] \
|
||||||
|
-e ['s/^@%:@define \(RUBY_ABI_VERSION\) \([0-9][0-9]*\).*/\1=\2/p'] \
|
||||||
-e ['s/^@%:@define \(RUBY_PATCHLEVEL\) \(.*\)/\1=\2/p'] \
|
-e ['s/^@%:@define \(RUBY_PATCHLEVEL\) \(.*\)/\1=\2/p'] \
|
||||||
|
$srcdir/include/ruby/internal/abi.h \
|
||||||
$srcdir/include/ruby/version.h $srcdir/version.h`
|
$srcdir/include/ruby/version.h $srcdir/version.h`
|
||||||
for v in MAJOR MINOR TEENY; do
|
for v in MAJOR MINOR TEENY; do
|
||||||
AS_IF([eval "test \"\$$v\" = ''"], [
|
AS_IF([eval "test \"\$$v\" = ''"], [
|
||||||
|
@ -100,6 +102,9 @@ AC_SUBST(MINOR)
|
||||||
AC_SUBST(TEENY)
|
AC_SUBST(TEENY)
|
||||||
AC_SUBST(RUBY_API_VERSION, '$(MAJOR).$(MINOR)')
|
AC_SUBST(RUBY_API_VERSION, '$(MAJOR).$(MINOR)')
|
||||||
AC_SUBST(RUBY_PROGRAM_VERSION, '$(MAJOR).$(MINOR).$(TEENY)')
|
AC_SUBST(RUBY_PROGRAM_VERSION, '$(MAJOR).$(MINOR).$(TEENY)')
|
||||||
|
AS_CASE([$RUBY_PATCHLEVEL], [-*], [
|
||||||
|
AC_DEFINE_UNQUOTED(RUBY_ABI_VERSION, [${RUBY_ABI_VERSION}])
|
||||||
|
], [RUBY_ABI_VERSION=])
|
||||||
|
|
||||||
AS_IF([test "$program_prefix" = NONE], [
|
AS_IF([test "$program_prefix" = NONE], [
|
||||||
program_prefix=
|
program_prefix=
|
||||||
|
@ -4118,6 +4123,7 @@ AS_CASE(["$ruby_version"],
|
||||||
AS_IF([test ${RUBY_LIB_VERSION_STYLE+set}], [
|
AS_IF([test ${RUBY_LIB_VERSION_STYLE+set}], [
|
||||||
{
|
{
|
||||||
echo "#define RUBY_LIB_VERSION_STYLE $RUBY_LIB_VERSION_STYLE"
|
echo "#define RUBY_LIB_VERSION_STYLE $RUBY_LIB_VERSION_STYLE"
|
||||||
|
echo '@%:@include "confdefs.h"'
|
||||||
echo '#define STRINGIZE(x) x'
|
echo '#define STRINGIZE(x) x'
|
||||||
test -f revision.h -o -f "${srcdir}/revision.h" || echo '#define RUBY_REVISION 0'
|
test -f revision.h -o -f "${srcdir}/revision.h" || echo '#define RUBY_REVISION 0'
|
||||||
echo '#include "version.h"'
|
echo '#include "version.h"'
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: false
|
||||||
|
return unless RUBY_PATCHLEVEL < 0
|
||||||
require_relative "../auto_ext.rb"
|
require_relative "../auto_ext.rb"
|
||||||
auto_ext(inc: true)
|
auto_ext(inc: true)
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef RUBY_ABI_H
|
#ifndef RUBY_ABI_H
|
||||||
#define RUBY_ABI_H
|
#define RUBY_ABI_H
|
||||||
|
|
||||||
|
#ifdef RUBY_ABI_VERSION /* should match the definition in config.h */
|
||||||
|
|
||||||
/* This number represents Ruby's ABI version.
|
/* This number represents Ruby's ABI version.
|
||||||
*
|
*
|
||||||
* In development Ruby, it should be bumped every time an ABI incompatible
|
* In development Ruby, it should be bumped every time an ABI incompatible
|
||||||
|
@ -19,7 +21,7 @@
|
||||||
* - Backwards compatible refactors.
|
* - Backwards compatible refactors.
|
||||||
* - Editing comments.
|
* - Editing comments.
|
||||||
*
|
*
|
||||||
* In released versions of Ruby, this number should not be changed since teeny
|
* In released versions of Ruby, this number is not defined since teeny
|
||||||
* versions of Ruby should guarantee ABI compatibility.
|
* versions of Ruby should guarantee ABI compatibility.
|
||||||
*/
|
*/
|
||||||
#define RUBY_ABI_VERSION 2
|
#define RUBY_ABI_VERSION 2
|
||||||
|
@ -49,3 +51,5 @@ ruby_abi_version(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
return unless RUBY_PATCHLEVEL < 0
|
||||||
|
|
||||||
class TestABI < Test::Unit::TestCase
|
class TestABI < Test::Unit::TestCase
|
||||||
def test_require_lib_with_incorrect_abi_on_dev_ruby
|
def test_require_lib_with_incorrect_abi_on_dev_ruby
|
||||||
omit "ABI is not checked" unless abi_checking_supported?
|
omit "ABI is not checked" unless abi_checking_supported?
|
||||||
|
|
11
version.h
11
version.h
|
@ -38,18 +38,25 @@
|
||||||
#define RUBY_RELEASE_DAY_STR STRINGIZE(RUBY_RELEASE_DAY)
|
#define RUBY_RELEASE_DAY_STR STRINGIZE(RUBY_RELEASE_DAY)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef RUBY_ABI_VERSION
|
||||||
|
# define RUBY_ABI_VERSION_SUFFIX "+"STRINGIZE(RUBY_ABI_VERSION)
|
||||||
|
#else
|
||||||
|
# define RUBY_ABI_VERSION_SUFFIX ""
|
||||||
|
#endif
|
||||||
#if !defined RUBY_LIB_VERSION && defined RUBY_LIB_VERSION_STYLE
|
#if !defined RUBY_LIB_VERSION && defined RUBY_LIB_VERSION_STYLE
|
||||||
# if RUBY_LIB_VERSION_STYLE == 3
|
# if RUBY_LIB_VERSION_STYLE == 3
|
||||||
# define RUBY_LIB_VERSION STRINGIZE(RUBY_API_VERSION_MAJOR)"."STRINGIZE(RUBY_API_VERSION_MINOR) \
|
# define RUBY_LIB_VERSION STRINGIZE(RUBY_API_VERSION_MAJOR)"."STRINGIZE(RUBY_API_VERSION_MINOR) \
|
||||||
"."STRINGIZE(RUBY_API_VERSION_TEENY)"+"STRINGIZE(RUBY_ABI_VERSION)
|
"."STRINGIZE(RUBY_API_VERSION_TEENY) RUBY_ABI_VERSION_SUFFIX
|
||||||
# elif RUBY_LIB_VERSION_STYLE == 2
|
# elif RUBY_LIB_VERSION_STYLE == 2
|
||||||
# define RUBY_LIB_VERSION STRINGIZE(RUBY_API_VERSION_MAJOR)"."STRINGIZE(RUBY_API_VERSION_MINOR) \
|
# define RUBY_LIB_VERSION STRINGIZE(RUBY_API_VERSION_MAJOR)"."STRINGIZE(RUBY_API_VERSION_MINOR) \
|
||||||
"+"STRINGIZE(RUBY_ABI_VERSION)
|
RUBY_ABI_VERSION_SUFFIX
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if RUBY_PATCHLEVEL == -1
|
#if RUBY_PATCHLEVEL == -1
|
||||||
#define RUBY_PATCHLEVEL_STR "dev"
|
#define RUBY_PATCHLEVEL_STR "dev"
|
||||||
|
#elif defined RUBY_ABI_VERSION
|
||||||
|
#error RUBY_ABI_VERSION is defined in non-development branch
|
||||||
#else
|
#else
|
||||||
#define RUBY_PATCHLEVEL_STR ""
|
#define RUBY_PATCHLEVEL_STR ""
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -148,7 +148,10 @@ PLATFORM_DIR = win32
|
||||||
arch = $(ARCH)-$(PLATFORM)
|
arch = $(ARCH)-$(PLATFORM)
|
||||||
sitearch = $(ARCH)-$(RT)
|
sitearch = $(ARCH)-$(RT)
|
||||||
!if !defined(ruby_version)
|
!if !defined(ruby_version)
|
||||||
ruby_version = $(MAJOR).$(MINOR).0+$(ABI_VERSION)
|
ruby_version = $(MAJOR).$(MINOR).0
|
||||||
|
!endif
|
||||||
|
!if defined(ABI_VERSION)
|
||||||
|
ruby_version = $(ruby_version)+$(ABI_VERSION)
|
||||||
!endif
|
!endif
|
||||||
!if !defined(RUBY_VERSION_NAME)
|
!if !defined(RUBY_VERSION_NAME)
|
||||||
RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version)
|
RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version)
|
||||||
|
@ -624,6 +627,9 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub
|
||||||
#endif
|
#endif
|
||||||
!endif
|
!endif
|
||||||
#define RUBY_MSVCRT_VERSION $(RT_VER)
|
#define RUBY_MSVCRT_VERSION $(RT_VER)
|
||||||
|
!if defined(ABI_VERSION)
|
||||||
|
#define RUBY_ABI_VERSION $(ABI_VERSION)
|
||||||
|
!endif
|
||||||
#define STDC_HEADERS 1
|
#define STDC_HEADERS 1
|
||||||
#define HAVE_SYS_TYPES_H 1
|
#define HAVE_SYS_TYPES_H 1
|
||||||
#define HAVE_SYS_STAT_H 1
|
#define HAVE_SYS_STAT_H 1
|
||||||
|
|
|
@ -178,6 +178,7 @@ main(void)
|
||||||
-version-: nul verconf.mk
|
-version-: nul verconf.mk
|
||||||
|
|
||||||
verconf.mk: nul
|
verconf.mk: nul
|
||||||
|
@findstr /R /C:"^#define RUBY_ABI_VERSION " $(srcdir:/=\)\include\ruby\internal\abi.h > $(@)
|
||||||
@$(CPP) -I$(srcdir) -I$(srcdir)/include <<"Creating $(@)" > $(*F).bat && cmd /c $(*F).bat > $(@)
|
@$(CPP) -I$(srcdir) -I$(srcdir)/include <<"Creating $(@)" > $(*F).bat && cmd /c $(*F).bat > $(@)
|
||||||
@echo off
|
@echo off
|
||||||
#define RUBY_REVISION 0
|
#define RUBY_REVISION 0
|
||||||
|
@ -198,8 +199,9 @@ echo RUBY_RELEASE_DAY = %ruby_release_day:~-2%
|
||||||
echo MAJOR = RUBY_VERSION_MAJOR
|
echo MAJOR = RUBY_VERSION_MAJOR
|
||||||
echo MINOR = RUBY_VERSION_MINOR
|
echo MINOR = RUBY_VERSION_MINOR
|
||||||
echo TEENY = RUBY_VERSION_TEENY
|
echo TEENY = RUBY_VERSION_TEENY
|
||||||
echo ABI_VERSION = RUBY_ABI_VERSION
|
|
||||||
#if defined RUBY_PATCHLEVEL && RUBY_PATCHLEVEL < 0
|
#if defined RUBY_PATCHLEVEL && RUBY_PATCHLEVEL < 0
|
||||||
|
#include "$(@F)"
|
||||||
|
echo ABI_VERSION = RUBY_ABI_VERSION
|
||||||
#endif
|
#endif
|
||||||
set /a MSC_VER = _MSC_VER
|
set /a MSC_VER = _MSC_VER
|
||||||
#if _MSC_VER >= 1920
|
#if _MSC_VER >= 1920
|
||||||
|
|
Loading…
Reference in a new issue