Patch 8.2.3922
Problem:    Cannot build with dynamic Ruby 3.1.
Solution:   Add "_EXTRA" variables for CI.  Add missing functions. (Ozaki
            Kiichi, closes #9420)
Files:      ci/config.mk.clang-12.sed, ci/config.mk.clang.sed,
            ci/config.mk.sed, src/Makefile, src/auto/configure,
            src/config.mk.in, src/configure.ac, src/if_ruby.c, src/vim.h


*** ../vim-8.2.3921/ci/config.mk.clang-12.sed   2021-12-09 21:07:07.600331923 
+0000
--- ci/config.mk.clang-12.sed   2021-12-28 15:35:13.752748640 +0000
***************
*** 1,3 ****
  # Clang 12 (or Apple clang 13) and later makes a warning 
'-Wcompound-token-split-by-macro' enable by default.
! /^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
! /^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=compound-token-split-by-macro/
--- 1,3 ----
  # Clang 12 (or Apple clang 13) and later makes a warning 
'-Wcompound-token-split-by-macro' enable by default.
! /^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ 
-Wno-error=compound-token-split-by-macro/
! /^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ 
-Wno-error=compound-token-split-by-macro/
*** ../vim-8.2.3921/ci/config.mk.clang.sed      2020-12-28 20:36:52.504817434 
+0000
--- ci/config.mk.clang.sed      2021-12-28 15:35:13.752748640 +0000
***************
*** 1,2 ****
  /^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=missing-field-initializers/
! /^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unknown-attributes 
-Wno-error=ignored-attributes/
--- 1,2 ----
  /^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=missing-field-initializers/
! /^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unknown-attributes 
-Wno-error=ignored-attributes/
*** ../vim-8.2.3921/ci/config.mk.sed    2020-05-26 19:09:06.910102525 +0100
--- ci/config.mk.sed    2021-12-28 15:35:13.752748640 +0000
***************
*** 1,2 ****
  /^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
! /^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unused-function/
--- 1,3 ----
  /^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
! /^PERL_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-function/
! /^RUBY_CFLAGS_EXTRA[[:blank:]]*=/s/$/ -Wno-error=unused-parameter/
*** ../vim-8.2.3921/src/Makefile        2021-12-20 22:12:49.330012136 +0000
--- src/Makefile        2021-12-28 15:35:13.756748633 +0000
***************
*** 1491,1503 ****
  
  ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(SANITIZER_CFLAGS) 
$(LEAK_CFLAGS) $(ABORT_CFLAGS) $(POST_DEFS)
  
  # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
  # with "-E".
  OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
  
! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) \
!             $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) \
!             $(PYTHON3_CFLAGS) $(TCL_CFLAGS) $(VTERM_CFLAGS) \
              -Dinline= -D__extension__= -Dalloca=alloca
  
  LINT_EXTRA = -D"__attribute__(x)="
--- 1491,1504 ----
  
  ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(SANITIZER_CFLAGS) 
$(LEAK_CFLAGS) $(ABORT_CFLAGS) $(POST_DEFS)
  
+ ALL_IF_CFLAGS = $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) 
$(PYTHON3_CFLAGS) $(RUBY_CFLAGS) $(TCL_CFLAGS)
+ ALL_IF_CFLAGS_EXTRA = $(LUA_CFLAGS_EXTRA) $(PERL_CFLAGS_EXTRA) 
$(PYTHON_CFLAGS_EXTRA) $(PYTHON3_CFLAGS_EXTRA) $(RUBY_CFLAGS_EXTRA) 
$(TCL_CFLAGS_EXTRA)
+ 
  # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
  # with "-E".
  OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
  
! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(ALL_IF_CFLAGS) 
$(VTERM_CFLAGS) \
              -Dinline= -D__extension__= -Dalloca=alloca
  
  LINT_EXTRA = -D"__attribute__(x)="
***************
*** 3357,3363 ****
        $(CCC) -o $@ if_xcmdsrv.c
  
  objects/if_lua.o: if_lua.c
!       $(CCC_NF) $(LUA_CFLAGS) $(ALL_CFLAGS) -o $@ if_lua.c
  
  objects/if_mzsch.o: if_mzsch.c $(MZSCHEME_EXTRA)
        $(CCC) -o $@ $(MZSCHEME_CFLAGS_EXTRA) if_mzsch.c
