Hello community,

here is the log from the commit of package perl-Syntax-Keyword-Try for 
openSUSE:Factory checked in at 2020-11-24 22:13:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Syntax-Keyword-Try (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Syntax-Keyword-Try.new.5913 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Syntax-Keyword-Try"

Tue Nov 24 22:13:22 2020 rev:8 rq:850409 version:0.20

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Syntax-Keyword-Try/perl-Syntax-Keyword-Try.changes
  2020-08-04 20:19:11.508951229 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Syntax-Keyword-Try.new.5913/perl-Syntax-Keyword-Try.changes
        2020-11-24 22:14:00.087580173 +0100
@@ -1,0 +2,19 @@
+Tue Nov 24 03:06:24 UTC 2020 - Tina Müller <timueller+p...@suse.de>
+
+- updated to 0.20
+   see /usr/share/doc/packages/perl-Syntax-Keyword-Try/Changes
+
+  0.20    2020-11-24
+          [BUGFIXES]
+           * Fix for perl 5.14 by #include'ing hax/ files in the right order
+
+  0.19    2020-11-24
+          [CHANGES]
+           * Avoid the core Off() and Bit() macros as they were removed after
+             perl 5.33.3
+           * Support :experimental(try_value) to activate and silence the
+             warning
+           * Add documentation about the scalar context propagation issue of
+             RT124229
+
+-------------------------------------------------------------------

Old:
----
  Syntax-Keyword-Try-0.18.tar.gz

New:
----
  Syntax-Keyword-Try-0.20.tar.gz

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

Other differences:
------------------
++++++ perl-Syntax-Keyword-Try.spec ++++++
--- /var/tmp/diff_new_pack.7hRNfs/_old  2020-11-24 22:14:02.111582049 +0100
+++ /var/tmp/diff_new_pack.7hRNfs/_new  2020-11-24 22:14:02.111582049 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Syntax-Keyword-Try
-Version:        0.18
+Version:        0.20
 Release:        0
 %define cpan_name Syntax-Keyword-Try
 Summary:        C<try/catch/finally> syntax for perl

++++++ Syntax-Keyword-Try-0.18.tar.gz -> Syntax-Keyword-Try-0.20.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/Changes 
new/Syntax-Keyword-Try-0.20/Changes
--- old/Syntax-Keyword-Try-0.18/Changes 2020-08-01 18:18:13.000000000 +0200
+++ new/Syntax-Keyword-Try-0.20/Changes 2020-11-24 02:13:24.000000000 +0100
@@ -1,5 +1,18 @@
 Revision history for Syntax-Keyword-Try
 
+0.20    2020-11-24
+        [BUGFIXES]
+         * Fix for perl 5.14 by #include'ing hax/ files in the right order
+
+0.19    2020-11-24
+        [CHANGES]
+         * Avoid the core Off() and Bit() macros as they were removed after
+           perl 5.33.3
+         * Support :experimental(try_value) to activate and silence the
+           warning
+         * Add documentation about the scalar context propagation issue of
+           RT124229
+
 0.18    2020-08-01
         [CHANGES]
          * De-experiment the `catch ($var)` syntax
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/MANIFEST 
new/Syntax-Keyword-Try-0.20/MANIFEST
--- old/Syntax-Keyword-Try-0.18/MANIFEST        2020-08-01 18:18:13.000000000 
+0200
+++ new/Syntax-Keyword-Try-0.20/MANIFEST        2020-11-24 02:13:24.000000000 
+0100
@@ -2,6 +2,7 @@
 Changes
 hax/lexer-additions.c.inc
 hax/perl-additions.c.inc
+hax/perl-backcompat.c.inc
 hax/wrap_keyword_plugin.c.inc
 lib/Syntax/Keyword/Try.pm
 lib/Syntax/Keyword/Try.xs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/META.json 
new/Syntax-Keyword-Try-0.20/META.json
--- old/Syntax-Keyword-Try-0.18/META.json       2020-08-01 18:18:13.000000000 
+0200
+++ new/Syntax-Keyword-Try-0.20/META.json       2020-11-24 02:13:24.000000000 
+0100
@@ -38,7 +38,7 @@
    "provides" : {
       "Syntax::Keyword::Try" : {
          "file" : "lib/Syntax/Keyword/Try.pm",
-         "version" : "0.18"
+         "version" : "0.20"
       }
    },
    "release_status" : "stable",
@@ -48,6 +48,6 @@
       ],
       "x_IRC" : "irc://irc.perl.org/#io-async"
    },
-   "version" : "0.18",
+   "version" : "0.20",
    "x_serialization_backend" : "JSON::PP version 4.05"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/META.yml 
