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 - [email protected]
+
+- 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 <[email protected]>"
],
"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" );