develooper Front page | perl.perl5.porters | Postings from August 2010

Cherrypick candidate for 5.12.2

From:
Jerry D. Hedden
Date:
August 24, 2010 08:54
Subject:
Cherrypick candidate for 5.12.2
Message ID:
AANLkTimo0v57zYhg2gr9ppgt8y-z8=qi2GtRWxpjC5n8@mail.gmail.com
The commit below to maint-5.12 brings in a couple of build warnings:

pp_pack.c: In function `S_unpack_rec':
pp_pack.c:1228: warning: 'sv' might be used uninitialized in this function
pp_pack.c:1561: warning: 'str' might be used uninitialized in this function

Commit 3297d27d658a6691c429e496bd2a05fe04eda9d7 specifically addresses
these so should be cherry-picked to go to maint-5.12, too.

commit 3297d27d658a6691c429e496bd2a05fe04eda9d7
Author: Vincent Pit <perl@profvince.com>
Date:   Tue May 4 10:43:07 2010 +0200

   Silence a couple of false positive "may be used uninitialized" gcc warnings

On Sat, Jul 31, 2010 at 14:12, Steffen Mueller <smueller@cpan.org> wrote:
> In perl.git, the branch maint-5.12 has been updated
>
> <http://perl5.git.perl.org/perl.git/commitdiff/a812667ac70fa062909d32a87ad9c756098c49bf?hp=8b81de737b11be97cfb1c5d0fdb93573cc3f5002>
>
> - Log -----------------------------------------------------------------
> commit a812667ac70fa062909d32a87ad9c756098c49bf
> Author: Steffen Mueller <smueller@cpan.org>
> Date:   Sat Jul 31 20:10:40 2010 +0200
>
>    Fix POD link
>
>    Fixes a bad link and associated test failure that were introduced by
>    yours truly when cherry-picking 1aae995a5295b9fa1dfabb00e962a95b53040f18.
>
> M       pod/perlrepository.pod
>
> commit 8adc9ad6b056cde008af18f8d14156424a2b713c
> Author: Curtis Jewell <perl@csjewell.fastmail.us>
> Date:   Mon May 17 01:50:19 2010 -0600
>
>    Update perlhist.pod for 5.10.1-5.12.1
>
> M       pod/perlhist.pod
>
> commit 67728a7f37c3d553532a19faf3b69f0f75e1b408
> Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
> Date:   Sat May 8 12:57:00 2010 +0100
>
>    Backport patch from CPANPLUS-0.9004 to cpanp-run-perl
>
>      This resolves RT #55964 and RT #57106 relating to the failure to
>      install distributions that use Module::Install::DSL
>
>      The addition of a BEGIN {} block to cpanp-run-perl resolves the
>      issue.
>
> M       cpan/CPANPLUS/bin/cpanp-run-perl
>
> commit 1034633874902704c77f920090df30c42cfc8216
> Author: Tony Cook <tony@develop-help.com>
> Date:   Fri Apr 23 19:28:35 2010 +1000
>
>    RT#73814 - unpack() didn't handle scalar context correctly for %32H and %32u
>
>    split() would crash because the third item on the stack wasn't the
>    regular expression it expected.  unpack("%2H", ...) would return both
>    the unpacked result and the checksum on the stack, similarly for
>    unpack("%2u", ...).
>
> M       pp_pack.c
> M       t/op/pack.t
> -----------------------------------------------------------------------
>
> Summary of changes:
>  cpan/CPANPLUS/bin/cpanp-run-perl |    3 +-
>  pod/perlhist.pod                 |  184 +++++++++++++++++++------------------
>  pod/perlrepository.pod           |    2 +-
>  pp_pack.c                        |   33 +++++---
>  t/op/pack.t                      |   10 ++-
>  5 files changed, 127 insertions(+), 105 deletions(-)
>
> diff --git a/cpan/CPANPLUS/bin/cpanp-run-perl b/cpan/CPANPLUS/bin/cpanp-run-perl
> index 34e62bd..b6b4dc6 100644
> --- a/cpan/CPANPLUS/bin/cpanp-run-perl
> +++ b/cpan/CPANPLUS/bin/cpanp-run-perl
> @@ -1,10 +1,11 @@
>  use strict;
> +BEGIN {
>  my $old = select STDERR; $|++;  # turn on autoflush
>  select $old;             $|++;  # turn on autoflush
>  $0 = shift(@ARGV);              # rename the script
>  my $rv = do($0);                # execute the file
>  die $@ if $@;                   # die on parse/execute error
> -
> +}
>  ### XXX 'do' returns last statement evaluated, which may be
>  ### undef as well. So don't die in that case.
>  #die $! if not defined $rv;      # die on execute error
> diff --git a/pod/perlhist.pod b/pod/perlhist.pod
> index 4a78a3c..df1652e 100644
> --- a/pod/perlhist.pod
> +++ b/pod/perlhist.pod
> @@ -433,68 +433,71 @@ explained below.
>  release        core       lib         ext        t         doc
>  ======================================================================
>
> - 1.000           212  29      -   -      -   -     38   51     62   3
> - 1.014           219  29      -   -      -   -     39   52     68   4
> - 2.000           309  31      2   3      -   -     55   57     92   4
> - 2.001           312  31      2   3      -   -     55   57     94   4
> - 3.000           508  36     24  11      -   -     79   73    156   5
> - 3.044           645  37     61  20      -   -     90   74    190   6
> - 4.000           635  37     59  20      -   -     91   75    198   4
> - 4.019           680  37     85  29      -   -     98   76    199   4
> - 4.036           709  37     89  30      -   -     98   76    208   5
> - 5.000alpha2     785  50    114  32      -   -    112   86    209   5
> - 5.000alpha3     801  50    117  33      -   -    121   87    209   5
> - 5.000alpha9    1022  56    149  43    116  29    125   90    217   6
> - 5.000a12h       978  49    140  49    205  46    152   97    228   9
> - 5.000b3h       1035  53    232  70    216  38    162   94    218  21
> - 5.000          1038  53    250  76    216  38    154   92    536  62
> - 5.001m         1071  54    388  82    240  38    159   95    544  29
> - 5.002          1121  54    661 101    287  43    155   94    847  35
> - 5.003          1129  54    680 102    291  43    166  100    853  35
> - 5.003_07       1231  60    748 106    396  53    213  137    976  39
> - 5.004          1351  60   1230 136    408  51    355  161   1587  55
> - 5.004_01       1356  60   1258 138    410  51    358  161   1587  55
> - 5.004_04       1375  60   1294 139    413  51    394  162   1629  55
> - 5.004_05       1463  60   1435 150    394  50    445  175   1855  59
> - 5.004_51       1401  61   1260 140    413  53    358  162   1594  56
> - 5.004_53       1422  62   1295 141    438  70    394  162   1637  56
> - 5.004_56       1501  66   1301 140    447  74    408  165   1648  57
> - 5.004_59       1555  72   1317 142    448  74    424  171   1678  58
> - 5.004_62       1602  77   1327 144    629  92    428  173   1674  58
> - 5.004_65       1626  77   1358 146    615  92    446  179   1698  60
> - 5.004_68       1856  74   1382 152    619  92    463  187   1784  60
> - 5.004_70       1863  75   1456 154    675  92    494  194   1809  60
> - 5.004_73       1874  76   1467 152    762 102    506  196   1883  61
> - 5.004_75       1877  76   1467 152    770 103    508  196   1896  62
> - 5.005          1896  76   1469 152    795 103    509  197   1945  63
> - 5.005_03       1936  77   1541 153    813 104    551  201   2176  72
> - 5.005_50       1969  78   1842 301    795 103    514  198   1948  63
> - 5.005_53       1999  79   1885 303    806 104    602  224   2002  67
> - 5.005_56       2086  79   1970 307    866 113    672  238   2221  75
> - 5.6.0          2820  79   2626 364   1096 129    863  280   2840  93
> - 5.6.1          2946  78   2921 430   1171 132   1024  304   3330 102
> - 5.6.2          2947  78   3143 451   1247 127   1303  387   3406 102
> - 5.7.0          2977  80   2801 425   1250 132    975  307   3206 100
> - 5.7.1          3351  84   3442 455   1944 167   1334  357   3698 124
> - 5.7.2          3491  87   4858 618   3290 298   1598  449   3910 139
> - 5.7.3          3299  85   4295 537   2196 300   2176  626   4171 120
> - 5.8.0          3489  87   4533 585   2437 331   2588  726   4368 125
> - 5.8.1          3674  90   5104 623   2604 353   2983  836   4625 134
> - 5.8.2          3633  90   5111 623   2623 357   3019  848   4634 135
> - 5.8.3          3625  90   5141 624   2660 363   3083  869   4669 136
> - 5.8.4          3653  90   5170 634   2684 368   3148  885   4689 137
> - 5.8.5          3664  90   4260 303   2707 369   3208  898   4689 138
> - 5.8.6          3690  90   4271 303   3141 396   3411  925   4709 139
> - 5.8.7          3788  90   4322 307   3297 401   3485  964   4744 141
> - 5.8.8          3895  90   4357 314   3409 431   3622 1017   4979 144
> - 5.8.9          4132  93   5508 330   3826 529   4364 1234   5348 152
> - 5.9.0          3657  90   4951 626   2603 354   3011  841   4609 135
> - 5.9.1          3580  90   5196 634   2665 367   3186  889   4725 138
> - 5.9.2          3863  90   4654 312   3283 403   3551  973   4800 142
> - 5.9.3          4096  91   5318 381   4806 597   4272 1214   5139 147
> - 5.9.4          4393  94   5718 415   4578 642   4646 1310   5335 153
> - 5.9.5          4681  96   6849 479   4827 671   5155 1490   5572 159
> - 5.10.0         4710  97   7050 486   4899 673   5275 1503   5673 160
> + 1.000           212  29      -   -      -    -     38   51     62   3
> + 1.014           219  29      -   -      -    -     39   52     68   4
> + 2.000           309  31      2   3      -    -     55   57     92   4
> + 2.001           312  31      2   3      -    -     55   57     94   4
> + 3.000           508  36     24  11      -    -     79   73    156   5
> + 3.044           645  37     61  20      -    -     90   74    190   6
> + 4.000           635  37     59  20      -    -     91   75    198   4
> + 4.019           680  37     85  29      -    -     98   76    199   4
> + 4.036           709  37     89  30      -    -     98   76    208   5
> + 5.000alpha2     785  50    114  32      -    -    112   86    209   5
> + 5.000alpha3     801  50    117  33      -    -    121   87    209   5
> + 5.000alpha9    1022  56    149  43    116   29    125   90    217   6
> + 5.000a12h       978  49    140  49    205   46    152   97    228   9
> + 5.000b3h       1035  53    232  70    216   38    162   94    218  21
> + 5.000          1038  53    250  76    216   38    154   92    536  62
> + 5.001m         1071  54    388  82    240   38    159   95    544  29
> + 5.002          1121  54    661 101    287   43    155   94    847  35
> + 5.003          1129  54    680 102    291   43    166  100    853  35
> + 5.003_07       1231  60    748 106    396   53    213  137    976  39
> + 5.004          1351  60   1230 136    408   51    355  161   1587  55
> + 5.004_01       1356  60   1258 138    410   51    358  161   1587  55
> + 5.004_04       1375  60   1294 139    413   51    394  162   1629  55
> + 5.004_05       1463  60   1435 150    394   50    445  175   1855  59
> + 5.004_51       1401  61   1260 140    413   53    358  162   1594  56
> + 5.004_53       1422  62   1295 141    438   70    394  162   1637  56
> + 5.004_56       1501  66   1301 140    447   74    408  165   1648  57
> + 5.004_59       1555  72   1317 142    448   74    424  171   1678  58
> + 5.004_62       1602  77   1327 144    629   92    428  173   1674  58
> + 5.004_65       1626  77   1358 146    615   92    446  179   1698  60
> + 5.004_68       1856  74   1382 152    619   92    463  187   1784  60
> + 5.004_70       1863  75   1456 154    675   92    494  194   1809  60
> + 5.004_73       1874  76   1467 152    762  102    506  196   1883  61
> + 5.004_75       1877  76   1467 152    770  103    508  196   1896  62
> + 5.005          1896  76   1469 152    795  103    509  197   1945  63
> + 5.005_03       1936  77   1541 153    813  104    551  201   2176  72
> + 5.005_50       1969  78   1842 301    795  103    514  198   1948  63
> + 5.005_53       1999  79   1885 303    806  104    602  224   2002  67
> + 5.005_56       2086  79   1970 307    866  113    672  238   2221  75
> + 5.6.0          2820  79   2626 364   1096  129    863  280   2840  93
> + 5.6.1          2946  78   2921 430   1171  132   1024  304   3330 102
> + 5.6.2          2947  78   3143 451   1247  127   1303  387   3406 102
> + 5.7.0          2977  80   2801 425   1250  132    975  307   3206 100
> + 5.7.1          3351  84   3442 455   1944  167   1334  357   3698 124
> + 5.7.2          3491  87   4858 618   3290  298   1598  449   3910 139
> + 5.7.3          3299  85   4295 537   2196  300   2176  626   4171 120
> + 5.8.0          3489  87   4533 585   2437  331   2588  726   4368 125
> + 5.8.1          3674  90   5104 623   2604  353   2983  836   4625 134
> + 5.8.2          3633  90   5111 623   2623  357   3019  848   4634 135
> + 5.8.3          3625  90   5141 624   2660  363   3083  869   4669 136
> + 5.8.4          3653  90   5170 634   2684  368   3148  885   4689 137
> + 5.8.5          3664  90   4260 303   2707  369   3208  898   4689 138
> + 5.8.6          3690  90   4271 303   3141  396   3411  925   4709 139
> + 5.8.7          3788  90   4322 307   3297  401   3485  964   4744 141
> + 5.8.8          3895  90   4357 314   3409  431   3622 1017   4979 144
> + 5.8.9          4132  93   5508 330   3826  529   4364 1234   5348 152
> + 5.9.0          3657  90   4951 626   2603  354   3011  841   4609 135
> + 5.9.1          3580  90   5196 634   2665  367   3186  889   4725 138
> + 5.9.2          3863  90   4654 312   3283  403   3551  973   4800 142
> + 5.9.3          4096  91   5318 381   4806  597   4272 1214   5139 147
> + 5.9.4          4393  94   5718 415   4578  642   4646 1310   5335 153
> + 5.9.5          4681  96   6849 479   4827  671   5155 1490   5572 159
> + 5.10.0         4710  97   7050 486   4899  673   5275 1503   5673 160
> + 5.10.1         4858  98   7440 519   6195  921   6147 1751   5151 163
> + 5.12.0         4999 100   1146 121  15227 2176   6400 1843   5342 168
> + 5.12.1         5000 100   1146 121  15283 2178   6407 1846   5354 169
>
>  The "core"..."doc" mean the following files from the Perl source code
>  distribution.  The glob notation ** means recursively, (.) means
> @@ -502,7 +505,8 @@ regular files.
>
>  core   *.[hcy]
>  lib    lib/**/*.p[ml]
> - ext    ext/**/*.{[hcyt],xs,pm}
> + ext    ext/**/*.{[hcyt],xs,pm} (for -5.10.1) or
> +        {dist,ext,cpan}/**/*.{[hcyt],xs,pm} (for 5.12.0-)
>  t      t/**/*(.) (for 1-5.005_56) or **/*.t (for 5.6.0-5.7.3)
>  doc    {README*,INSTALL,*[_.]man{,.?},pod/**/*.pod}
>
> @@ -739,33 +743,33 @@ the Perl source distribution for somewhat more selected releases.
>
>  ======================================================================
>
> -                  5.9.5     5.10.0
> -
> - apollo          8    3     8    3
> - beos            8    4     8    4
> - Configure     518    1   518    1
> - Cross         122   15   122   15
> - djgpp          21    7    21    7
> - emacs         329    4   406    4
> - epoc           34    8    35    8
> - h2pl           24   15    24   15
> - hints         377   98   381   98
> - mad           182    8   182    8
> - mint           11    9    11    9
> - mpeix          49    6    49    6
> - NetWare       489   61   489   61
> - os2           552   70   552   70
> - plan9         324   17   324   17
> - Porting       627   40   632   40
> - qnx             5    3     5    4
> - symbian       300   54   300   54
> - utils         260   26   264   27
> - uts            12    3    12    3
> - vmesa          25    4    25    4
> - vms           690   32   722   32
> - vos            19    8    19    8
> - win32        1482   68  1485   68
> - x2p           349   19   349   19
> +                  5.9.5     5.10.0     5.10.1     5.12.0     5.12.1
> +
> + apollo          8    3     8    3     0    3     0    3     0    3
> + beos            8    4     8    4     4    4     4    4     4    4
> + Configure     518    1   518    1   533    1   536    1   536    1
> + Cross         122   15   122   15   119   15   118   15   118   15
> + djgpp          21    7    21    7    17    7    17    7    17    7
> + emacs         329    4   406    4   402    4   402    4   402    4
> + epoc           34    8    35    8    31    8    31    8    31    8
> + h2pl           24   15    24   15    12   15    12   15    12   15
> + hints         377   98   381   98   385  100   368   97   368   97
> + mad           182    8   182    8   174    8   174    8   174    8
> + mint           11    9    11    9     3    9     -    -     -    -
> + mpeix          49    6    49    6    45    6    45    6    45    6
> + NetWare       489   61   489   61   465   61   466   61   466   61
> + os2           552   70   552   70   507   70   507   70   507   70
> + plan9         324   17   324   17   316   17   316   17   316   17
> + Porting       627   40   632   40   933   53   749   54   749   54
> + qnx             5    3     5    4     1    4     1    4     1    4
> + symbian       300   54   300   54   290   54   288   54   288   54
> + utils         260   26   264   27   268   27   269   27   269   27
> + uts            12    3    12    3     8    3     8    3     8    3
> + vmesa          25    4    25    4    21    4    21    4    21    4
> + vms           690   32   722   32   693   30   645   18   645   18
> + vos            19    8    19    8    16    8    16    8    16    8
> + win32        1482   68  1485   68  1497   70  1841   73  1841   73
> + x2p           349   19   349   19   345   19   345   19   345   19
>
>  =head2 SELECTED PATCH SIZES
>
> diff --git a/pod/perlrepository.pod b/pod/perlrepository.pod
> index 20b6209..11b2249 100644
> --- a/pod/perlrepository.pod
> +++ b/pod/perlrepository.pod
> @@ -738,7 +738,7 @@ The same patch as above, using github might look like this:
>   % git push origin orange
>
>  The orange branch has been pushed to GitHub, so you should now send an
> -email (see L</Submitting a patch>) with a description of your changes
> +email (see L</SUBMITTING A PATCH>) with a description of your changes
>  and the following information:
>
>   http://github.com/USERNAME/perl/tree/orange
> diff --git a/pp_pack.c b/pp_pack.c
> index 0670548..0ae8afd 100644
> --- a/pp_pack.c
> +++ b/pp_pack.c
> @@ -1562,9 +1562,11 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
>            /* Preliminary length estimate, acceptable for utf8 too */
>            if (howlen == e_star || len > (strend - s) * 2)
>                len = (strend - s) * 2;
> -           sv = sv_2mortal(newSV(len ? len : 1));
> -           SvPOK_on(sv);
> -           str = SvPVX(sv);
> +           if (!checksum) {
> +               sv = sv_2mortal(newSV(len ? len : 1));
> +               SvPOK_on(sv);
> +               str = SvPVX(sv);
> +           }
>            if (datumtype == 'h') {
>                U8 bits = 0;
>                I32 ai32 = len;
> @@ -1574,7 +1576,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
>                        if (s >= strend) break;
>                        bits = uni_to_byte(aTHX_ &s, strend, datumtype);
>                    } else bits = * (U8 *) s++;
> -                   *str++ = PL_hexdigit[bits & 15];
> +                   if (!checksum)
> +                       *str++ = PL_hexdigit[bits & 15];
>                }
>            } else {
>                U8 bits = 0;
> @@ -1585,12 +1588,15 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
>                        if (s >= strend) break;
>                        bits = uni_to_byte(aTHX_ &s, strend, datumtype);
>                    } else bits = *(U8 *) s++;
> -                   *str++ = PL_hexdigit[(bits >> 4) & 15];
> +                   if (!checksum)
> +                       *str++ = PL_hexdigit[(bits >> 4) & 15];
>                }
>            }
> -           *str = '\0';
> -           SvCUR_set(sv, str - SvPVX_const(sv));
> -           XPUSHs(sv);
> +           if (!checksum) {
> +               *str = '\0';
> +               SvCUR_set(sv, str - SvPVX_const(sv));
> +               XPUSHs(sv);
> +           }
>            break;
>        }
>        case 'C':
> @@ -2123,7 +2129,7 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
>            break;
>  #endif
>        case 'u':
> -           {
> +           if (!checksum) {
>                 const STRLEN l = (STRLEN) (strend - s) * 3 / 4;
>                sv = sv_2mortal(newSV(l));
>                if (l) SvPOK_on(sv);
> @@ -2141,7 +2147,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
>                        hunk[0] = (char)((a << 2) | (b >> 4));
>                        hunk[1] = (char)((b << 4) | (c >> 2));
>                        hunk[2] = (char)((c << 6) | d);
> -                       sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
> +                       if (!checksum)
> +                           sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
>                        len -= 3;
>                    }
>                    if (s < strend) {
> @@ -2182,7 +2189,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
>                        hunk[0] = (char)((a << 2) | (b >> 4));
>                        hunk[1] = (char)((b << 4) | (c >> 2));
>                        hunk[2] = (char)((c << 6) | d);
> -                       sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
> +                       if (!checksum)
> +                           sv_catpvn(sv, hunk, (len > 3) ? 3 : len);
>                        len -= 3;
>                    }
>                    if (*s == '\n')
> @@ -2192,7 +2200,8 @@ S_unpack_rec(pTHX_ tempsym_t* symptr, const char *s, const char *strbeg, const c
>                            s += 2;
>                }
>            }
> -           XPUSHs(sv);
> +           if (!checksum)
> +               XPUSHs(sv);
>            break;
>        }
>
> diff --git a/t/op/pack.t b/t/op/pack.t
> index 4b5f9a5..5775caf 100644
> --- a/t/op/pack.t
> +++ b/t/op/pack.t
> @@ -12,7 +12,7 @@ my $no_endianness = $] > 5.009 ? '' :
>  my $no_signedness = $] > 5.009 ? '' :
>   "Signed/unsigned pack modifiers not available on this perl";
>
> -plan tests => 14697;
> +plan tests => 14699;
>
>  use strict;
>  use warnings qw(FATAL all);
> @@ -1985,3 +1985,11 @@ is(unpack('c'), 65, "one-arg unpack (change #18751)"); # defaulting to $_
>     my ($v) = split //, unpack ('(B)*', 'ab');
>     is($v, 0); # Doesn't SEGV :-)
>  }
> +{
> +    #73814
> +    my $x = runperl( prog => 'print split( /,/, unpack(q(%2H*), q(hello world))), qq(\n)' );
> +    is($x, "0\n", "split /a/, unpack('%2H*'...) didn't crash");
> +
> +    my $y = runperl( prog => 'print split( /,/, unpack(q(%32u*), q(#,3,Q)), qq(\n)), qq(\n)' );
> +    is($y, "0\n", "split /a/, unpack('%32u*'...) didn't crash");
> +}
>
> --
> Perl5 Master Repository



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About