Skip Menu |

This queue is for tickets about the re-engine-RE2 CPAN distribution.

Report information
The Basics
Id: 95144
Status: resolved
Priority: 0/
Queue: re-engine-RE2

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.11
Fixed in: (no value)



Subject: Compilation error with bleedperl
re-engine-RE2 0.11 does not compile anymore with bleedperl. An example report: http://www.cpantesters.org/cpan/report/2c5513f4-cd69-11e3-86a8-5ce66dfca90a Regards, Slaven
On Mon Apr 28 18:13:06 2014, SREZIC wrote: Show quoted text
> re-engine-RE2 0.11 does not compile anymore with bleedperl. An example > report: http://www.cpantesters.org/cpan/report/2c5513f4-cd69-11e3- > 86a8-5ce66dfca90a
The signature for a couple of the function pointers in the engine plugin structure have changed. See for more details: https://rt.perl.org/Ticket/Display.html?id=121868 I've attached a patch that should fix the problem. Tony
Subject: re-engine-RE2.patch
diff -ru re-engine-RE2-0.11-orig/re2_xs.cc re-engine-RE2-0.11/re2_xs.cc --- re-engine-RE2-0.11-orig/re2_xs.cc 2012-07-29 21:27:10.000000000 +1000 +++ re-engine-RE2-0.11/re2_xs.cc 2014-05-15 13:39:15.000000000 +1000 @@ -30,10 +30,17 @@ const #endif SV * const, U32); +#if PERL_VERSION >= 19 + char * RE2_intuit(pTHX_ REGEXP * const, SV *, const char *, + char *, char *, U32, re_scream_pos_data *); + I32 RE2_exec(pTHX_ REGEXP * const, char *, char *, + char *, SSize_t, SV *, void *, U32); +#else I32 RE2_exec(pTHX_ REGEXP * const, char *, char *, char *, I32, SV *, void *, U32); char * RE2_intuit(pTHX_ REGEXP * const, SV *, char *, char *, U32, re_scream_pos_data *); +#endif SV * RE2_checkstr(pTHX_ REGEXP * const); void RE2_free(pTHX_ REGEXP * const); SV * RE2_package(pTHX_ REGEXP * const); @@ -243,10 +250,17 @@ return rx_sv; } +#if PERL_VERSION >= 19 +I32 +RE2_exec(pTHX_ REGEXP * const rx, char *stringarg, char *strend, + char *strbeg, SSize_t minend, SV * sv, + void *data, U32 flags) +#else I32 RE2_exec(pTHX_ REGEXP * const rx, char *stringarg, char *strend, char *strbeg, I32 minend, SV * sv, void *data, U32 flags) +#endif { RE2 * ri = (RE2*) RegSV(rx)->pprivate; regexp * re = RegSV(rx); @@ -291,12 +305,21 @@ return 1; } +#if PERL_VERSION >= 19 +char * +RE2_intuit(pTHX_ REGEXP * const rx, SV * sv, const char *strbeg, char *strpos, + char *strend, U32 flags, re_scream_pos_data *data) +#else char * RE2_intuit(pTHX_ REGEXP * const rx, SV * sv, char *strpos, char *strend, U32 flags, re_scream_pos_data *data) +#endif { PERL_UNUSED_ARG(rx); PERL_UNUSED_ARG(sv); +#if PERL_VERSION >= 19 + PERL_UNUSED_ARG(strbeg); +#endif PERL_UNUSED_ARG(strpos); PERL_UNUSED_ARG(strend); PERL_UNUSED_ARG(flags);
On Mon Apr 28 18:13:06 2014, SREZIC wrote: Show quoted text
> re-engine-RE2 0.11 does not compile anymore with bleedperl. An example > report: http://www.cpantesters.org/cpan/report/2c5513f4-cd69-11e3- > 86a8-5ce66dfca90a > > Regards, > Slaven
Thanks, applied Tony's patch and released.