Skip Menu |

This queue is for tickets about the Data-Dump-Streamer CPAN distribution.

Report information
The Basics
Id: 31356
Status: resolved
Worked: 3 hours (180 min)
Priority: 0/
Queue: Data-Dump-Streamer

People
Owner: yves [...] cpan.org
Requestors: ANDK [...] cpan.org
mschwern [...] cpan.org
RURBAN [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in:
  • 1.0
  • 1.01
  • 1.02
  • 1.03
  • 1.04
  • 1.05
  • 1.06
  • 1.07
  • 1.08
  • 1.09
  • 1.10
  • 1.11
  • 1.12
  • 1.14
  • 2.00
  • 2.01
  • 2.02
  • 2.03-30
  • 2.04-34
  • 2.05-36
Fixed in: (no value)



Subject: Compilation fails on linux with bleadperl
The following happened with bleadperl @30648 on linux just now: CPAN.pm: Going to build Y/YV/YVES/Data-Dump-Streamer-2.03-30.tar.gz make[3]: Entering directory `/home/k/.cpan/build/Data-Dump-Streamer-2.03-30-38c6nF' cp lib/Data/Dump/Streamer/_/Printers.pm blib/lib/Data/Dump/Streamer/_/Printers.pm cp lib/Data/Dump/Streamer.pm blib/lib/Data/Dump/Streamer.pm /home/src/perl/repoperls/installed-perls/perl/pC9pWKO/perl-5.8.0@30648/bin/perl /home/src/perl/repoperls/installed-perls/perl/pC9pWKO/perl-5.8.0@30648/lib/5.9.5/ExtUtils/xsubpp -typemap /home/src/perl/repoperls/installed-perls/perl/pC9pWKO/perl-5.8.0@30648/lib/5.9.5/ExtUtils/typemap -typemap typemap Streamer.xs > Streamer.xsc && mv Streamer.xsc Streamer.c cc -c -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -DVERSION=\"2.03-30\" -DXS_VERSION=\"2.01\" -fPIC "-I/home/src/perl/repoperls/installed-perls/perl/pC9pWKO/perl-5.8.0@30648/lib/5.9.5/i686-linux-64int/CORE" Streamer.c Streamer.xs: In function 'XS_Data__Dump__Streamer_blessed': Streamer.xs:353: warning: assignment discards qualifiers from pointer target type Streamer.xs: In function 'XS_Data__Dump__Streamer_reftype': Streamer.xs:561: warning: assignment discards qualifiers from pointer target type Streamer.xs: In function 'XS_Data__Dump__Streamer_regex': Streamer.xs:823: error: 'regexp' has no member named 'reganch' Streamer.xs:833: error: 'regexp' has no member named 'reganch' Streamer.xs:833: error: 'ROPT_UTF8' undeclared (first use in this function) Streamer.xs:833: error: (Each undeclared identifier is reported only once Streamer.xs:833: error: for each function it appears in.) Streamer.xs:854: error: 'regexp' has no member named 'reganch' Streamer.xs:885: error: 'regexp' has no member named 'reganch' Streamer.xs:916: error: 'regexp' has no member named 'reganch' make[3]: *** [Streamer.o] Error 1 make[3]: Leaving directory `/home/k/.cpan/build/Data-Dump-Streamer-2.03-30-38c6nF' YVES/Data-Dump-Streamer-2.03-30.tar.gz /usr/bin/make -- NOT OK
Since I have a fix for bug #28270 I can run binary searches with DDS and can determine the patch number since when it doesn't compile anymore. This would normally be a BBC article but when both victim and commiter are one and the same person, it'd probably good enough to post it into this ticket. Just please give me a tiny loittle ffedback so that I know you have received it. Thanks! Errrr, I'd nearly have forgotten the result: 29360 is the first bleadperl that does not compile ATM.
Subject: Adapt to new 5.9 struct regexp
Attached patch adapts Streamer to the new struct regexp. Just the madness tests fail. Failed Test Stat Wstat Total Fail List of Failed ------------------------------------------------------------------------------- t/impure_madness.t 2 512 8 2 5-6 t/madness.t 2 512 6 2 3-4 t/madness_w.t 2 512 6 2 3-4 -- Reini Urban
Subject: Data-Dump-Streamer-2.05-5.9.patch
2007-09-01 Reini Urban <rurban@x-ray.at> Attached patch adapts Streamer to the new 5.9 struct regexp. Just the madness tests fail. Failed Test Stat Wstat Total Fail List of Failed ------------------------------------------------------------------------------- t/impure_madness.t 2 512 8 2 5-6 t/madness.t 2 512 6 2 3-4 t/madness_w.t 2 512 6 2 3-4 diff -ub ./Streamer.xs.orig --- ./Streamer.xs.orig 2007-08-22 21:56:52.000000000 +0000 +++ ./Streamer.xs 2007-09-01 10:00:25.875000000 +0000 @@ -51,6 +51,7 @@ #elif PERL_SUBVERSION>=1 # define BFD_Svs_SMG_OR_RMG SVs_SMG # define MY_PLACEHOLDER PL_sv_placeholder +# define PERL_ENABLE_TRIE_OPTIMISATION 1 #else # define BFD_Svs_SMG_OR_RMG SVs_RMG # define MY_PLACEHOLDER PL_sv_undef @@ -350,7 +351,7 @@ if(!sv_isobject(sv)) { XSRETURN_UNDEF; } - RETVAL = sv_reftype(SvRV(sv),TRUE); + RETVAL = (char *)sv_reftype(SvRV(sv),TRUE); } OUTPUT: RETVAL @@ -558,7 +559,7 @@ if(!SvROK(sv)) { XSRETURN_NO; } else { - RETVAL = sv_reftype(SvRV(sv),FALSE); + RETVAL = (char *)sv_reftype(SvRV(sv),FALSE); } } OUTPUT: @@ -820,6 +821,7 @@ char *fptr = "msix"; char ch; +#ifndef PERL_ENABLE_TRIE_OPTIMISATION U16 reganch = (U16)((re->reganch & PMf_COMPILETIME) >> 12); while((ch = *fptr++)) { @@ -828,9 +830,13 @@ } reganch >>= 1; } - +#endif pattern = sv_2mortal(newSVpvn(re->precomp,re->prelen)); +#ifndef PERL_ENABLE_TRIE_OPTIMISATION if (re->reganch & ROPT_UTF8) SvUTF8_on(pattern); +#else + if (re->extflags & RXf_UTF8) SvUTF8_on(pattern); +#endif /* return the pattern and the modifiers */ XPUSHs(pattern); @@ -851,6 +857,7 @@ char ch; int right = 4; char need_newline = 0; +#ifndef PERL_ENABLE_TRIE_OPTIMISATION U16 reganch = (U16)((re->reganch & PMf_COMPILETIME) >> 12); while((ch = *fptr++)) { @@ -866,6 +873,7 @@ reflags[left] = '-'; left = 5; } +#endif mg->mg_len = re->prelen + 4 + left; /* * If /x was used, we have to worry about a regex @@ -882,7 +890,11 @@ * don't find '#' or '\n'), we don't need to add * anything. -jfriedl */ +#ifndef PERL_ENABLE_TRIE_OPTIMISATION if (PMf_EXTENDED & re->reganch) +#else + if (re->extflags & RXf_PMf_EXTENDED) +#endif { char *endptr = re->precomp + re->prelen; while (endptr >= re->precomp) @@ -913,7 +925,11 @@ } /* return the pattern in (?msix:..) format */ pattern = sv_2mortal(newSVpvn(mg->mg_ptr,mg->mg_len)); +#ifndef PERL_ENABLE_TRIE_OPTIMISATION if (re->reganch & ROPT_UTF8) SvUTF8_on(pattern); +#else + if (re->extflags & RXf_UTF8) SvUTF8_on(pattern); +#endif XPUSHs(pattern); XSRETURN(1); }
Subject: Fails with 5.10, missing regexp->reganch
Using 5.10 RC2 I get the following make failure. The reganch attribute appears to have been removed from the regex struct. Data-Dump-Streamer-2.05-36$ make cp lib/Data/Dump/Streamer/_/Printers.pm blib/lib/Data/Dump/Streamer/_/Printers.pm cp lib/Data/Dump/Streamer.pm blib/lib/Data/Dump/Streamer.pm /usr/local/bin/bleadperl /usr/local/perl/blead/lib/5.10.0/ExtUtils/xsubpp -typemap /usr/local/perl/blead/lib/5.10.0/ExtUtils/typemap -typemap typemap Streamer.xs > Streamer.xsc && mv Streamer.xsc Streamer.c cc -c -I/sw/include -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include -O3 -DVERSION=\"2.05-36\" -DXS_VERSION=\"2.01\" "-I/usr/local/perl/blead/lib/5.10.0/darwin-thread-multi-2level/CORE" Streamer.c Streamer.xs: In function ‘XS_Data__Dump__Streamer_blessed’: Streamer.xs:353: warning: assignment discards qualifiers from pointer target type Streamer.xs: In function ‘XS_Data__Dump__Streamer_reftype’: Streamer.xs:561: warning: assignment discards qualifiers from pointer target type Streamer.xs: In function ‘XS_Data__Dump__Streamer_regex’: Streamer.xs:823: error: ‘struct regexp’ has no member named ‘reganch’ Streamer.xs:833: error: ‘struct regexp’ has no member named ‘reganch’ Streamer.xs:833: error: ‘ROPT_UTF8’ undeclared (first use in this function) Streamer.xs:833: error: (Each undeclared identifier is reported only once Streamer.xs:833: error: for each function it appears in.) Streamer.xs:854: error: ‘struct regexp’ has no member named ‘reganch’ Streamer.xs:885: error: ‘struct regexp’ has no member named ‘reganch’ Streamer.xs:887: warning: initialization discards qualifiers from pointer target type Streamer.xs:916: error: ‘struct regexp’ has no member named ‘reganch’ make: *** [Streamer.o] Error 1
Thanks, this is fixed in version 2.06 Cheers, yves