--- 3358,3364 ----
        $(CCC) -o $@ if_xcmdsrv.c
  
  objects/if_lua.o: if_lua.c
!       $(CCC_NF) $(LUA_CFLAGS) $(ALL_CFLAGS) $(LUA_CFLAGS_EXTRA) -o $@ if_lua.c
  
  objects/if_mzsch.o: if_mzsch.c $(MZSCHEME_EXTRA)
        $(CCC) -o $@ $(MZSCHEME_CFLAGS_EXTRA) if_mzsch.c
***************
*** 3366,3387 ****
        $(MZSCHEME_MZC) --c-mods mzscheme_base.c ++lib scheme/base
  
  objects/if_perl.o: auto/if_perl.c
!       $(CCC_NF) $(PERL_CFLAGS) $(ALL_CFLAGS) -o $@ auto/if_perl.c
  
  objects/if_perlsfio.o: if_perlsfio.c
!       $(CCC_NF) $(PERL_CFLAGS) $(ALL_CFLAGS) -o $@ if_perlsfio.c
  
  objects/if_python.o: if_python.c if_py_both.h
!       $(CCC_NF) $(PYTHON_CFLAGS) $(PYTHON_CFLAGS_EXTRA) $(ALL_CFLAGS) -o $@ 
if_python.c
  
  objects/if_python3.o: if_python3.c if_py_both.h
!       $(CCC_NF) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) $(ALL_CFLAGS) -o $@ 
if_python3.c
  
  objects/if_ruby.o: if_ruby.c
!       $(CCC_NF) $(RUBY_CFLAGS) $(ALL_CFLAGS) -o $@ if_ruby.c
  
  objects/if_tcl.o: if_tcl.c
!       $(CCC_NF) $(TCL_CFLAGS) $(ALL_CFLAGS) -o $@ if_tcl.c
  
  objects/indent.o: indent.c
        $(CCC) -o $@ indent.c
--- 3367,3388 ----
        $(MZSCHEME_MZC) --c-mods mzscheme_base.c ++lib scheme/base
  
  objects/if_perl.o: auto/if_perl.c
!       $(CCC_NF) $(PERL_CFLAGS) $(ALL_CFLAGS) $(PERL_CFLAGS_EXTRA) -o $@ 
auto/if_perl.c
  
  objects/if_perlsfio.o: if_perlsfio.c
!       $(CCC_NF) $(PERL_CFLAGS) $(ALL_CFLAGS) $(PERL_CFLAGS_EXTRA) -o $@ 
if_perlsfio.c
  
  objects/if_python.o: if_python.c if_py_both.h
!       $(CCC_NF) $(PYTHON_CFLAGS) $(ALL_CFLAGS) $(PYTHON_CFLAGS_EXTRA) -o $@ 
if_python.c
  
  objects/if_python3.o: if_python3.c if_py_both.h
!       $(CCC_NF) $(PYTHON3_CFLAGS) $(ALL_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ 
if_python3.c
  
  objects/if_ruby.o: if_ruby.c
!       $(CCC_NF) $(RUBY_CFLAGS) $(ALL_CFLAGS) $(RUBY_CFLAGS_EXTRA) -o $@ 
if_ruby.c
  
  objects/if_tcl.o: if_tcl.c
!       $(CCC_NF) $(TCL_CFLAGS) $(ALL_CFLAGS) $(TCL_CFLAGS_EXTRA) -o $@ if_tcl.c
  
  objects/indent.o: indent.c
        $(CCC) -o $@ indent.c
***************
*** 3459,3468 ****
        $(CCC) -o $@ ops.c
  
  objects/option.o: option.c optiondefs.h
!       $(CCC_NF) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) 
$(PYTHON3_CFLAGS) $(RUBY_CFLAGS) $(TCL_CFLAGS) $(ALL_CFLAGS) -o $@ option.c
  
  objects/optionstr.o: optionstr.c
!       $(CCC_NF) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) 
$(PYTHON3_CFLAGS) $(RUBY_CFLAGS) $(TCL_CFLAGS) $(ALL_CFLAGS) -o $@ optionstr.c
  
  objects/os_qnx.o: os_qnx.c $(VIM_H_DEPENDENCIES)
        $(CCC) -o $@ os_qnx.c
