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
-
Cherrypick candidate for 5.12.2
by Jerry D. Hedden