To: vim_dev@googlegroups.com Subject: Patch 8.2.3922 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///