Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-XS-Parse-Keyword for 
openSUSE:Factory checked in at 2023-08-10 15:33:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-XS-Parse-Keyword (Old)
 and      /work/SRC/openSUSE:Factory/.perl-XS-Parse-Keyword.new.11712 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-XS-Parse-Keyword"

Thu Aug 10 15:33:11 2023 rev:16 rq:1103215 version:0.370.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-XS-Parse-Keyword/perl-XS-Parse-Keyword.changes  
    2023-07-30 20:57:32.115135371 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-XS-Parse-Keyword.new.11712/perl-XS-Parse-Keyword.changes
   2023-08-10 15:33:26.491992040 +0200
@@ -1,0 +2,10 @@
+Wed Aug  9 03:08:06 UTC 2023 - Tina Müller <timueller+p...@suse.de>
+
+- updated to 0.37
+   see /usr/share/doc/packages/perl-XS-Parse-Keyword/Changes
+
+  0.37    2023-08-08
+          [CHANGES]
+           * Added `XPK_WARNING()` and several conditional variants
+
+-------------------------------------------------------------------

Old:
----
  XS-Parse-Keyword-0.36.tar.gz

New:
----
  XS-Parse-Keyword-0.37.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-XS-Parse-Keyword.spec ++++++
--- /var/tmp/diff_new_pack.KzjrXt/_old  2023-08-10 15:33:27.419997827 +0200
+++ /var/tmp/diff_new_pack.KzjrXt/_new  2023-08-10 15:33:27.423997853 +0200
@@ -18,10 +18,9 @@
 
 %define cpan_name XS-Parse-Keyword
 Name:           perl-XS-Parse-Keyword
-Version:        0.360.0
+Version:        0.370.0
 Release:        0
-%define cpan_version 0.36
-Provides:       perl(XS::Parse::Keyword) = 0.360.0
+%define cpan_version 0.37
 License:        Artistic-1.0 OR GPL-1.0-or-later
 Summary:        XS functions to assist in parsing keyword syntax
 URL:            https://metacpan.org/release/%{cpan_name}
@@ -32,11 +31,12 @@
 BuildRequires:  perl(ExtUtils::CBuilder)
 BuildRequires:  perl(ExtUtils::CChecker) >= 0.11
 BuildRequires:  perl(ExtUtils::ParseXS) >= 3.16
-BuildRequires:  perl(Module::Build) >= 0.400400
+BuildRequires:  perl(Module::Build) >= 0.4004
 BuildRequires:  perl(Test2::V0)
-Provides:       perl(XS::Parse::Infix) = 0.360.0
-Provides:       perl(XS::Parse::Infix::Builder) = 0.360.0
-Provides:       perl(XS::Parse::Keyword::Builder) = 0.360.0
+Provides:       perl(XS::Parse::Infix) = 0.370.0
+Provides:       perl(XS::Parse::Infix::Builder) = 0.370.0
+Provides:       perl(XS::Parse::Keyword) = 0.370.0
+Provides:       perl(XS::Parse::Keyword::Builder) = 0.370.0
 %define         __perllib_provides /bin/true
 %{perl_requires}
 

++++++ XS-Parse-Keyword-0.36.tar.gz -> XS-Parse-Keyword-0.37.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/Changes 
new/XS-Parse-Keyword-0.37/Changes
--- old/XS-Parse-Keyword-0.36/Changes   2023-07-20 17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/Changes   2023-08-08 20:21:36.000000000 +0200
@@ -1,5 +1,9 @@
 Revision history for XS-Parse-Keyword
 
+0.37    2023-08-08
+        [CHANGES]
+         * Added `XPK_WARNING()` and several conditional variants
+
 0.36    2023-07-20
         [BUGFIXES]
          * Remember to also call `op_scope()` after `block_end()` if the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/MANIFEST 
new/XS-Parse-Keyword-0.37/MANIFEST
--- old/XS-Parse-Keyword-0.36/MANIFEST  2023-07-20 17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/MANIFEST  2023-08-08 20:21:36.000000000 +0200
@@ -41,6 +41,7 @@
 t/36pieces-attrs.t
 t/37pieces-vstring.t
 t/38pieces-infix.t