new/Syntax-Keyword-Try-0.20/META.yml
--- old/Syntax-Keyword-Try-0.18/META.yml        2020-08-01 18:18:13.000000000 
+0200
+++ new/Syntax-Keyword-Try-0.20/META.yml        2020-11-24 02:13:24.000000000 
+0100
@@ -17,11 +17,11 @@
 provides:
   Syntax::Keyword::Try:
     file: lib/Syntax/Keyword/Try.pm
-    version: '0.18'
+    version: '0.20'
 requires:
   perl: '5.014'
 resources:
   IRC: irc://irc.perl.org/#io-async
   license: http://dev.perl.org/licenses/
-version: '0.18'
+version: '0.20'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/README 
new/Syntax-Keyword-Try-0.20/README
--- old/Syntax-Keyword-Try-0.18/README  2020-08-01 18:18:13.000000000 +0200
+++ new/Syntax-Keyword-Try-0.20/README  2020-11-24 02:13:24.000000000 +0100
@@ -43,6 +43,8 @@
 
        use Syntax::Keyword::Try qw( try :experimental(typed) );
     
+       use Syntax::Keyword::Try qw( try :experimental(try_value) );
+    
        use Syntax::Keyword::Try qw( try :experimental );  # all of the above
 
     Don't forget to import the main try symbol itself, to activate the
@@ -357,7 +359,29 @@
           }
        }
 
-KNOWN BUGS
+ISSUES
+
+ Context propagation during return
+
+    A return statement inside a try block will currently always propagate a
+    scalar context, even if the function it appears in itself is in list
+    context.
+
+       sub inner
+       {
+          return wantarray ? (qw( a list of things )) : "a single scalar";
+       }
+    
+       sub outer
+       {
+          try { return inner() }
+          catch {}
+       }
+    
+       my @result = outer();
+       print for @result;  # prints "a single scalar"
+
+    This is discussed at https://rt.cpan.org/Ticket/Display.html?id=124229.
 
  Thread-safety at load time cannot be assured before perl 5.16
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/hax/perl-additions.c.inc 
new/Syntax-Keyword-Try-0.20/hax/perl-additions.c.inc
--- old/Syntax-Keyword-Try-0.18/hax/perl-additions.c.inc        2020-08-01 
18:18:13.000000000 +0200
+++ new/Syntax-Keyword-Try-0.20/hax/perl-additions.c.inc        2020-11-24 
02:13:24.000000000 +0100
@@ -1,7 +1,7 @@
 /* vi: set ft=c inde=: */
 
 #ifndef av_count
-#  define av_count(av)           (av_top_index(av) + 1)
+#  define av_count(av)           (AvFILL(av) + 1)
 #endif
 
 #if HAVE_PERL_VERSION(5, 22, 0)
@@ -10,6 +10,17 @@
 #  define PadnameIsNULL(pn)  (!(pn) || (pn) == &PL_sv_undef)
 #endif
 
+#ifndef hv_deletes
+#  define hv_deletes(hv, skey, flags)  hv_delete((hv), ("" skey ""), 
(sizeof(skey) - 1), flags)
+#endif
+
+#if HAVE_PERL_VERSION(5, 22, 0)
+#  define PadnameOUTER_off(pn)  (PadnameFLAGS(pn) &= ~PADNAMEt_OUTER)
+#else
+   /* PadnameOUTER is really the SvFAKE flag */
+#  define PadnameOUTER_off(pn)  SvFAKE_off(pn)
+#endif
+
 #define save_strndup(s, l)  S_save_strndup(aTHX_ s, l)
 static char *S_save_strndup(pTHX_ char *s, STRLEN l)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/hax/perl-backcompat.c.inc 
