diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-10-06 07:28:28 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-05 23:28:28 +0000 |
commit | a4ebea18f1acb7c3069540f06361436b9675e3ab (patch) | |
tree | 449133cd85cf28dc242c9b059b25e7a773afdf9c | |
parent | 9f26bdc4165adf7de9bf0c231a386b02e85cbce0 (diff) | |
download | rneovim-a4ebea18f1acb7c3069540f06361436b9675e3ab.tar.gz rneovim-a4ebea18f1acb7c3069540f06361436b9675e3ab.tar.bz2 rneovim-a4ebea18f1acb7c3069540f06361436b9675e3ab.zip |
vim-patch:9.1.0003: Cannot build against Ruby 33 dynamically (#30683)
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: vim/vim#13741
https://github.com/vim/vim/commit/443657b32becb2318ae40e30a849bbe5cc1a153c
Co-authored-by: Isao Sato <svardew@gmail.com>
-rw-r--r-- | test/old/testdir/test_ruby.vim | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/test/old/testdir/test_ruby.vim b/test/old/testdir/test_ruby.vim index 483e235636..d4a3dc3301 100644 --- a/test/old/testdir/test_ruby.vim +++ b/test/old/testdir/test_ruby.vim @@ -282,7 +282,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 |