--- 3460,3469 ----
        $(CCC) -o $@ ops.c
  
  objects/option.o: option.c optiondefs.h
!       $(CCC_NF) $(ALL_IF_CFLAGS) $(ALL_CFLAGS) $(ALL_IF_CFLAGS_EXTRA) -o $@ 
option.c
  
  objects/optionstr.o: optionstr.c
!       $(CCC_NF) $(ALL_IF_CFLAGS) $(ALL_CFLAGS) $(ALL_IF_CFLAGS_EXTRA) -o $@ 
optionstr.c
  
  objects/os_qnx.o: os_qnx.c $(VIM_H_DEPENDENCIES)
        $(CCC) -o $@ os_qnx.c
*** ../vim-8.2.3921/src/auto/configure  2021-12-13 20:37:55.704562928 +0000
--- src/auto/configure  2021-12-28 15:38:11.320431450 +0000
***************
*** 662,673 ****
--- 662,675 ----
  NETBEANS_OBJ
  NETBEANS_SRC
  RUBY_LIBS
+ RUBY_CFLAGS_EXTRA
  RUBY_CFLAGS
  RUBY_PRO
  RUBY_OBJ
  RUBY_SRC
  vi_cv_path_ruby
  TCL_LIBS
+ TCL_CFLAGS_EXTRA
  TCL_CFLAGS
  TCL_PRO
  TCL_OBJ
***************
*** 675,689 ****
--- 677,694 ----
  vi_cv_path_tcl
  PYTHON3_OBJ
  PYTHON3_SRC
+ PYTHON3_CFLAGS_EXTRA
  PYTHON3_CFLAGS
  PYTHON3_LIBS
  vi_cv_path_python3
  PYTHON_OBJ
  PYTHON_SRC
+ PYTHON_CFLAGS_EXTRA
  PYTHON_CFLAGS
  PYTHON_LIBS
  vi_cv_path_python
  PERL_LIBS
+ PERL_CFLAGS_EXTRA
  PERL_CFLAGS
  PERL_PRO
  PERL_OBJ
***************
*** 700,705 ****
--- 705,711 ----
  MZSCHEME_OBJ
  MZSCHEME_SRC
  vi_cv_path_mzscheme
+ LUA_CFLAGS_EXTRA
  LUA_CFLAGS
  LUA_LIBS
  LUA_PRO
***************
*** 5658,5663 ****
--- 5664,5670 ----
  
  
  
+ 
  fi
  
  
***************
*** 6273,6278 ****
--- 6280,6286 ----
  
  
  
+ 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-pythoninterp 
argument" >&5
  $as_echo_n "checking --enable-pythoninterp argument... " >&6; }
  # Check whether --enable-pythoninterp was given.
***************
*** 6623,6628 ****
--- 6631,6637 ----
  
  
  
+ 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-python3interp 
argument" >&5
  $as_echo_n "checking --enable-python3interp argument... " >&6; }
  # Check whether --enable-python3interp was given.
***************
*** 6969,6974 ****
--- 6978,6984 ----
  
  
  
+ 
  if test "$python_ok" = yes && test "$python3_ok" = yes; then
    $as_echo "#define DYNAMIC_PYTHON 1" >>confdefs.h
  
***************
*** 7549,7554 ****
--- 7559,7565 ----
  
  
  
+ 
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-rubyinterp 
argument" >&5
  $as_echo_n "checking --enable-rubyinterp argument... " >&6; }
  # Check whether --enable-rubyinterp was given.
***************
*** 7709,7714 ****
--- 7720,7726 ----
  
  
  
+ 
  
  
  
*** ../vim-8.2.3921/src/config.mk.in    2020-06-05 22:16:25.621415440 +0100
--- src/config.mk.in    2021-12-28 15:35:13.756748633 +0000
***************
*** 41,46 ****
--- 41,47 ----
  LUA_SRC               = @LUA_SRC@
  LUA_OBJ               = @LUA_OBJ@
  LUA_CFLAGS    = @LUA_CFLAGS@
+ LUA_CFLAGS_EXTRA      = @LUA_CFLAGS_EXTRA@
  LUA_PRO               = @LUA_PRO@
  
  MZSCHEME_LIBS = @MZSCHEME_LIBS@