new/Syntax-Keyword-Try-0.20/hax/perl-backcompat.c.inc
--- old/Syntax-Keyword-Try-0.18/hax/perl-backcompat.c.inc       1970-01-01 
01:00:00.000000000 +0100
+++ new/Syntax-Keyword-Try-0.20/hax/perl-backcompat.c.inc       2020-11-24 
02:13:24.000000000 +0100
@@ -0,0 +1,81 @@
+/* vi: set ft=c inde=: */
+
+#if !HAVE_PERL_VERSION(5, 18, 0)
+typedef AV PADNAMELIST;
+#  define PadlistARRAY(pl)        ((PAD **)AvARRAY(pl))
+#  define PadlistNAMES(pl)        (*PadlistARRAY(pl))
+
+typedef SV PADNAME;
+#  define PadnamePV(pn)           (SvPOKp(pn) ? SvPVX(pn) : NULL)
+#  define PadnameLEN(pn)          SvCUR(pn)
+#  define PadnameOUTER(pn)        (SvFAKE(pn) && !SvPAD_STATE(pn))
+#  define PadnamelistARRAY(pnl)   AvARRAY(pnl)
+#  define PadnamelistMAX(pnl)     AvFILLp(pnl)
+
+#  define PadARRAY(p)             AvARRAY(p)
+#endif
+
+#ifndef av_top_index
+#  define av_top_index(av)       AvFILL(av)
+#endif
+
+#ifndef block_end
+#  define block_end(a,b)         Perl_block_end(aTHX_ a,b)
+#endif
+
+#ifndef block_start
+#  define block_start(a)         Perl_block_start(aTHX_ a)
+#endif
+
+#ifndef cv_clone
+#  define cv_clone(a)            Perl_cv_clone(aTHX_ a)
+#endif
+
+#ifndef intro_my
+#  define intro_my()             Perl_intro_my(aTHX)
+#endif
+
+#ifndef OpSIBLING
+#  define OpSIBLING(op)  (op->op_sibling)
+#endif
+
+#ifndef OpMORESIB_set
+#  define OpMORESIB_set(op,sib)  ((op)->op_sibling = (sib))
+#endif
+
+#ifndef op_convert_list
+#  define op_convert_list(type, flags, o)  S_op_convert_list(aTHX_ type, 
flags, o)
+static OP *S_op_convert_list(pTHX_ I32 type, I32 flags, OP *o)
+{
+  /* A minimal recreation just for our purposes */
+  o->op_type = type;
+  o->op_flags |= flags;
+  o->op_ppaddr = PL_ppaddr[type];
+
+  o = PL_check[type](aTHX_ o);
+
+  return o;
+}
+#endif
+
+#ifndef PARENT_PAD_INDEX_set
+#  if HAVE_PERL_VERSION(5, 22, 0)
+#    define PARENT_PAD_INDEX_set(pn,val) (PARENT_PAD_INDEX(pn) = val)
+#  else
+     /* stolen from perl-5.20.0's pad.c */
+#    define PARENT_PAD_INDEX_set(sv,val) \
+        STMT_START { ((XPVNV*)SvANY(sv))->xnv_u.xpad_cop_seq.xlow = (val); } 
STMT_END
+#  endif
+#endif
+
+/* On Perl 5.14 this had a different name */
+#ifndef pad_add_name_pvn
+#define pad_add_name_pvn(name, len, flags, typestash, ourstash)  
MY_pad_add_name(aTHX_ name, len, flags, typestash, ourstash)
+PADOFFSET MY_pad_add_name(pTHX_ const char *name, STRLEN len, U32 flags, HV 
*typestash, HV *ourstash)
+{
+  /* perl 5.14's Perl_pad_add_name requires a NUL-terminated name */
+  SV *namesv = sv_2mortal(newSVpvn(name, len));
+
+  return Perl_pad_add_name(aTHX_ SvPV_nolen(namesv), SvCUR(namesv), flags, 
typestash, ourstash);
+}
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/lib/Syntax/Keyword/Try.pm 
new/Syntax-Keyword-Try-0.20/lib/Syntax/Keyword/Try.pm
--- old/Syntax-Keyword-Try-0.18/lib/Syntax/Keyword/Try.pm       2020-08-01 
18:18:13.000000000 +0200
+++ new/Syntax-Keyword-Try-0.20/lib/Syntax/Keyword/Try.pm       2020-11-24 
02:13:24.000000000 +0100
@@ -3,7 +3,7 @@
 #
 #  (C) Paul Evans, 2016-2019 -- leon...@leonerd.org.uk
 
-package Syntax::Keyword::Try 0.18;
+package Syntax::Keyword::Try 0.20;
 
 use v5.14;
 use warnings;
@@ -56,6 +56,8 @@
 
    use Syntax::Keyword::Try qw( try :experimental(typed) );
 
+   use Syntax::Keyword::Try qw( try :experimental(try_value) );
+
    use Syntax::Keyword::Try qw( try :experimental );  # all of the above
 
 Don't forget to import the main C<try> symbol itself, to activate the syntax.
@@ -375,7 +377,7 @@
    $class->import_into( $caller, @_ );
 }
 
-my @EXPERIMENTAL = qw( typed );
+my @EXPERIMENTAL = qw( typed try_value );
 
 sub import_into
 {
@@ -404,6 +406,8 @@
    # Ignore requests for these, as they come automatically with `try`
    delete @syms{qw( catch finally )};
 
+   $^H{"Syntax::Keyword::Try/try_value"}++ if 
$^H{"Syntax::Keyword::Try/experimental(try_value)"};
+
    croak "Unrecognised import symbols @{[ keys %syms ]}" if keys %syms;
 }
 
@@ -430,7 +434,29 @@
       }
    }
 
