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-01-05 15:00:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-XS-Parse-Keyword (Old) and /work/SRC/openSUSE:Factory/.perl-XS-Parse-Keyword.new.1563 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-XS-Parse-Keyword" Thu Jan 5 15:00:18 2023 rev:11 rq:1055924 version:0.31 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-XS-Parse-Keyword/perl-XS-Parse-Keyword.changes 2022-12-14 14:11:08.391536946 +0100 +++ /work/SRC/openSUSE:Factory/.perl-XS-Parse-Keyword.new.1563/perl-XS-Parse-Keyword.changes 2023-01-05 15:00:31.268915362 +0100 @@ -1,0 +2,13 @@ +Mon Dec 26 03:08:39 UTC 2022 - Tina Müller <timueller+p...@suse.de> + +- updated to 0.31 + see /usr/share/doc/packages/perl-XS-Parse-Keyword/Changes + + 0.31 2022-12-25 + [CHANGES] + * PL_infix_plugin now exists in 5.37.7 + * Support the new infix operator precedence levels added by + perl v5.37.7 + * Various updates to hax/ support files + +------------------------------------------------------------------- Old: ---- XS-Parse-Keyword-0.30.tar.gz New: ---- XS-Parse-Keyword-0.31.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-XS-Parse-Keyword.spec ++++++ --- /var/tmp/diff_new_pack.ZjkyHg/_old 2023-01-05 15:00:31.912918758 +0100 +++ /var/tmp/diff_new_pack.ZjkyHg/_new 2023-01-05 15:00:31.936918884 +0100 @@ -18,7 +18,7 @@ %define cpan_name XS-Parse-Keyword Name: perl-XS-Parse-Keyword -Version: 0.30 +Version: 0.31 Release: 0 License: Artistic-1.0 OR GPL-1.0-or-later Summary: XS functions to assist in parsing keyword syntax ++++++ XS-Parse-Keyword-0.30.tar.gz -> XS-Parse-Keyword-0.31.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/Build.PL new/XS-Parse-Keyword-0.31/Build.PL --- old/XS-Parse-Keyword-0.30/Build.PL 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/Build.PL 2022-12-25 13:41:09.000000000 +0100 @@ -43,8 +43,6 @@ my $have_pl_infix_plugin = 0; - # No released version of perl (yet) has PL_infix_plugin. This commandline - # argument allows it to build if patched correctly. $have_pl_infix_plugin = 1 if grep { $_ eq "--have-pl_infix_plugin" } @ARGV; $have_pl_infix_plugin ||= $cc->try_compile_run( @@ -61,7 +59,7 @@ return 0; } EOF - ) if $] >= 5.037000; # maybe I'll start this in 5.37... + ) if $] >= 5.037007; if( $have_pl_infix_plugin ) { print "Including support for core perl PL_infix_plugin\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/Changes new/XS-Parse-Keyword-0.31/Changes --- old/XS-Parse-Keyword-0.30/Changes 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/Changes 2022-12-25 13:41:09.000000000 +0100 @@ -1,5 +1,12 @@ Revision history for XS-Parse-Keyword +0.31 2022-12-25 + [CHANGES] + * PL_infix_plugin now exists in 5.37.7 + * Support the new infix operator precedence levels added by + perl v5.37.7 + * Various updates to hax/ support files + 0.30 2022-12-03 [CHANGES] * Added XPK_STAGED_ANONSUB; inspired a bit by XS::Parse::Sublike for diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/META.json new/XS-Parse-Keyword-0.31/META.json --- old/XS-Parse-Keyword-0.30/META.json 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/META.json 2022-12-25 13:41:09.000000000 +0100 @@ -40,19 +40,19 @@ "provides" : { "XS::Parse::Infix" : { "file" : "lib/XS/Parse/Infix.pm", - "version" : "0.30" + "version" : "0.31" }, "XS::Parse::Infix::Builder" : { "file" : "lib/XS/Parse/Infix/Builder.pm", - "version" : "0.30" + "version" : "0.31" }, "XS::Parse::Keyword" : { "file" : "lib/XS/Parse/Keyword.pm", - "version" : "0.30" + "version" : "0.31" }, "XS::Parse::Keyword::Builder" : { "file" : "lib/XS/Parse/Keyword/Builder.pm", - "version" : "0.30" + "version" : "0.31" } }, "release_status" : "stable", @@ -61,6 +61,6 @@ "http://dev.perl.org/licenses/" ] }, - "version" : "0.30", + "version" : "0.31", "x_serialization_backend" : "JSON::PP version 4.07" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/META.yml new/XS-Parse-Keyword-0.31/META.yml --- old/XS-Parse-Keyword-0.30/META.yml 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/META.yml 2022-12-25 13:41:09.000000000 +0100 @@ -19,19 +19,19 @@ provides: XS::Parse::Infix: file: lib/XS/Parse/Infix.pm - version: '0.30' + version: '0.31' XS::Parse::Infix::Builder: file: lib/XS/Parse/Infix/Builder.pm - version: '0.30' + version: '0.31' XS::Parse::Keyword: file: lib/XS/Parse/Keyword.pm - version: '0.30' + version: '0.31' XS::Parse::Keyword::Builder: file: lib/XS/Parse/Keyword/Builder.pm - version: '0.30' + version: '0.31' requires: perl: '5.014' resources: license: http://dev.perl.org/licenses/ -version: '0.30' +version: '0.31' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/XSParseInfix.h new/XS-Parse-Keyword-0.31/XSParseInfix.h --- old/XS-Parse-Keyword-0.30/XSParseInfix.h 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/XSParseInfix.h 2022-12-25 13:41:09.000000000 +0100 @@ -17,9 +17,18 @@ XPI_CLS_MATCH_MISC, /* ... any other match-like predicate */ XPI_CLS_ORDERING, /* cmp or <=> */ - XPI_CLS_ADD_MISC, /* an operator at addition-like precedence */ - XPI_CLS_MUL_MISC, /* an operator at multiplication-like precedence */ - XPI_CLS_POW_MISC, /* an operator at power exponentiation-like precedence */ + /* Since the _MISC categories never turn up in selections, put them at high + * index so as to leave space for more */ + XPI_CLS_LOW_MISC = 0x80, /* an operator at low precedence */ + XPI_CLS_LOGICAL_OR_LOW_MISC, + XPI_CLS_LOGICAL_AND_LOW_MISC, + XPI_CLS_ASSIGN_MISC, + XPI_CLS_LOGICAL_OR_MISC, + XPI_CLS_LOGICAL_AND_MISC, + XPI_CLS_ADD_MISC, /* an operator at addition-like precedence */ + XPI_CLS_MUL_MISC, /* an operator at multiplication-like precedence */ + XPI_CLS_POW_MISC, /* an operator at power exponentiation-like precedence */ + XPI_CLS_HIGH_MISC, /* an operator at high precedence */ }; enum XSParseInfixSelection { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/hax/optree-additions.c.inc new/XS-Parse-Keyword-0.31/hax/optree-additions.c.inc --- old/XS-Parse-Keyword-0.30/hax/optree-additions.c.inc 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/hax/optree-additions.c.inc 2022-12-25 13:41:09.000000000 +0100 @@ -3,7 +3,7 @@ #define newAELEMOP(flags, first, key) S_newAELEMOP(aTHX_ flags, first, key) static OP *S_newAELEMOP(pTHX_ U32 flags, OP *first, I32 key) { -#if HAVE_PERL_VERSION(5, 16, 0) +#if HAVE_PERL_VERSION(5,16,0) if(key >= -128 && key < 128 && first->op_type == OP_PADAV) { OP *o = newOP(OP_AELEMFAST_LEX, flags); o->op_private = (I8)key; @@ -16,14 +16,6 @@ return newBINOP(OP_AELEM, flags, first, newSVOP(OP_CONST, 0, newSViv(key))); } -#define newPADxVOP(type, flags, padix) S_newPADxVOP(aTHX_ type, flags, padix) -static OP *S_newPADxVOP(pTHX_ I32 type, I32 flags, PADOFFSET padix) -{ - OP *op = newOP(type, flags); - op->op_targ = padix; - return op; -} - #if HAVE_PERL_VERSION(5, 22, 0) # define HAVE_UNOP_AUX #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/hax/perl-backcompat.c.inc new/XS-Parse-Keyword-0.31/hax/perl-backcompat.c.inc --- old/XS-Parse-Keyword-0.30/hax/perl-backcompat.c.inc 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/hax/perl-backcompat.c.inc 2022-12-25 13:41:09.000000000 +0100 @@ -92,6 +92,10 @@ # define OpSIBLING(op) ((op)->op_sibling) #endif +#ifndef OpHAS_SIBLING +# define OpHAS_SIBLING(op) (cBOOL(OpSIBLING(op))) +#endif + #ifndef OpMORESIB_set # define OpMORESIB_set(op,sib) ((op)->op_sibling = (sib)) #endif @@ -160,6 +164,11 @@ # define isIDCONT_utf8_safe(s, e) (PERL_UNUSED_ARG(e), isIDCONT_utf8(s)) #endif +#ifndef CXp_EVALBLOCK +/* before perl 5.34 this was called CXp_TRYBLOCK */ +# define CXp_EVALBLOCK CXp_TRYBLOCK +#endif + #if !HAVE_PERL_VERSION(5, 26, 0) # define sv_set_undef(sv) sv_setsv(sv, &PL_sv_undef) #endif @@ -188,3 +197,24 @@ return sv_derived_from_pvn(sv, hvname, HvNAMELEN(hv), HvNAMEUTF8(hv) ? SVf_UTF8 : 0); } #endif + +#ifdef PERL_USE_GCC_BRACE_GROUPS +# define xV_FROM_REF(XV, ref) \ + ({ SV *_ref = ref; assert(SvROK(_ref)); assert(SvTYPE(SvRV(_ref)) == SVt_PV ## XV); (XV *)(SvRV(_ref)); }) +#else +# define xV_FROM_REF(XV, ref) ((XV *)SvRV(ref)) +#endif + +#define AV_FROM_REF(ref) xV_FROM_REF(AV, ref) +#define CV_FROM_REF(ref) xV_FROM_REF(CV, ref) +#define HV_FROM_REF(ref) xV_FROM_REF(HV, ref) + +#ifndef newPADxVOP +# define newPADxVOP(type, flags, padix) S_newPADxVOP(aTHX_ type, flags, padix) +static OP *S_newPADxVOP(pTHX_ I32 type, I32 flags, PADOFFSET padix) +{ + OP *op = newOP(type, flags); + op->op_targ = padix; + return op; +} +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/lib/XS/Parse/Infix/Builder.pm new/XS-Parse-Keyword-0.31/lib/XS/Parse/Infix/Builder.pm --- old/XS-Parse-Keyword-0.30/lib/XS/Parse/Infix/Builder.pm 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/lib/XS/Parse/Infix/Builder.pm 2022-12-25 13:41:09.000000000 +0100 @@ -3,7 +3,7 @@ # # (C) Paul Evans, 2021 -- leon...@leonerd.org.uk -package XS::Parse::Infix::Builder 0.30; +package XS::Parse::Infix::Builder 0.31; use v5.14; use warnings; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/lib/XS/Parse/Infix/Builder_data.pm.PL new/XS-Parse-Keyword-0.31/lib/XS/Parse/Infix/Builder_data.pm.PL --- old/XS-Parse-Keyword-0.30/lib/XS/Parse/Infix/Builder_data.pm.PL 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/lib/XS/Parse/Infix/Builder_data.pm.PL 2022-12-25 13:41:09.000000000 +0100 @@ -28,7 +28,7 @@ <$in_h> } ); __DATA__ -package XS::Parse::Infix::Builder_data 0.30; +package XS::Parse::Infix::Builder_data 0.31; use v5.14; use warnings; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/lib/XS/Parse/Infix.pm new/XS-Parse-Keyword-0.31/lib/XS/Parse/Infix.pm --- old/XS-Parse-Keyword-0.30/lib/XS/Parse/Infix.pm 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/lib/XS/Parse/Infix.pm 2022-12-25 13:41:09.000000000 +0100 @@ -3,7 +3,7 @@ # # (C) Paul Evans, 2021-2022 -- leon...@leonerd.org.uk -package XS::Parse::Infix 0.30; +package XS::Parse::Infix 0.31; use v5.14; use warnings; @@ -28,10 +28,9 @@ changes or at least a rebuild of any module that depends on it. In addition, the places this functionality can be used are relatively small. -No current release of perl actually supports custom infix operators, though I -have a branch where I am currently experimenting with such support: - -L<https://github.com/leonerd/perl5/tree/infix-plugin> +No current release of perl actually supports custom infix operators, though it +has now been merged to C<blead>, the main development branch, and will be +present in development release C<v5.37.7> onwards. In addition, the various C<XPK_INFIX_*> token types of L<XS::Parse::Keyword> support querying on this module, so some syntax provided by other modules may @@ -49,8 +48,8 @@ extension mechanism, meaning that custom infix operators registered with this module will actually be recognised by the perl parser. -No actual production or development releases of perl yet support this feature, -but see above for details of a branch which does. +No actual production releases of perl yet support this feature, but see above +for details of development versions which do. =cut @@ -136,11 +135,11 @@ const char *permit_hintkey; bool (*permit)(pTHX_ void *hookdata); - OP *(*new_op)(pTHX_ U32 flags, OP *lhs, OP *rhs, ANY *parsedata, void *hookdata); + OP *(*new_op)(pTHX_ U32 flags, OP *lhs, OP *rhs, SV **parsedata, void *hookdata); OP *(*ppaddr)(pTHX); /* optional */ - void (*parse)(pTHX_ U32 flags, ANY *parsedata, void *hookdata); + void (*parse)(pTHX_ U32 flags, SV **parsedata, void *hookdata); }; =head2 Flags @@ -230,9 +229,9 @@ attempt further parsing, in order to implement more complex syntax such as hyper-operators. -When invoked, it is passed a pointer to an C<ANY>-typed storage variable. It -is free to use whichever field of this variable it desires to store a result, -which will then later be made available to the C<new_op> function. +When invoked, it is passed a pointer to an C<SV *>-typed storage variable. It +is free to use this variable it desires to store a result, which will then +later be made available to the C<new_op> function. =head2 The Op Generation Stage @@ -242,12 +241,12 @@ If C<new_op> is defined then it will be used, and is expected to return an optree fragment that consumes the LHS and RHS arguments to implement the semantics of the operator. If the optional C<parse> stage had been present -earlier, the C<ANY> pointer passed here will point to the same storage that +earlier, the C<SV **> pointer passed here will point to the same storage that C<parse> had previously had access to, so it can retrieve the results. If C<new_op> is not present, then the C<ppaddr> will be used instead to construct a new BINOP of the C<OP_CUSTOM> type. If an earlier C<parse> stage -had stored additional results into the C<ANY> variable these will be lost +had stored additional results into the C<SV *> variable these will be lost here. =head2 The Wrapper Function @@ -349,7 +348,7 @@ will skip it because it would otherwise be identical. Note that when generating an optree for a wrapper function call, the C<new_op> -hook function will be invoked with a C<NULL> pointer for the C<ANY>-typed +hook function will be invoked with a C<NULL> pointer for the C<SV *>-typed parse data storage, as there won't be an opporunity for the C<parse> hook to run in this case. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/lib/XS/Parse/Keyword/Builder.pm new/XS-Parse-Keyword-0.31/lib/XS/Parse/Keyword/Builder.pm --- old/XS-Parse-Keyword-0.30/lib/XS/Parse/Keyword/Builder.pm 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/lib/XS/Parse/Keyword/Builder.pm 2022-12-25 13:41:09.000000000 +0100 @@ -3,7 +3,7 @@ # # (C) Paul Evans, 2021 -- leon...@leonerd.org.uk -package XS::Parse::Keyword::Builder 0.30; +package XS::Parse::Keyword::Builder 0.31; use v5.14; use warnings; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/lib/XS/Parse/Keyword/Builder_data.pm.PL new/XS-Parse-Keyword-0.31/lib/XS/Parse/Keyword/Builder_data.pm.PL --- old/XS-Parse-Keyword-0.30/lib/XS/Parse/Keyword/Builder_data.pm.PL 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/lib/XS/Parse/Keyword/Builder_data.pm.PL 2022-12-25 13:41:09.000000000 +0100 @@ -28,7 +28,7 @@ <$in_h> } ); __DATA__ -package XS::Parse::Keyword::Builder_data 0.30; +package XS::Parse::Keyword::Builder_data 0.31; use v5.14; use warnings; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/lib/XS/Parse/Keyword.pm new/XS-Parse-Keyword-0.31/lib/XS/Parse/Keyword.pm --- old/XS-Parse-Keyword-0.30/lib/XS/Parse/Keyword.pm 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/lib/XS/Parse/Keyword.pm 2022-12-25 13:41:09.000000000 +0100 @@ -3,7 +3,7 @@ # # (C) Paul Evans, 2021-2022 -- leon...@leonerd.org.uk -package XS::Parse::Keyword 0.30; +package XS::Parse::Keyword 0.31; use v5.14; use warnings; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/XS-Parse-Keyword-0.30/src/infix.c new/XS-Parse-Keyword-0.31/src/infix.c --- old/XS-Parse-Keyword-0.30/src/infix.c 2022-12-03 15:51:44.000000000 +0100 +++ new/XS-Parse-Keyword-0.31/src/infix.c 2022-12-25 13:41:09.000000000 +0100 @@ -725,6 +725,30 @@ prec = INFIX_PREC_REL; break; + case XPI_CLS_LOW_MISC: + prec = INFIX_PREC_LOW; + break; + + case XPI_CLS_LOGICAL_OR_LOW_MISC: + prec = INFIX_PREC_LOGICAL_OR_LOW; + break; + + case XPI_CLS_LOGICAL_AND_LOW_MISC: + prec = INFIX_PREC_LOGICAL_AND_LOW; + break; + + case XPI_CLS_ASSIGN_MISC: + prec = INFIX_PREC_ASSIGN; + break; + + case XPI_CLS_LOGICAL_OR_MISC: + prec = INFIX_PREC_LOGICAL_OR; + break; + + case XPI_CLS_LOGICAL_AND_MISC: + prec = INFIX_PREC_LOGICAL_AND; + break; + case XPI_CLS_ADD_MISC: prec = INFIX_PREC_ADD; break; @@ -737,7 +761,9 @@ prec = INFIX_PREC_POW; break; - /* TODO: Add classifications for the HIGH and LOW also? */ + case XPI_CLS_HIGH_MISC: + prec = INFIX_PREC_HIGH; + break; default: croak("TODO: need to write code for hooks->cls == %d\n", hooks->cls);