+t/39pieces-warning.t
 t/40build.t
 t/41structures.t
 t/42containers.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/META.json 
new/XS-Parse-Keyword-0.37/META.json
--- old/XS-Parse-Keyword-0.36/META.json 2023-07-20 17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/META.json 2023-08-08 20:21:36.000000000 +0200
@@ -4,7 +4,7 @@
       "Paul Evans <leon...@leonerd.org.uk>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "Module::Build version 0.4231",
+   "generated_by" : "Module::Build version 0.4234",
    "license" : [
       "perl_5"
    ],
@@ -40,19 +40,19 @@
    "provides" : {
       "XS::Parse::Infix" : {
          "file" : "lib/XS/Parse/Infix.pm",
-         "version" : "0.36"
+         "version" : "0.37"
       },
       "XS::Parse::Infix::Builder" : {
          "file" : "lib/XS/Parse/Infix/Builder.pm",
-         "version" : "0.36"
+         "version" : "0.37"
       },
       "XS::Parse::Keyword" : {
          "file" : "lib/XS/Parse/Keyword.pm",
-         "version" : "0.36"
+         "version" : "0.37"
       },
       "XS::Parse::Keyword::Builder" : {
          "file" : "lib/XS/Parse/Keyword/Builder.pm",
-         "version" : "0.36"
+         "version" : "0.37"
       }
    },
    "release_status" : "stable",
@@ -61,6 +61,6 @@
          "http://dev.perl.org/licenses/";
       ]
    },
-   "version" : "0.36",
+   "version" : "0.37",
    "x_serialization_backend" : "JSON::PP version 4.07"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/META.yml 
new/XS-Parse-Keyword-0.37/META.yml
--- old/XS-Parse-Keyword-0.36/META.yml  2023-07-20 17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/META.yml  2023-08-08 20:21:36.000000000 +0200
@@ -10,7 +10,7 @@
   ExtUtils::CChecker: '0.11'
   Module::Build: '0.4004'
 dynamic_config: 1
-generated_by: 'Module::Build version 0.4231, CPAN::Meta::Converter version 
2.150010'
+generated_by: 'Module::Build version 0.4234, CPAN::Meta::Converter version 
2.150010'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -19,19 +19,19 @@
 provides:
   XS::Parse::Infix:
     file: lib/XS/Parse/Infix.pm
-    version: '0.36'
+    version: '0.37'
   XS::Parse::Infix::Builder:
     file: lib/XS/Parse/Infix/Builder.pm
-    version: '0.36'
+    version: '0.37'
   XS::Parse::Keyword:
     file: lib/XS/Parse/Keyword.pm
-    version: '0.36'
+    version: '0.37'
   XS::Parse::Keyword::Builder:
     file: lib/XS/Parse/Keyword/Builder.pm
-    version: '0.36'
+    version: '0.37'
 requires:
   perl: '5.014'
 resources:
   license: http://dev.perl.org/licenses/
-version: '0.36'
+version: '0.37'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/README 
new/XS-Parse-Keyword-0.37/README
--- old/XS-Parse-Keyword-0.36/README    2023-07-20 17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/README    2023-08-08 20:21:36.000000000 +0200
@@ -550,6 +550,31 @@
     consumed and no output value is generated. This is often useful after
     XPK_LEXVAR_MY.
 
+ XPK_WARNING
+
+    atomic, emits nothing.
+
+       XPK_WARNING("message here")
+
+    Emits a warning by calling the core perl warn() function on the given
+    string literal. This is equivalent to simply calling warn() from the
+    build function, except that it is emitted immediately at parse time, so
+    line numbering will be more accurate. Also, by placing it as part of an
+    optional or choice sequence, the warning will only be emitted
+    conditionally if that part of the grammar structure is encountered.
+
+ XPK_WARNING_...
+
+    Several variants of XPK_WARNING exist that are conditional on
+    particular warning categories being enabled. These are ones that are
+    likely to be useful at parse time:
+
+       XPK_WARNING_AMBIGUOUS
+       XPK_WARNING_DEPRECATED
+       XPK_WARNING_EXPERIMENTAL
+       XPK_WARNING_PRECEDENCE
+       XPK_WARNING_SYNTAX
+
  XPK_SEQUENCE
 
     structural, might support probe, emits nothing.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/XSParseKeyword.h 
