Mercurial > vim
view vimtutor.bat @ 34067:dbe616160092 v9.1.0003
patch 9.1.0003: Cannot build against Ruby 33 dynamically
Commit: https://github.com/vim/vim/commit/443657b32becb2318ae40e30a849bbe5cc1a153c
Author: Isao Sato <svardew@gmail.com>
Date: Wed Jan 3 19:31:05 2024 +0100
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>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 03 Jan 2024 20:00:04 +0100 |
parents | 79aaaa134298 |
children |
line wrap: on
line source
:: Start Vim on a copy of the tutor file. @echo off :: Usage: vimtutor [-console] [xx] :: :: -console means gvim will not be used :: xx is a language code like "es" or "nl". :: When an xx argument is given, it tries loading that tutor. :: When this fails or no xx argument was given, it tries using 'v:lang' :: When that also fails, it uses the English version. :: Use Vim to copy the tutor, it knows the value of $VIMRUNTIME FOR %%d in (. %TMP% %TEMP%) DO ( call :test_dir_writable "%~dpf0" %%d IF NOT ERRORLEVEL 1 GOTO dir_ok ) echo No working directory is found GOTO end :test_dir_writable SET TUTORCOPY=%2\$tutor$ COPY %1 %TUTORCOPY% >nul 2>nul GOTO end :dir_ok SET xx=%1 IF NOT .%1==.-console GOTO use_gui SHIFT SET xx=%1 GOTO use_vim :use_gui :: Try making a copy of tutor with gvim. If gvim cannot be found, try using :: vim instead. If vim cannot be found, alert user to check environment and :: installation. :: The script tutor.vim tells Vim which file to copy. start "dummy" /b /w "%~dp0gvim.exe" -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim" IF ERRORLEVEL 1 GOTO use_vim :: Start gvim without any .vimrc, set 'nocompatible' start "dummy" /b /w "%~dp0gvim.exe" -u NONE -c "set nocp" %TUTORCOPY% GOTO end :use_vim :: The script tutor.vim tells Vim which file to copy call vim -u NONE -c "so $VIMRUNTIME/tutor/tutor.vim" IF ERRORLEVEL 1 GOTO no_executable :: Start vim without any .vimrc, set 'nocompatible' call vim -u NONE -c "set nocp" %TUTORCOPY% GOTO end :no_executable ECHO. ECHO. ECHO No vim or gvim found in current directory or PATH. ECHO Check your installation or re-run install.exe :end :: remove the copy of the tutor IF EXIST %TUTORCOPY% DEL %TUTORCOPY% SET xx=