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);