***************
*** 60,74 ****
--- 61,78 ----
  PERL_OBJ      = @PERL_OBJ@
  PERL_PRO      = @PERL_PRO@
  PERL_CFLAGS   = @PERL_CFLAGS@
+ PERL_CFLAGS_EXTRA     = @PERL_CFLAGS_EXTRA@
  
  PYTHON_SRC    = @PYTHON_SRC@
  PYTHON_OBJ    = @PYTHON_OBJ@
  PYTHON_CFLAGS = @PYTHON_CFLAGS@
+ PYTHON_CFLAGS_EXTRA   = @PYTHON_CFLAGS_EXTRA@
  PYTHON_LIBS   = @PYTHON_LIBS@
  
  PYTHON3_SRC   = @PYTHON3_SRC@
  PYTHON3_OBJ   = @PYTHON3_OBJ@
  PYTHON3_CFLAGS        = @PYTHON3_CFLAGS@
+ PYTHON3_CFLAGS_EXTRA  = @PYTHON3_CFLAGS_EXTRA@
  PYTHON3_LIBS  = @PYTHON3_LIBS@
  
  TCL           = @vi_cv_path_tcl@
***************
*** 76,81 ****
--- 80,86 ----
  TCL_OBJ               = @TCL_OBJ@
  TCL_PRO               = @TCL_PRO@
  TCL_CFLAGS    = @TCL_CFLAGS@
+ TCL_CFLAGS_EXTRA      = @TCL_CFLAGS_EXTRA@
  TCL_LIBS      = @TCL_LIBS@
  
  NETBEANS_SRC  = @NETBEANS_SRC@
***************
*** 91,96 ****
--- 96,102 ----
  RUBY_OBJ      = @RUBY_OBJ@
  RUBY_PRO      = @RUBY_PRO@
  RUBY_CFLAGS   = @RUBY_CFLAGS@
+ RUBY_CFLAGS_EXTRA     = @RUBY_CFLAGS_EXTRA@
  RUBY_LIBS     = @RUBY_LIBS@
  
  AWK           = @AWK@
*** ../vim-8.2.3921/src/configure.ac    2021-12-13 20:37:55.700562932 +0000
--- src/configure.ac    2021-12-28 15:35:13.756748633 +0000
***************
*** 781,786 ****
--- 781,787 ----
    AC_SUBST(LUA_PRO)
    AC_SUBST(LUA_LIBS)
    AC_SUBST(LUA_CFLAGS)
+   AC_SUBST(LUA_CFLAGS_EXTRA)
  fi
  
  
***************
*** 1201,1206 ****
--- 1202,1208 ----
  AC_SUBST(PERL_OBJ)
  AC_SUBST(PERL_PRO)
  AC_SUBST(PERL_CFLAGS)
+ AC_SUBST(PERL_CFLAGS_EXTRA)
  AC_SUBST(PERL_LIBS)
  
  AC_MSG_CHECKING(--enable-pythoninterp argument)
***************
*** 1433,1438 ****
--- 1435,1441 ----
  
  AC_SUBST(PYTHON_LIBS)
  AC_SUBST(PYTHON_CFLAGS)
+ AC_SUBST(PYTHON_CFLAGS_EXTRA)
  AC_SUBST(PYTHON_SRC)
  AC_SUBST(PYTHON_OBJ)
  
***************
*** 1650,1655 ****
--- 1653,1659 ----
  
  AC_SUBST(PYTHON3_LIBS)
  AC_SUBST(PYTHON3_CFLAGS)
+ AC_SUBST(PYTHON3_CFLAGS_EXTRA)
  AC_SUBST(PYTHON3_SRC)
  AC_SUBST(PYTHON3_OBJ)
  
***************
*** 1946,1951 ****
--- 1950,1956 ----
  AC_SUBST(TCL_OBJ)
  AC_SUBST(TCL_PRO)
  AC_SUBST(TCL_CFLAGS)
+ AC_SUBST(TCL_CFLAGS_EXTRA)
  AC_SUBST(TCL_LIBS)
  
  AC_MSG_CHECKING(--enable-rubyinterp argument)
***************
*** 2050,2055 ****
--- 2055,2061 ----
  AC_SUBST(RUBY_OBJ)
  AC_SUBST(RUBY_PRO)
  AC_SUBST(RUBY_CFLAGS)