new/XS-Parse-Keyword-0.37/XSParseKeyword.h
--- old/XS-Parse-Keyword-0.36/XSParseKeyword.h  2023-07-20 17:56:49.000000000 
+0200
+++ new/XS-Parse-Keyword-0.37/XSParseKeyword.h  2023-08-08 20:21:36.000000000 
+0200
@@ -30,7 +30,8 @@
   XS_PARSE_KEYWORD_LITERALCHAR = 1,   /* nothing */
   XS_PARSE_KEYWORD_LITERALSTR,        /* nothing */
   XS_PARSE_KEYWORD_AUTOSEMI,          /* nothing */
-  XS_PARSE_KEYWORD_FAILURE = 0x0f,    /* nothing */
+  XS_PARSE_KEYWORD_WARNING = 0x0e,    /* nothing */
+  XS_PARSE_KEYWORD_FAILURE,           /* nothing */
 
   XS_PARSE_KEYWORD_BLOCK = 0x10,      /* op */
   XS_PARSE_KEYWORD_ANONSUB,           /* cv */
@@ -184,6 +185,14 @@
   {.type = XS_PARSE_KEYWORD_SEPARATEDLIST, .u.pieces = (const struct 
XSParseKeywordPieceType []){ \
       {.type = XS_PARSE_KEYWORD_LITERALCHAR, .u.c = ','}, __VA_ARGS__, {0}}}
 
+#define XPK_WARNING_bit(bit,s)   {.type = (XS_PARSE_KEYWORD_WARNING|(bit << 
24)), .u.str = (const char *)s}
+#define XPK_WARNING(s)               XPK_WARNING_bit(0,s)
+#define XPK_WARNING_AMBIGUOUS(s)     XPK_WARNING_bit(WARN_AMBIGUOUS,   s)
+#define XPK_WARNING_DEPRECATED(s)    XPK_WARNING_bit(WARN_DEPRECATED,  s)
+#define XPK_WARNING_EXPERIMENTAL(s)  XPK_WARNING_bit(WARN_EXPERIMENTAL,s)
+#define XPK_WARNING_PRECEDENCE(s)    XPK_WARNING_bit(WARN_PRECEDENCE,  s)
+#define XPK_WARNING_SYNTAX(s)        XPK_WARNING_bit(WARN_SYNTAX,      s)
+
 #define XPK_FAILURE(s) {.type = XS_PARSE_KEYWORD_FAILURE, .u.str = (const char 
*)s}
 
 #define XPK_PARENS_pieces(p) {.type = XS_PARSE_KEYWORD_PARENS, .u.pieces = p}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/lib/XS/Parse/Infix/Builder.pm 
new/XS-Parse-Keyword-0.37/lib/XS/Parse/Infix/Builder.pm
--- old/XS-Parse-Keyword-0.36/lib/XS/Parse/Infix/Builder.pm     2023-07-20 
17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/lib/XS/Parse/Infix/Builder.pm     2023-08-08 
20:21:36.000000000 +0200
@@ -3,7 +3,7 @@
 #
 #  (C) Paul Evans, 2021 -- leon...@leonerd.org.uk
 
-package XS::Parse::Infix::Builder 0.36;
+package XS::Parse::Infix::Builder 0.37;
 
 use v5.14;
 use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/XS-Parse-Keyword-0.36/lib/XS/Parse/Infix/Builder_data.pm.PL 
new/XS-Parse-Keyword-0.37/lib/XS/Parse/Infix/Builder_data.pm.PL
--- old/XS-Parse-Keyword-0.36/lib/XS/Parse/Infix/Builder_data.pm.PL     
2023-07-20 17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/lib/XS/Parse/Infix/Builder_data.pm.PL     
2023-08-08 20:21:36.000000000 +0200
@@ -28,7 +28,7 @@
    <$in_h> } );
 
 __DATA__
