mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -04:00
patch 9.1.0003: Cannot build against Ruby 33 dynamically
Problem: Cannot build against Ruby 33 dynamically Solution: Ruby 33 removed transient heap, so do not use rb_ary_transient anymore, NoMethodError format changed, so update test for expected error message (Isao Sato) - ruby-3.3 removed transient heap for ruby/dyn when +ruby/dyn with ruby-3.3 do command :ruby, E448 occur. ruby-3.3 has no transient heap anymore, so disable rb_ary_transient etc. $ LC_ALL=C VIMRUNTIME=runtime ./src/vim -u NONE -c 'ruby puts RUBY_VERSION' "=> Error detected while processing command line: "=> E448: Could not load library function rb_ary_detransient "=> E266: Sorry, this command is disabled, the Ruby library could not be loaded. - ruby-3.3 changed NoMethodError format: $ rvm 3.2.2, 3.3.0-rc1 do ruby -e 'begin; nil.name; rescue => e; puts "%s : %s"%[RUBY_VERSION, e.message]; end ' => 3.2.2 : undefined method `name' for nil:NilClass => 3.3.0 : undefined method `name' for nil so loose pattern in Test_ruby_Vim_buffer_get() closes: #13741 Signed-off-by: Isao Sato <svardew@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
0689b87059
commit
443657b32b
@ -83,7 +83,7 @@
|
||||
# define rb_gc_writebarrier_unprotect rb_gc_writebarrier_unprotect_stub
|
||||
# endif
|
||||
|
||||
# if RUBY_VERSION >= 26
|
||||
# if RUBY_VERSION >= 26 && RUBY_VERSION <= 32
|
||||
# define rb_ary_detransient rb_ary_detransient_stub
|
||||
# endif
|
||||
|
||||
@ -456,7 +456,7 @@ 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 RUBY_VERSION >= 26
|
||||
# if RUBY_VERSION >= 26 && RUBY_VERSION <= 32
|
||||
static void (*dll_rb_ary_detransient) (VALUE);
|
||||
# endif
|
||||
# ifdef __ia64
|
||||
@ -491,7 +491,7 @@ NORETURN(static void (*dll_ruby_malloc_size_overflow)(size_t, size_t));
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if RUBY_VERSION >= 26
|
||||
# if RUBY_VERSION >= 26 && RUBY_VERSION <= 32
|
||||
void rb_ary_detransient_stub(VALUE x);
|
||||
# endif
|
||||
|
||||
@ -561,7 +561,7 @@ rb_gc_writebarrier_unprotect_stub(VALUE obj)
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
# if RUBY_VERSION >= 26
|
||||
# if RUBY_VERSION >= 26 && RUBY_VERSION <= 32
|
||||
void
|
||||
rb_ary_detransient_stub(VALUE x)
|
||||
{
|
||||
@ -718,7 +718,7 @@ static struct
|
||||
{"rb_ary_new4", (RUBY_PROC*)&dll_rb_ary_new4},
|
||||
# endif
|
||||
{"rb_ary_push", (RUBY_PROC*)&dll_rb_ary_push},
|
||||
# if RUBY_VERSION >= 26
|
||||
# if RUBY_VERSION >= 26 && RUBY_VERSION <= 32
|
||||
{"rb_ary_detransient", (RUBY_PROC*)&dll_rb_ary_detransient},
|
||||
# endif
|
||||
{"rb_int2big", (RUBY_PROC*)&dll_rb_int2big},
|
||||
|
@ -275,7 +275,7 @@ func Test_ruby_Vim_buffer_get()
|
||||
call assert_match('Xfoo1$', rubyeval('Vim::Buffer[1].name'))
|
||||
call assert_match('Xfoo2$', rubyeval('Vim::Buffer[2].name'))
|
||||
call assert_fails('ruby print Vim::Buffer[3].name',
|
||||
\ "NoMethodError: undefined method `name' for nil:NilClass")
|
||||
\ "NoMethodError: undefined method `name' for nil")
|
||||
%bwipe
|
||||
endfunc
|
||||
|
||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
3,
|
||||
/**/
|
||||
2,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user