+ AC_SUBST(RUBY_CFLAGS_EXTRA)
  AC_SUBST(RUBY_LIBS)
  
  AC_MSG_CHECKING(--enable-cscope argument)
*** ../vim-8.2.3921/src/if_ruby.c       2021-12-06 11:03:50.950900210 +0000
--- src/if_ruby.c       2021-12-28 15:35:13.756748633 +0000
***************
*** 73,107 ****
  # if RUBY_VERSION >= 19
  // Ruby 1.9 defines a number of static functions which use rb_num2long and
  // rb_int2big
! #  define rb_num2long rb_num2long_stub
! #  define rb_int2big rb_int2big_stub
  
  #  if RUBY_VERSION >= 30 || VIM_SIZEOF_INT < VIM_SIZEOF_LONG
  // Ruby 1.9 defines a number of static functions which use rb_fix2int and
  // rb_num2int if VIM_SIZEOF_INT < VIM_SIZEOF_LONG (64bit)
! #   define rb_fix2int rb_fix2int_stub
! #   define rb_num2int rb_num2int_stub
  #  endif
  # endif
  
  # if RUBY_VERSION == 21
  // Ruby 2.1 adds new GC called RGenGC and RARRAY_PTR uses
  // rb_gc_writebarrier_unprotect_promoted if USE_RGENGC
! #  define rb_gc_writebarrier_unprotect_promoted 
rb_gc_writebarrier_unprotect_promoted_stub
  # endif
  
  # if RUBY_VERSION >= 22
! #  define rb_gc_writebarrier_unprotect rb_gc_writebarrier_unprotect_stub
  # endif
  
  # if RUBY_VERSION >= 26
! #  define rb_ary_detransient rb_ary_detransient_stub
  # endif
  
  # if RUBY_VERSION >= 30
! #  define rb_check_type rb_check_type_stub
! #  define rb_num2uint rb_num2uint_stub
! #  define ruby_malloc_size_overflow ruby_malloc_size_overflow_stub
  # endif
  
  #endif  // ifdef DYNAMIC_RUBY
--- 73,112 ----
  # if RUBY_VERSION >= 19
  // Ruby 1.9 defines a number of static functions which use rb_num2long and
  // rb_int2big
! #  define rb_num2long rb_num2long_stub
! #  define rb_int2big  rb_int2big_stub
  
  #  if RUBY_VERSION >= 30 || VIM_SIZEOF_INT < VIM_SIZEOF_LONG
  // Ruby 1.9 defines a number of static functions which use rb_fix2int and
  // rb_num2int if VIM_SIZEOF_INT < VIM_SIZEOF_LONG (64bit)
! #   define rb_fix2int rb_fix2int_stub
! #   define rb_num2int rb_num2int_stub
  #  endif
  # endif
  
  # if RUBY_VERSION == 21
  // Ruby 2.1 adds new GC called RGenGC and RARRAY_PTR uses
  // rb_gc_writebarrier_unprotect_promoted if USE_RGENGC
! #  define rb_gc_writebarrier_unprotect_promoted       
rb_gc_writebarrier_unprotect_promoted_stub
  # endif
  
  # if RUBY_VERSION >= 22
! #  define rb_gc_writebarrier_unprotect        
rb_gc_writebarrier_unprotect_stub
  # endif
  
  # if RUBY_VERSION >= 26
! #  define rb_ary_detransient  rb_ary_detransient_stub
  # endif
  
  # if RUBY_VERSION >= 30
! #  define rb_check_type                       rb_check_type_stub
! #  define rb_num2uint                 rb_num2uint_stub
! #  define ruby_malloc_size_overflow   ruby_malloc_size_overflow_stub
! # endif
! 
! # if RUBY_VERSION >= 31
! #  define rb_debug_rstring_null_ptr   rb_debug_rstring_null_ptr_stub
! #  define rb_unexpected_type          rb_unexpected_type_stub
  # endif
  
  #endif  // ifdef DYNAMIC_RUBY
***************
*** 173,178 ****
--- 178,191 ----
  # undef HAVE_DUP
  #endif
  
+ // Avoid redefining TRUE/FALSE in vterm.h.
+ #ifdef TRUE
+ # undef TRUE
+ #endif
+ #ifdef FALSE
+ # undef FALSE
+ #endif
+ 
  #include "vim.h"
  #include "version.h"
  