-package XS::Parse::Infix::Builder_data 0.36;
+package XS::Parse::Infix::Builder_data 0.37;
 
 use v5.14;
 use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/lib/XS/Parse/Infix.pm 
new/XS-Parse-Keyword-0.37/lib/XS/Parse/Infix.pm
--- old/XS-Parse-Keyword-0.36/lib/XS/Parse/Infix.pm     2023-07-20 
17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/lib/XS/Parse/Infix.pm     2023-08-08 
20:21:36.000000000 +0200
@@ -3,7 +3,7 @@
 #
 #  (C) Paul Evans, 2021-2023 -- leon...@leonerd.org.uk
 
-package XS::Parse::Infix 0.36;
+package XS::Parse::Infix 0.37;
 
 use v5.14;
 use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/XS-Parse-Keyword-0.36/lib/XS/Parse/Keyword/Builder.pm 
new/XS-Parse-Keyword-0.37/lib/XS/Parse/Keyword/Builder.pm
--- old/XS-Parse-Keyword-0.36/lib/XS/Parse/Keyword/Builder.pm   2023-07-20 
17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/lib/XS/Parse/Keyword/Builder.pm   2023-08-08 
20:21:36.000000000 +0200
@@ -3,7 +3,7 @@
 #
 #  (C) Paul Evans, 2021 -- leon...@leonerd.org.uk
 
-package XS::Parse::Keyword::Builder 0.36;
+package XS::Parse::Keyword::Builder 0.37;
 
 use v5.14;
 use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/XS-Parse-Keyword-0.36/lib/XS/Parse/Keyword/Builder_data.pm.PL 
new/XS-Parse-Keyword-0.37/lib/XS/Parse/Keyword/Builder_data.pm.PL
--- old/XS-Parse-Keyword-0.36/lib/XS/Parse/Keyword/Builder_data.pm.PL   
2023-07-20 17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/lib/XS/Parse/Keyword/Builder_data.pm.PL   
2023-08-08 20:21:36.000000000 +0200
@@ -28,7 +28,7 @@
    <$in_h> } );
 
 __DATA__
-package XS::Parse::Keyword::Builder_data 0.36;
+package XS::Parse::Keyword::Builder_data 0.37;
 
 use v5.14;
 use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/lib/XS/Parse/Keyword.pm 
new/XS-Parse-Keyword-0.37/lib/XS/Parse/Keyword.pm
--- old/XS-Parse-Keyword-0.36/lib/XS/Parse/Keyword.pm   2023-07-20 
17:56:49.000000000 +0200
+++ new/XS-Parse-Keyword-0.37/lib/XS/Parse/Keyword.pm   2023-08-08 
20:21:36.000000000 +0200
@@ -3,7 +3,7 @@
 #
 #  (C) Paul Evans, 2021-2022 -- leon...@leonerd.org.uk
 
-package XS::Parse::Keyword 0.36;
+package XS::Parse::Keyword 0.37;
 
 use v5.14;
 use warnings;
@@ -563,6 +563,31 @@
 Calls the core perl C<intro_my()> function immediately. No input is consumed
 and no output value is generated. This is often useful after C<XPK_LEXVAR_MY>.
 
+=head2 XPK_WARNING
+
+I<atomic, emits nothing.>
+
+   XPK_WARNING("message here")
+
+Emits a warning by calling the core perl C<warn()> function on the given
+string literal. This is equivalent to simply calling C<warn()> from the build
+function, except that it is emitted immediately at parse time, so line
+numbering will be more accurate. Also, by placing it as part of an optional or
+choice sequence, the warning will only be emitted conditionally if that part
+of the grammar structure is encountered.
+
+=head2 XPK_WARNING_...
+
+Several variants of C<XPK_WARNING> exist that are conditional on particular
+warning categories being enabled. These are ones that are likely to be useful
+at parse time:
+
+   XPK_WARNING_AMBIGUOUS
+   XPK_WARNING_DEPRECATED
+   XPK_WARNING_EXPERIMENTAL
+   XPK_WARNING_PRECEDENCE
+   XPK_WARNING_SYNTAX
+
 =head2 XPK_SEQUENCE
 
 I<structural, might support probe, emits nothing.>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/src/keyword.c 
