Re: Patch 7.4.2302

2016-09-03 Fir de Conversatie Bram Moolenaar

Ken Takata wrote:

> 2016/9/3 Sat 2:34:31 UTC+9 Bram Moolenaar wrote:
> > Ken Takata wrote:
> > 
> > > 2016/9/2 Fri 3:51:35 UTC+9 Bram Moolenaar wrote:
> > > > Patch 7.4.2302
> > > > Problem:Default interface versions for MS-Windows are outdated.
> > > > Solution:   Use Active Perl 5.24, Python 3.5.2.  Could only make it 
> > > > work with
> > > > Ruby 1.9.2.
> > > > Files:  src/bigvim.bat, src/bigvim64.bat
> > > 
> > > As I wrote in INSTALLpc.txt, you need a hack to link with recent Ruby.
> > > (If you use a binary from rubyinstaller.org .)
> > > You need to generate config.h from Ruby's source code. Also you need to 
> > > set
> > > RUBY_MSVCRT_NAME=msvcrt .
> > > The build script in vim-win32-installer uses this hack.
> > > https://github.com/vim/vim-win32-installer/blob/master/appveyor.bat#L113-L122
> > > https://github.com/vim/vim-win32-installer/blob/master/appveyor.bat#L163
> > 
> > I tried part of this and it failed.  I'll give it another try.
> > 
> > > BTW, which ruby binary do you use?  Maybe ruby-1.9.2-p136-i386-mswin32.zip
> > > form http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html ?
> > > If you use this, you also need to set RUBY_VER_LONG=1.9.1 instead of 
> > > 1.9.2.
> > > Because Ruby 1.9.2's API version is 1.9.1 and RUBY_VER_LONG is used for
> > > specifying API version.
> > 
> > Yes, that's what I used before.  I renamed the directory.
> 
> Oh, that was incorrect. RUBY_VER_LONG is also used for the name of
> ruby's DLL.  The Vim binary with your configuration will try to load
> msvcrt-ruby192.dll, but actual filename is msvcrt-ruby191.dll.

I believe we had this discussion before.  The dll must have the actual
version to work properly.  So it's named msvcrt-ruby192.dll.  I know
that on MS-Windows there is this weird habit of giving libraries the
same name even when it's a different version.  That is bad, you can't
see what version you actually have.  Well, I suppose it's because
Windows has no way to distinguish between major and minor version
numbers.  Hell, it doesn't know anything about version numbers.

