2015年6月22日月曜日 1時05分45秒 UTC+9 [email protected]:
> On Saturday, June 20, 2015 at 5:24:54 PM UTC+3, Ken Takata wrote:
> > Hi Bram,
> >
> > 2015/6/20 Sat 22:30:31 UTC+9 Bram Moolenaar wrote:
> > > Ken Takata wrote:
> > >
> > > > 2015/6/19 Fri 21:15:18 UTC+9 Ken Takata wrote:
> > > > > Can you try the attached patches?
> > > > >
> > > > > I'm not sure why the second patch is needed, but without it, Vim
> > > > > silently
> > > > > dies when I execute :perl command.
> > > >
> > > > I have updated the patch. if_perl522-workaround.patch is not needed now.
> > > >
> > > > ynkdir found that some options were missing from the CFLAGS.
> > > > We can get the compiler options using `perl -MExtUtils::Embed -e
> > > > ccopts`.
> > > > See: http://perldoc.perl.org/perlembed.html
> > >
> > > Please let me know if this patch is ready to be included. Does it also
> > > work with older Perl versions?
> >
> > I confirmed that the patch works with ActivePerl 5.16, 5.20 and
> > Strawberry Perl 5.22.
> >
> > Regards,
> > Ken Takata
>
> Hi.
>
> I can noy apply path to the latest vim sources.
>
> d:\tmp\vim-src>patch -p1 < if_perl522.patch
> patching file src/Make_cyg_ming.mak
> patching file src/Make_mvc.mak
> Hunk #1 succeeded at 874 (offset 63 lines).
> patching file src/if_perl.xs
> Hunk #1 FAILED at 198.
> 1 out of 7 hunks FAILED -- saving rejects to file src/if_perl.xs.rej
Sorry, I had made the patch for a wrong version.
Here is an updated patch. Please try this.
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 [email protected].
For more options, visit https://groups.google.com/d/optout.
# HG changeset patch
# Parent e1227b101125fd6c3160200b6b03f625157f72f7
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
@@ -397,7 +397,7 @@ endif
endif
ifdef PERL
-CFLAGS += -I$(PERLLIBS) -DFEAT_PERL
+CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
ifeq (yes, $(DYNAMIC_PERL))
CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\"
EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER)
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -874,7 +874,7 @@ PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_
!endif
!endif
-CFLAGS = $(CFLAGS) -DFEAT_PERL
+CFLAGS = $(CFLAGS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
# Do we want to load Perl dynamically?
!if "$(DYNAMIC_PERL)" == "yes"
diff --git a/src/if_perl.xs b/src/if_perl.xs
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -197,10 +197,12 @@ typedef int perl_key;
# define Perl_stack_grow dll_Perl_stack_grow
# define Perl_set_context dll_Perl_set_context
# if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
-# define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
-# define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck
+# define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
+# if (PERL_REVISION == 5) && (PERL_VERSION < 22)
+# define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck
+# endif
# else
-# define Perl_sv_2bool dll_Perl_sv_2bool
+# define Perl_sv_2bool dll_Perl_sv_2bool
# endif
# define Perl_sv_2iv dll_Perl_sv_2iv
# define Perl_sv_2mortal dll_Perl_sv_2mortal
@@ -268,6 +270,10 @@ typedef int perl_key;
# define Perl_call_list dll_Perl_call_list
# define Perl_Iscopestack_ix_ptr dll_Perl_Iscopestack_ix_ptr
# define Perl_Iunitcheckav_ptr dll_Perl_Iunitcheckav_ptr
+# if (PERL_REVISION == 5) && (PERL_VERSION >= 22)
+# define Perl_xs_handshake dll_Perl_xs_handshake
+# define Perl_xs_boot_epilog dll_Perl_xs_boot_epilog
+# endif
# if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
# ifdef USE_ITHREADS
# define PL_thr_key *dll_PL_thr_key
@@ -299,7 +305,11 @@ static void (*Perl_croak_nocontext)(cons
static I32 (*Perl_dowantarray)(pTHX);
static void (*Perl_free_tmps)(pTHX);
static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32);
+#if (PERL_REVISION == 5) && (PERL_VERSION >= 22)
+static I32* (*Perl_markstack_grow)(pTHX);
+#else
static void (*Perl_markstack_grow)(pTHX);
+#endif
static MAGIC* (*Perl_mg_find)(pTHX_ SV*, int);
static CV* (*Perl_newXS)(pTHX_ char*, XSUBADDR_t, char*);
static SV* (*Perl_newSV)(pTHX_ STRLEN);
@@ -321,7 +331,9 @@ static SV** (*Perl_stack_grow)(pTHX_ SV*
static SV** (*Perl_set_context)(void*);
#if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
static bool (*Perl_sv_2bool_flags)(pTHX_ SV*, I32);
+# if (PERL_REVISION == 5) && (PERL_VERSION < 22)
static void (*Perl_xs_apiversion_bootcheck)(pTHX_ SV *module, const char *api_p, STRLEN api_len);
+# endif
#else
static bool (*Perl_sv_2bool)(pTHX_ SV*);
#endif
@@ -394,6 +406,10 @@ static I32* (*Perl_Iscopestack_ix_ptr)(r
static AV** (*Perl_Iunitcheckav_ptr)(register PerlInterpreter*);
# endif
#endif
+#if (PERL_REVISION == 5) && (PERL_VERSION >= 22)
+static I32 (*Perl_xs_handshake)(const U32, void *, const char *, ...);
+static void (*Perl_xs_boot_epilog)(pTHX_ const U32);
+#endif
#if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
# ifdef USE_ITHREADS
@@ -453,7 +469,9 @@ static struct {
{"Perl_set_context", (PERL_PROC*)&Perl_set_context},
#if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
{"Perl_sv_2bool_flags", (PERL_PROC*)&Perl_sv_2bool_flags},
+# if (PERL_REVISION == 5) && (PERL_VERSION < 22)
{"Perl_xs_apiversion_bootcheck",(PERL_PROC*)&Perl_xs_apiversion_bootcheck},
+# endif
#else
{"Perl_sv_2bool", (PERL_PROC*)&Perl_sv_2bool},
#endif
@@ -521,6 +539,10 @@ static struct {
{"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr},
# endif
#endif
+#if (PERL_REVISION == 5) && (PERL_VERSION >= 22)
+ {"Perl_xs_handshake", (PERL_PROC*)&Perl_xs_handshake},
+ {"Perl_xs_boot_epilog", (PERL_PROC*)&Perl_xs_boot_epilog},
+#endif
#if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
# ifdef USE_ITHREADS
{"PL_thr_key", (PERL_PROC*)&dll_PL_thr_key},