new/XS-Parse-Keyword-0.37/src/keyword.c
--- old/XS-Parse-Keyword-0.36/src/keyword.c     2023-07-20 17:56:49.000000000 
+0200
+++ new/XS-Parse-Keyword-0.37/src/keyword.c     2023-08-08 20:21:36.000000000 
+0200
@@ -414,6 +414,15 @@
       parse_autosemi();
       return;
 
+    case XS_PARSE_KEYWORD_WARNING:
+    {
+      int warnbit = piece->type >> 24;
+      if(warnbit && !ckWARN(warnbit))
+        return;
+      warn(piece->u.str);
+      return;
+    }
+
     case XS_PARSE_KEYWORD_FAILURE:
       yycroak(piece->u.str);
       NOT_REACHED;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/t/39pieces-warning.t 
new/XS-Parse-Keyword-0.37/t/39pieces-warning.t
--- old/XS-Parse-Keyword-0.36/t/39pieces-warning.t      1970-01-01 
01:00:00.000000000 +0100
+++ new/XS-Parse-Keyword-0.37/t/39pieces-warning.t      2023-08-08 
20:21:36.000000000 +0200
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+
+use v5.14;
+use warnings;
+
+use Test2::V0;
+
+use lib "t";
+use testcase "t::pieces";
+
+BEGIN { $^H{"t::pieces/permit"} = 1; }
+
+my @warnings;
+BEGIN { $SIG{__WARN__} = sub { push @warnings, $_[0] }; }
+
+{
+   BEGIN { undef @warnings; }
+   piecewarning;
+
+   BEGIN { is( \@warnings, [ "A warning here\n" ], 'piecewarning emits 
warning' ) };
+}
+
+{
+   BEGIN { undef @warnings; }
+   piecewarndep;
+
+   BEGIN { is( \@warnings, [ "A deprecated warning here\n" ], 'piecewarndep 
emits warning' ) };
+
+   BEGIN { undef @warnings; }
+   no warnings 'deprecated';
+   piecewarndep;
+
+   BEGIN { is( \@warnings, [], 'piecewarndep warning is conditional' ) };
+}
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/XS-Parse-Keyword-0.36/t/pieces.xs 
new/XS-Parse-Keyword-0.37/t/pieces.xs
--- old/XS-Parse-Keyword-0.36/t/pieces.xs       2023-07-20 17:56:49.000000000 
+0200
+++ new/XS-Parse-Keyword-0.37/t/pieces.xs       2023-08-08 20:21:36.000000000 
+0200
@@ -388,6 +388,20 @@
   .build1 = &build_literal,
 };
 
+static const struct XSParseKeywordHooks hooks_warning = {
+  .permit_hintkey = hintkey,
+
+  .piece1 = XPK_WARNING("A warning here\n"),
+  .build1 = &build_literal,
+};
+
+static const struct XSParseKeywordHooks hooks_warning_deprecated = {
+  .permit_hintkey = hintkey,
+
+  .piece1 = XPK_WARNING_DEPRECATED("A deprecated warning here\n"),
+  .build1 = &build_literal,
+};
+
 MODULE = t::pieces  PACKAGE = t::pieces
 
 BOOT:
@@ -433,3 +447,6 @@
   register_xs_parse_keyword("piecekw",  &hooks_kw,  newSVpvs("bar"));
 
   register_xs_parse_keyword("pieceautosemi", &hooks_autosemi, newSVpvs("EOS"));
+
+  register_xs_parse_keyword("piecewarning", &hooks_warning, &PL_sv_undef);
+  register_xs_parse_keyword("piecewarndep", &hooks_warning_deprecated, 
&PL_sv_undef);

Reply via email to