RE: How to make this patch for vim work in more situations?

2007-08-29 Thread Suresh Govindachar

  Jan Dubois wrote:
  >On Tue, 28 Aug 2007, Suresh Govindachar wrote:
  >> 
  >> Here's what I came up with for a patch to account for two new
  >> symbols (Perl_sv_2iv_flags, Perl_newXS_flags) introduced in
  >> ActiveState perl for build 822 and later (these symbols were
  >> preventing the building of vim with dynamic support for perl).
  >>
  >> After patching, I tested building vim with dynamic support for
  >> ActiveState perl build 822 and an older build 810 -- on
  >> Windows.
  >
  > Note that if you build vim against 822, then you cannot use the
  > binary with perl58.dll from 810.  If you build against 810, then
  > it will work with any build from 810 onwards.
  >
  >> What I have no clue about is what happens when someone tries to
  >> build vim with non-AS perl or with AS perl on non-Windows.
  >> Does non-AS perl also have these symbols?  Are these symbols
  >> present in perl for non-Windows also?
  >
  > These symbols will be used by Perl 5.8.9, and also by Perl
  > 5.10.0.  They are not specific to Perl on Windows.
  > 
  > Therefore the conditional
  > 
  > #if (ACTIVE_PERL >= 822)
  > 
  > should be written more general like this:
  >
  >   /* ActivePerl build 822 still identifies itself as 5.8.8 but 
  >* already contains many of the changes from the upcoming 
  >* Perl 5.8.9 release.
  >*/
  >   #if (ACTIVEPERL_VERSION >= 822)
  >   #  define PERL589_OR_LATER
  >   #endif
  >   #if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 9)
  >   #  define PERL589_OR_LATER
  >   #endif
  >   #if (PERL_REVISION == 5) && (PERL_VERSION >= 10))
  >   #  define PERL589_OR_LATER
  >   #endif
  >
  > And then later you just check for PERL589_OR_LATER
  >
  >#ifdef PERL589_OR_LATER 
  >...
  >#endif
  >
  >> --- Make_ming.mak  Tue Aug 28 21:36:36 2007
  >> + ifdef ACTIVE_PERL
  >> + CFLAGS += -DACTIVE_PERL=$(ACTIVE_PERL)
  >> + endif
  >
  > This part is not necessary.  The ACTIVEPERL_VERSION preprocessor
  > symbol should already be set to the build number if you are
  > compiling against the headers from ActivePerl.
  
  Thanks Jan.  Sorry for the multiple recent posts.  I did find
  BuildInfo.h included by patchlevel.h 

  --Suresh

___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


RE: How to make this patch for vim work in more situations?

2007-08-29 Thread Jan Dubois
On Tue, 28 Aug 2007, Suresh Govindachar wrote:
> 
> Hello,
> 
>   Here's what I came up with for a patch to account for two new
>   symbols (Perl_sv_2iv_flags, Perl_newXS_flags) introduced in
>   ActiveState perl for build 822 and later (these symbols were
>   preventing the building of vim with dynamic support for perl).
> 
>   After patching, I tested building vim with dynamic support for
>   ActiveState perl build 822 and an older build 810 -- on Windows.

Note that if you build vim against 822, then you cannot use the
binary with perl58.dll from 810.  If you build against 810, then
it will work with any build from 810 onwards.

>   What I have no clue about is what happens when someone tries to
>   build vim with non-AS perl or with AS perl on non-Windows.  Does
>   non-AS perl also have these symbols?  Are these symbols present
>   in perl for non-Windows also?

These symbols will be used by Perl 5.8.9, and also by Perl 5.10.0.
They are not specific to Perl on Windows.

Therefore the conditional

#if (ACTIVE_PERL >= 822)

should be written more general like this:

/* ActivePerl build 822 still identifies itself as 5.8.8 but already 
contains
 * many of the changes from the upcoming Perl 5.8.9 release.
 */
#if (ACTIVEPERL_VERSION >= 822)
#  define PERL589_OR_LATER
#endif
#if (PERL_REVISION == 5) && (PERL_VERSION == 8) && (PERL_SUBVERSION >= 9)
#  define PERL589_OR_LATER
#endif
#if (PERL_REVISION == 5) && (PERL_VERSION >= 10))
#  define PERL589_OR_LATER
#endif

And then later you just check for PERL589_OR_LATER

#ifdef PERL589_OR_LATER 
...
#endif


>   --- Make_ming.mak   Tue Aug 28 21:36:36 2007
>   + ifdef ACTIVE_PERL
>   + CFLAGS += -DACTIVE_PERL=$(ACTIVE_PERL)
>   + endif

This part is not necessary.  The ACTIVEPERL_VERSION preprocessor symbol
should already be set to the build number if you are compiling against
the headers from ActivePerl.

Cheers,
-Jan

___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs