]> git.ipfire.org Git - thirdparty/vim.git/commit
patch 9.1.0003: Cannot build against Ruby 33 dynamically v9.1.0003
authorIsao Sato <svardew@gmail.com>
Wed, 3 Jan 2024 18:31:05 +0000 (19:31 +0100)
committerChristian Brabandt <cb@256bit.org>
Wed, 3 Jan 2024 18:46:42 +0000 (19:46 +0100)
commit443657b32becb2318ae40e30a849bbe5cc1a153c
tree0e1adc2600b0143f33beee9fe76a6e37e216b339
parent0689b870595c687a23e102913ce5037f65d03748
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>
src/if_ruby.c
src/testdir/test_ruby.vim
src/version.c