***************
*** 411,416 ****
--- 424,432 ----
  # else
  static VALUE (*dll_rb_data_object_alloc) (VALUE, void*, RUBY_DATA_FUNC, 
RUBY_DATA_FUNC);
  # endif
+ # if RUBY_VERSION >= 31
+ static void (*dll_rb_debug_rstring_null_ptr) (const char*);
+ # endif
  static VALUE (*dll_rb_define_class_under) (VALUE, const char*, VALUE);
  static void (*dll_rb_define_const) (VALUE,const char*,VALUE);
  static void (*dll_rb_define_global_function) (const char*,VALUE(*)(),int);
***************
*** 485,490 ****
--- 501,509 ----
  static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
  #  endif
  # endif
+ # if RUBY_VERSION >= 31
+ static void (*dll_rb_unexpected_type) (VALUE, int) ATTRIBUTE_NORETURN;
+ # endif
  # if RUBY_VERSION >= 18
  static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
  static VALUE (*dll_rb_float_new) (double);
***************
*** 629,634 ****
--- 648,665 ----
      dll_ruby_malloc_size_overflow(x, y);
  }
  #  endif
+ #  if RUBY_VERSION >= 31
+     void
+ rb_debug_rstring_null_ptr_stub(const char *func)
+ {
+     dll_rb_debug_rstring_null_ptr(func);
+ }
+     void
+ rb_unexpected_type_stub(VALUE self, int t)
+ {
+     dll_rb_unexpected_type(self, t);
+ }
+ #  endif
  # endif // ifndef PROTO
  
  static HINSTANCE hinstRuby = NULL; // Instance of ruby.dll
***************
*** 672,677 ****
--- 703,711 ----
  # else
      {"rb_data_object_alloc", (RUBY_PROC*)&dll_rb_data_object_alloc},
  # endif
+ # if RUBY_VERSION >= 31
+     {"rb_debug_rstring_null_ptr", (RUBY_PROC*)&dll_rb_debug_rstring_null_ptr},
+ # endif
      {"rb_define_class_under", (RUBY_PROC*)&dll_rb_define_class_under},
      {"rb_define_const", (RUBY_PROC*)&dll_rb_define_const},
      {"rb_define_global_function", (RUBY_PROC*)&dll_rb_define_global_function},
***************
*** 745,750 ****
--- 779,787 ----
      {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
  #  endif
  # endif
+ # if RUBY_VERSION >= 31
+     {"rb_unexpected_type", (RUBY_PROC*)&dll_rb_unexpected_type},
+ # endif
  # if RUBY_VERSION >= 18
      {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
  #  if RUBY_VERSION <= 19
*** ../vim-8.2.3921/src/vim.h   2021-12-27 17:21:38.024449102 +0000
--- src/vim.h   2021-12-28 15:35:13.756748633 +0000
***************
*** 2177,2189 ****
  #endif
  
  #if defined(__GNUC__) || defined(__clang__)
! # define likely(x)      __builtin_expect((x), 1)
! # define unlikely(x)    __builtin_expect((x), 0)
! # define ATTRIBUTE_COLD __attribute__((cold))
  #else
! # define unlikely(x)  (x)
! # define likely(x)    (x)
  # define ATTRIBUTE_COLD
  #endif
  
  typedef enum {
--- 2177,2191 ----
  #endif
  
  #if defined(__GNUC__) || defined(__clang__)
! # define likely(x)            __builtin_expect((x), 1)
! # define unlikely(x)          __builtin_expect((x), 0)
! # define ATTRIBUTE_COLD               __attribute__((cold))
! # define ATTRIBUTE_NORETURN   __attribute__((noreturn))
  #else
! # define unlikely(x)  (x)
! # define likely(x)    (x)
  # define ATTRIBUTE_COLD
+ # define ATTRIBUTE_NORETURN
  #endif
  
  typedef enum {
*** ../vim-8.2.3921/src/version.c       2021-12-28 13:54:37.475164202 +0000
--- src/version.c       2021-12-28 15:38:08.160437057 +0000
***************
*** 751,752 ****
--- 751,754 ----
  {   /* Add new patch number below this line */
+ /**/
+     3922,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
128. You can access the Net -- via your portable and cellular phone.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/20211228155218.497BF1C0641%40moolenaar.net.

Raspunde prin e-mail lui