-=head1 KNOWN BUGS
+=head1 ISSUES
+
+=head2 Context propagation during C<return>
+
+A C<return> statement inside a C<try> block will currently always propagate
+a scalar context, even if the function it appears in itself is in list
+context.
+
+   sub inner
+   {
+      return wantarray ? (qw( a list of things )) : "a single scalar";
+   }
+
+   sub outer
+   {
+      try { return inner() }
+      catch {}
+   }
+
+   my @result = outer();
+   print for @result;  # prints "a single scalar"
+
+This is discussed at L<https://rt.cpan.org/Ticket/Display.html?id=124229>.
 
 =head2 Thread-safety at load time cannot be assured before perl 5.16
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/lib/Syntax/Keyword/Try.xs 
new/Syntax-Keyword-Try-0.20/lib/Syntax/Keyword/Try.xs
--- old/Syntax-Keyword-Try-0.18/lib/Syntax/Keyword/Try.xs       2020-08-01 
18:18:13.000000000 +0200
+++ new/Syntax-Keyword-Try-0.20/lib/Syntax/Keyword/Try.xs       2020-11-24 
02:13:24.000000000 +0100
@@ -7,32 +7,6 @@
 #include "perl.h"
 #include "XSUB.h"
 
-/* Before perl 5.22 these were not visible */
-
-#ifndef cv_clone
-#define cv_clone(a)            Perl_cv_clone(aTHX_ a)
-#endif
-
-#ifndef block_end
-#define block_end(a,b)         Perl_block_end(aTHX_ a,b)
-#endif
-
-#ifndef block_start
-#define block_start(a)         Perl_block_start(aTHX_ a)
-#endif
-
-#ifndef intro_my
-#define intro_my()             Perl_intro_my(aTHX)
-#endif
-
-#ifndef OpSIBLING
-#define OpSIBLING(op)          (op->op_sibling)
-#endif
-
-#ifndef OpMORESIB_set
-#define OpMORESIB_set(op,sib)  ((op)->op_sibling = (sib))
-#endif
-
 #define HAVE_PERL_VERSION(R, V, S) \
     (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || 
(PERL_VERSION == (V) && (PERL_SUBVERSION >= (S))))))
 
@@ -54,17 +28,7 @@
 #  include "wrap_keyword_plugin.c.inc"
 #endif
 
-/* On Perl 5.14 this had a different name */
-#ifndef pad_add_name_pvn
-#define pad_add_name_pvn(name, len, flags, typestash, ourstash)  
MY_pad_add_name(aTHX_ name, len, flags, typestash, ourstash)
-PADOFFSET MY_pad_add_name(pTHX_ const char *name, STRLEN len, U32 flags, HV 
*typestash, HV *ourstash)
-{
-  /* perl 5.14's Perl_pad_add_name requires a NUL-terminated name */
-  SV *namesv = sv_2mortal(newSVpvn(name, len));
-
-  return Perl_pad_add_name(aTHX_ SvPV_nolen(namesv), SvCUR(namesv), flags, 
typestash, ourstash);
-}
-#endif
+#include "perl-backcompat.c.inc"
 
 #include "lexer-additions.c.inc"
 
@@ -249,7 +213,7 @@
   ((COP *)op)->cop_warnings = warnings;
 
   warning_bits = (char *)(warnings + 1);
-  warning_bits[Off(2*WARN_EXITING)] &= ~Bit(2*WARN_EXITING);
+  warning_bits[(2*WARN_EXITING) / 8] &= ~(1 << (2*WARN_EXITING % 8));
 
   return op;
 }
@@ -467,8 +431,10 @@
     is_value = TRUE;
 
 #ifdef WARN_EXPERIMENTAL
-    Perl_ck_warner(aTHX_ packWARN(WARN_EXPERIMENTAL),
-      "'try do' syntax is experimental and may be changed or removed without 
notice");
+    if(!hints || !hv_fetchs(hints, 
"Syntax::Keyword::Try/experimental(try_value)", 0)) {
+      Perl_ck_warner(aTHX_ packWARN(WARN_EXPERIMENTAL),
+        "'try do' syntax is experimental and may be changed or removed without 
notice");
+    }
 #endif
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Syntax-Keyword-Try-0.18/t/20try-do.t 
new/Syntax-Keyword-Try-0.20/t/20try-do.t
--- old/Syntax-Keyword-Try-0.18/t/20try-do.t    2020-08-01 18:18:13.000000000 
+0200
+++ new/Syntax-Keyword-Try-0.20/t/20try-do.t    2020-11-24 02:13:24.000000000 
+0100
@@ -71,6 +71,13 @@
 
    like( $warnings, qr/^'try do' syntax is experimental/,
       'try do syntax produces experimental warnings' );
+
+   # warning can be disabled
+   use Syntax::Keyword::Try qw( :experimental(try_value) );
+   $warnings = "";
+
+   eval "try do { 3 } catch { 4 }" or die $@;
+   is( $warnings, "", 'no warnings when :experimental(try_value) is enabled' );
 }
 
 done_testing;
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to