> > > I think the name RUBY_VER_LONG is confusing. Renaming to
> > > RUBY_API_VER_LONG makes the thing clearer. (But the name is long.)
> > 
> > Yes, that's better.
> 
> Okay, I wrote a patch for this. RUBY_VER_LONG can be still used for
> backward compatibility, but if RUBY_API_VER_LONG is defined, it
> overrides RUBY_VER_LONG.
> 
> And, when I wrote the patch, I found that makefiles for cygwin/mingw don't
> have modelines. So I copied them from Make_mvc.mak. (But they differ from
> Makefile. I'm not sure which modelines are prefer.)

Thanks.

-- 
hundred-and-one symptoms of being an internet addict:
148. You find it easier to dial-up the National Weather Service
 Weather/your_town/now.html than to simply look out the window.

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org///
 \\\help me help AIDS victims -- http://ICCF-Holland.org///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Patch 7.4.2302

2016-09-03 Fir de Conversatie Ken Takata
Hi Bram,

2016/9/3 Sat 2:34:31 UTC+9 Bram Moolenaar wrote:
> Ken Takata wrote:
> 
> > 2016/9/2 Fri 3:51:35 UTC+9 Bram Moolenaar wrote:
> > > Patch 7.4.2302
> > > Problem:Default interface versions for MS-Windows are outdated.
> > > Solution:   Use Active Perl 5.24, Python 3.5.2.  Could only make it work 
> > > with
> > > Ruby 1.9.2.
> > > Files:  src/bigvim.bat, src/bigvim64.bat
> > 
> > As I wrote in INSTALLpc.txt, you need a hack to link with recent Ruby.
> > (If you use a binary from rubyinstaller.org .)
> > You need to generate config.h from Ruby's source code. Also you need to set
> > RUBY_MSVCRT_NAME=msvcrt .
> > The build script in vim-win32-installer uses this hack.
> > https://github.com/vim/vim-win32-installer/blob/master/appveyor.bat#L113-L122
> > https://github.com/vim/vim-win32-installer/blob/master/appveyor.bat#L163
> 
> I tried part of this and it failed.  I'll give it another try.
> 
> > BTW, which ruby binary do you use?  Maybe ruby-1.9.2-p136-i386-mswin32.zip
> > form http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html ?
> > If you use this, you also need to set RUBY_VER_LONG=1.9.1 instead of 1.9.2.
> > Because Ruby 1.9.2's API version is 1.9.1 and RUBY_VER_LONG is used for
> > specifying API version.
> 
> Yes, that's what I used before.  I renamed the directory.

Oh, that was incorrect. RUBY_VER_LONG is also used for the name of ruby's DLL.
The Vim binary with your configuration will try to load msvcrt-ruby192.dll, but
actual filename is msvcrt-ruby191.dll.


> > I think the name RUBY_VER_LONG is confusing. Renaming to RUBY_API_VER_LONG
> > makes the thing clearer. (But the name is long.)
> 
> Yes, that's better.

Okay, I wrote a patch for this. RUBY_VER_LONG can be still used for backward
compatibility, but if RUBY_API_VER_LONG is defined, it overrides RUBY_VER_LONG.

And, when I wrote the patch, I found that makefiles for cygwin/mingw don't
have modelines. So I copied them from Make_mvc.mak. (But they differ from
Makefile. I'm not sure which modelines are prefer.)

Regards,
Ken Takata

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
# HG changeset patch
# Parent  c1ae2fa18e083d54bc7c8bbf219557f1559675df

diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt
--- a/src/INSTALLpc.txt
+++ b/src/INSTALLpc.txt
@@ -598,11 +598,11 @@ you need some tricks described below.
 
 When building, you need to set the following variables at least:
 
-RUBY:  Where ruby is installed. E.g. C:\Ruby22
-DYNAMIC_RUBY:  Whether dynamic linking is used. Usually, set to yes.
-RUBY_VER:  Ruby version. E.g. 22 for Ruby 2.2.X.
-RUBY_VER_LONG: Ruby API version in a long format.
-   E.g. 2.2.0 for Ruby 2.2.X.
+RUBY:  Where ruby is installed. E.g. C:\Ruby22
+DYNAMIC_RUBY:  Whether dynamic linking is used. Usually, set to yes.
+RUBY_VER:  Ruby version. E.g. 22 for Ruby 2.2.X.
+RUBY_API_VER_LONG: Ruby API version in a long format.
+   E.g. 2.2.0 for Ruby 2.2.X.
 
 Ruby version vs. Ruby API version:
 
@@ -653,7 +653,7 @@ config.h and Ruby's DLL name. Here are t
   4) Build Vim. Note that you need to adjust some variables (as one line):
 
   nmake -f Make_mvc.mak
-  RUBY=C:\Ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_VER_LONG=2.2.0
+  RUBY=C:\Ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_API_VER_LONG=2.2.0
   RUBY_MSVCRT_NAME=msvcrt
   WINVER=0x501
 
@@ -668,7 +668,7 @@ Using MinGW is easier than using MSVC wh
 After you install RubyInstaller, just type this (as one line):
 
 mingw32-make -f Make_ming.mak
-RUBY=C:/Ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_VER_LONG=2.2.0
+RUBY=C:/Ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_API_VER_LONG=2.2.0
 WINVER=0x501
 
 If you set WINVER explicitly, it must be set to >=0x500, when building with
diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -349,12 +349,12 @@ endif
 #	  RUBY=[Path to Ruby directory] (Set inside Make_cyg.mak or Make_ming.mak)
 #	  DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically)
 #	  RUBY_VER=[Ruby version, eg 18, 19, 20] (default is 18)
-#	  RUBY_VER_LONG=[Ruby version, eg 1.8, 1.9.1, 2.0.0] (default is 1.8)
-#	You must set RUBY_VER_LONG when changing RUBY_VER.
-#	RUBY_API_VER is derived 

Re: Patch 7.4.2302

2016-09-02 Fir de Conversatie Bram Moolenaar

Ken Takata wrote:

> 2016/9/2 Fri 3:51:35 UTC+9 Bram Moolenaar wrote:
> > Patch 7.4.2302
> > Problem:Default interface versions for MS-Windows are outdated.
> > Solution:   Use Active Perl 5.24, Python 3.5.2.  Could only make it work 
> > with
> > Ruby 1.9.2.
> > Files:  src/bigvim.bat, src/bigvim64.bat
> 
> As I wrote in INSTALLpc.txt, you need a hack to link with recent Ruby.
> (If you use a binary from rubyinstaller.org .)
> You need to generate config.h from Ruby's source code. Also you need to set
> RUBY_MSVCRT_NAME=msvcrt .
> The build script in vim-win32-installer uses this hack.
> https://github.com/vim/vim-win32-installer/blob/master/appveyor.bat#L113-L122
> https://github.com/vim/vim-win32-installer/blob/master/appveyor.bat#L163

I tried part of this and it failed.  I'll give it another try.

> BTW, which ruby binary do you use?  Maybe ruby-1.9.2-p136-i386-mswin32.zip
> form http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html ?
> If you use this, you also need to set RUBY_VER_LONG=1.9.1 instead of 1.9.2.
> Because Ruby 1.9.2's API version is 1.9.1 and RUBY_VER_LONG is used for
> specifying API version.

Yes, that's what I used before.  I renamed the directory.

> I think the name RUBY_VER_LONG is confusing. Renaming to RUBY_API_VER_LONG
> makes the thing clearer. (But the name is long.)

Yes, that's better.

-- 
Never eat yellow snow.

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org///
 \\\help me help AIDS victims -- http://ICCF-Holland.org///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Patch 7.4.2302

2016-09-02 Fir de Conversatie Ken Takata
Hi Bram,

2016/9/2 Fri 3:51:35 UTC+9 Bram Moolenaar wrote:
> Patch 7.4.2302
> Problem:Default interface versions for MS-Windows are outdated.
> Solution:   Use Active Perl 5.24, Python 3.5.2.  Could only make it work with
> Ruby 1.9.2.
> Files:  src/bigvim.bat, src/bigvim64.bat

As I wrote in INSTALLpc.txt, you need a hack to link with recent Ruby.
(If you use a binary from rubyinstaller.org .)
You need to generate config.h from Ruby's source code. Also you need to set
RUBY_MSVCRT_NAME=msvcrt .
The build script in vim-win32-installer uses this hack.
https://github.com/vim/vim-win32-installer/blob/master/appveyor.bat#L113-L122
https://github.com/vim/vim-win32-installer/blob/master/appveyor.bat#L163

BTW, which ruby binary do you use?  Maybe ruby-1.9.2-p136-i386-mswin32.zip
form http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html ?
If you use this, you also need to set RUBY_VER_LONG=1.9.1 instead of 1.9.2.
Because Ruby 1.9.2's API version is 1.9.1 and RUBY_VER_LONG is used for
specifying API version.

I think the name RUBY_VER_LONG is confusing. Renaming to RUBY_API_VER_LONG
makes the thing clearer. (But the name is long.)

Regards,
Ken Takata

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Patch 7.4.2302

2016-09-01 Fir de Conversatie Bram Moolenaar

Patch 7.4.2302
Problem:Default interface versions for MS-Windows are outdated.
Solution:   Use Active Perl 5.24, Python 3.5.2.  Could only make it work with
Ruby 1.9.2.
Files:  src/bigvim.bat, src/bigvim64.bat


*** ../vim-7.4.2301/src/bigvim.bat  2016-01-02 15:06:59.571330038 +0100
--- src/bigvim.bat  2016-09-01 20:48:05.689249907 +0200
***
*** 1,5 
  :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
  SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
  SET TOOLDIR=E:\
! %VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=%TOOLDIR%perl522\perl 
DYNAMIC_PERL=yes PERL_VER=522 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes 
PYTHON_VER=27 PYTHON3=%TOOLDIR%python34 DYNAMIC_PYTHON3=yes PYTHON3_VER=34 
RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=19 RUBY_VER_LONG=1.9.2 
TCL=%TOOLDIR%tcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes %1 IME=yes 
CSCOPE=yes
  
--- 1,5 
  :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
  SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
  SET TOOLDIR=E:\
! %VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=%TOOLDIR%perl524 
DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes 
PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35 
RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=19 RUBY_VER_LONG=1.9.2 
RUBY_MSVCRT_NAME=msvcrt TCL=%TOOLDIR%tcl TCL_VER=86 TCL_VER_LONG=8.6 
DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
  
*** ../vim-7.4.2301/src/bigvim64.bat2012-08-29 17:32:55.0 +0200
--- src/bigvim64.bat2016-09-01 19:54:43.163505365 +0200
***
*** 1,7 
! :: command to build big Vim 64 bit with OLE, Perl, Python, Ruby and Tcl
  :: First run: %VCDIR%\vcvarsall.bat x86_amd64
  :: Ruby and Tcl are excluded, doesn't seem to work.
  SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
  SET TOOLDIR=E:\
! %VCDIR%\bin\nmake -f Make_mvc.mak CPU=AMD64 GUI=yes OLE=yes PERL=E:\perl514 
DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes 
PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32  %1 
IME=yes CSCOPE=yes
  
--- 1,7 
! :: command to build big Vim 64 bit with OLE, Perl and Python.
  :: First run: %VCDIR%\vcvarsall.bat x86_amd64
  :: Ruby and Tcl are excluded, doesn't seem to work.
  SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
  SET TOOLDIR=E:\
! %VCDIR%\bin\nmake -f Make_mvc.mak CPU=AMD64 GUI=yes OLE=yes PERL=E:\perl524 
DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes 
PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35  %1 
IME=yes CSCOPE=yes
  
*** ../vim-7.4.2301/src/Make_mvc.mak2016-07-19 16:38:45.507086996 +0200
--- src/Make_mvc.mak2016-09-01 20:50:25.109513054 +0200
***
*** 934,940 
  !else # CPU
  RUBY_PLATFORM = x64-mswin64
  !endif # CPU
! !if $(MSVCRT_VER) >= 70
  RUBY_PLATFORM = $(RUBY_PLATFORM)_$(MSVCRT_VER)
  !endif # MSVCRT_VER
  !endif # RUBY_PLATFORM
--- 934,940 
  !else # CPU
  RUBY_PLATFORM = x64-mswin64
  !endif # CPU
! !if $(MSVCRT_VER) >= 70 && $(RUBY_VER) > 19
  RUBY_PLATFORM = $(RUBY_PLATFORM)_$(MSVCRT_VER)
  !endif # MSVCRT_VER
  !endif # RUBY_PLATFORM
*** ../vim-7.4.2301/src/version.c   2016-09-01 18:32:05.302122915 +0200
--- src/version.c   2016-09-01 20:48:37.136726475 +0200
***
*** 765,766 
--- 765,768 
  {   /* Add new patch number below this line */
+ /**/
+ 2302,
  /**/

-- 
I'm writing a book.  I've got the page numbers done.

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org///
 \\\help me help AIDS victims -- http://ICCF-Holland.org///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.