# HG changeset patch # User Bram Moolenaar # Date 1545945304 -3600 # Node ID b408509d8292f9298db0aa89f35129fd89bac513 # Parent f47e56455015b1836a51d3d0631134af4955e735 patch 8.1.0646: cannot build with Ruby 2.6.0 commit https://github.com/vim/vim/commit/b09c684195d803137d52c34fb4d3a410be5ac10f Author: Bram Moolenaar Date: Thu Dec 27 22:11:01 2018 +0100 patch 8.1.0646: cannot build with Ruby 2.6.0 Problem: Cannot build with Ruby 2.6.0. Solution: Add rb_ary_detransient(). (Ozaki Kiichi, closes https://github.com/vim/vim/issues/3724) diff --git a/src/if_ruby.c b/src/if_ruby.c --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -123,6 +123,10 @@ # define rb_gc_writebarrier_unprotect rb_gc_writebarrier_unprotect_stub #endif +#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 26 +# define rb_ary_detransient (*dll_rb_ary_detransient) +#endif + #include #ifdef RUBY19_OR_LATER # include @@ -455,6 +459,9 @@ static VALUE (*dll_rb_float_new) (double static VALUE (*dll_rb_ary_new) (void); static VALUE (*dll_rb_ary_new4) (long n, const VALUE *elts); static VALUE (*dll_rb_ary_push) (VALUE, VALUE); +# if DYNAMIC_RUBY_VER >= 26 +static void (*dll_rb_ary_detransient) (VALUE); +# endif # if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) # ifdef __ia64 static void * (*dll_rb_ia64_bsp) (void); @@ -666,6 +673,9 @@ static struct {"rb_ary_new4", (RUBY_PROC*)&dll_rb_ary_new4}, # endif {"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push}, +# if DYNAMIC_RUBY_VER >= 26 + {"rb_ary_detransient", (RUBY_PROC*)&dll_rb_ary_detransient}, +# endif # endif # ifdef RUBY19_OR_LATER {"rb_int2big", (RUBY_PROC*)&dll_rb_int2big}, @@ -966,12 +976,9 @@ static int ensure_ruby_initialized(void) static void error_print(int state) { -#ifndef DYNAMIC_RUBY -#if !(defined(RUBY_VERSION) && RUBY_VERSION >= 19) \ - && !(defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 19) +#if !defined(DYNAMIC_RUBY) && !defined(RUBY19_OR_LATER) RUBYEXTERN VALUE ruby_errinfo; #endif -#endif VALUE error; VALUE eclass; VALUE einfo; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -800,6 +800,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 646, +/**/ 645, /**/ 644,