Hello community, here is the log from the commit of package perl-Spooky-Patterns-XS for openSUSE:Factory checked in at 2017-12-05 01:30:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Spooky-Patterns-XS (Old) and /work/SRC/openSUSE:Factory/.perl-Spooky-Patterns-XS.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Spooky-Patterns-XS" Tue Dec 5 01:30:34 2017 rev:2 rq:548102 version:1.51 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Spooky-Patterns-XS/perl-Spooky-Patterns-XS.changes 2017-07-21 22:44:52.439029121 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Spooky-Patterns-XS.new/perl-Spooky-Patterns-XS.changes 2017-12-05 01:30:35.572525240 +0100 @@ -1,0 +2,5 @@ +Mon Dec 4 14:18:29 UTC 2017 - co...@suse.com + +- 1.51: Ignore skips at the end of a pattern + +------------------------------------------------------------------- Old: ---- Spooky-Patterns-XS-1.50.tar.gz New: ---- Spooky-Patterns-XS-1.51.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Spooky-Patterns-XS.spec ++++++ --- /var/tmp/diff_new_pack.DPYRaL/_old 2017-12-05 01:30:36.512491092 +0100 +++ /var/tmp/diff_new_pack.DPYRaL/_new 2017-12-05 01:30:36.536490219 +0100 @@ -17,7 +17,7 @@ Name: perl-Spooky-Patterns-XS -Version: 1.50 +Version: 1.51 Release: 0 %define cpan_name Spooky-Patterns-XS Summary: Spooky::Patterns::XS Perl module ++++++ Spooky-Patterns-XS-1.50.tar.gz -> Spooky-Patterns-XS-1.51.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/Changes new/Spooky-Patterns-XS-1.51/Changes --- old/Spooky-Patterns-XS-1.50/Changes 2017-05-08 10:33:36.462982000 +0200 +++ new/Spooky-Patterns-XS-1.51/Changes 2017-12-04 15:16:38.987570161 +0100 @@ -1,5 +1,8 @@ Revision history for Perl extension Spooky::Patterns::XS +1.51 2017-12-04 + - Ignore skips at the end of a pattern + 1.50 2017-05-08 - Support dump and load and rework data structure to make it fast diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/META.json new/Spooky-Patterns-XS-1.51/META.json --- old/Spooky-Patterns-XS-1.50/META.json 2017-05-08 10:35:48.894502000 +0200 +++ new/Spooky-Patterns-XS-1.51/META.json 2017-12-04 15:17:54.211367984 +0100 @@ -4,7 +4,7 @@ "Stephan Kulow <co...@suse.de>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.1001, CPAN::Meta::Converter version 2.150005", + "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", "license" : [ "unknown" ], @@ -45,6 +45,6 @@ "url" : "https://github.com/coolo/spooky-pattern-xs" } }, - "version" : "1.50", - "x_serialization_backend" : "JSON::PP version 2.27300" + "version" : "1.51", + "x_serialization_backend" : "JSON::PP version 2.27400_02" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/META.yml new/Spooky-Patterns-XS-1.51/META.yml --- old/Spooky-Patterns-XS-1.50/META.yml 2017-05-08 10:35:48.817508000 +0200 +++ new/Spooky-Patterns-XS-1.51/META.yml 2017-12-04 15:17:54.159368124 +0100 @@ -7,7 +7,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.1001, CPAN::Meta::Converter version 2.150005' +generated_by: 'ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010' license: unknown meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -22,5 +22,5 @@ resources: license: https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt repository: https://github.com/coolo/spooky-pattern-xs -version: '1.50' +version: '1.51' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/XS.pm new/Spooky-Patterns-XS-1.51/XS.pm --- old/Spooky-Patterns-XS-1.50/XS.pm 2017-05-08 10:33:36.479003000 +0200 +++ new/Spooky-Patterns-XS-1.51/XS.pm 2017-12-04 15:16:57.179521271 +0100 @@ -23,7 +23,7 @@ our @ISA = qw(Exporter); our @EXPORT_OK = qw(); -our $VERSION = '1.50'; +our $VERSION = '1.51'; require XSLoader; XSLoader::load( 'Spooky::Patterns::XS', $VERSION ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/patterns_impl.cc new/Spooky-Patterns-XS-1.51/patterns_impl.cc --- old/Spooky-Patterns-XS-1.50/patterns_impl.cc 2017-05-08 10:33:36.174973000 +0200 +++ new/Spooky-Patterns-XS-1.51/patterns_impl.cc 2017-12-04 15:16:07.587654549 +0100 @@ -106,7 +106,7 @@ void destroy_matcher(Matcher* m) { - // do nothing, we reuse the self + // do nothing, we reuse the self } static void add_token(Matcher* m, TokenList& result, const char* start, size_t len, int line) @@ -176,14 +176,21 @@ free(copy); av_extend(ret, t.size()); int index = 0; + uint64_t last_hash = MAX_SKIP + 1; for (TokenList::const_iterator it = t.begin(); it != t.end(); ++it) { // do not start with an expansion variable if (!index && it->hash <= MAX_SKIP) continue; + last_hash = it->hash; av_store(ret, index, newSVuv(it->hash)); ++index; } + // do not end with an expansion variable either + if (last_hash <= MAX_SKIP) { + av_pop(ret); + } + return ret; } @@ -675,7 +682,12 @@ AV* pattern_normalize(const char* p) { - Matcher m; + AV* ret = newAV(); + Matcher* m = Matcher::self(); + if (!m) { + fprintf(stderr, "Need a Matcher - call init_matcher\n"); + return ret; + } TokenList t; int line = 1; while (true) { @@ -685,14 +697,13 @@ copy = strndup(p, nl - p); else copy = strdup(p); - tokenize(&m, t, copy, line++); + tokenize(m, t, copy, line++); free(copy); if (!nl) break; p = nl + 1; } - AV* ret = newAV(); for (TokenList::const_iterator it = t.begin(); it != t.end(); ++it) { AV* row = newAV(); av_push(row, newSVuv(it->linenumber)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/t/03match.t new/Spooky-Patterns-XS-1.51/t/03match.t --- old/Spooky-Patterns-XS-1.50/t/03match.t 2017-05-04 16:26:35.292100000 +0200 +++ new/Spooky-Patterns-XS-1.51/t/03match.t 2017-12-04 15:10:20.852586153 +0100 @@ -5,11 +5,21 @@ use Spooky::Patterns::XS; my $m = Spooky::Patterns::XS::init_matcher(); -$m->add_pattern( 1, Spooky::Patterns::XS::parse_tokens("Hello World") ); +$m->add_pattern( 1, Spooky::Patterns::XS::parse_tokens('Hello World') ); cmp_deeply( $m->find_matches('t/03match.txt'), [ [ 1, 1, 2 ], [ 1, 4, 4 ] ], "Find hello twice" ); +$m = Spooky::Patterns::XS::init_matcher(); +$m->add_pattern( 1, Spooky::Patterns::XS::parse_tokens('this is a $SKIP20') ); +use Data::Dumper; +print Dumper($m->find_matches('t/03match.txt')); +cmp_deeply( + $m->find_matches('t/03match.txt'), + [ [ 1, 4, 4 ] ], + "skip at end does not confuse it" +); + done_testing(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/t/07close.t new/Spooky-Patterns-XS-1.51/t/07close.t --- old/Spooky-Patterns-XS-1.50/t/07close.t 2017-05-04 16:26:35.304099000 +0200 +++ new/Spooky-Patterns-XS-1.51/t/07close.t 2017-12-04 14:39:44.885647226 +0100 @@ -10,6 +10,7 @@ my @ps = glob('/tmp/pattern-*'); +Spooky::Patterns::XS::init_matcher(); my $p1 = Spooky::Patterns::XS::normalize( read_file('t/07close.p1') ); my $p2 = Spooky::Patterns::XS::normalize( read_file('t/07close.p2') ); is( Spooky::Patterns::XS::distance( $p1, $p2 ), 4, "Distance is 2" );