In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/80f78131dd30483862380a927f70b00e4b9a288b?hp=428744c7579851ddf8435ff354febb87c4100545>

- Log -----------------------------------------------------------------
commit 80f78131dd30483862380a927f70b00e4b9a288b
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 00:38:39 2013 -0700

    diagnostics.t: Adjust tests
    
    They are sensitive to changes in perldiag.pod

M       lib/diagnostics.t

commit 32e006acda977717e27d728a7f2b3a5f56b28409
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 00:27:00 2013 -0700

    perlvar: Don’t mention dev version
    
    Also, use the v convention used elsewhere in the same doc.

M       pod/perlvar.pod

commit 31a15f3623c7573ebe763f29efd34f380f903c32
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 00:25:04 2013 -0700

    checkAUTHORS.pl: Add alt addr for Kent Fredric

M       Porting/checkAUTHORS.pl

commit f2b58637540209598dcb77ca7075309da337f4ad
Author: Kent Fredric <[email protected]>
Date:   Sun Dec 16 02:13:39 2012 +1300

    pod/perl5180delta.pod: Clarify %ENV Changes
    
    Clarifies the slightly vague ( and  possibly wrong ) explanation for the 
change in %ENV behaviour.

M       pod/perl5180delta.pod

commit a5effbbc577ce192c131f5cd79c2af95064ac714
Author: Kent Fredric <[email protected]>
Date:   Sat Dec 15 23:21:29 2012 +1300

    pod/perlvar.pod: Document changes to %ENV
    
    Including Historical context, and relevance to IPC.
    
    reformatted with Jim Keenans Suggestions

M       pod/perlvar.pod

commit 0008e9272b6c09eb4be3d94d5a360b989f72ba3a
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 00:13:20 2013 -0700

    diag.t: Handle ckWARN2reg_d properly

M       t/porting/diag.t

commit 6014bd264e4e1253b68f136e9decdbdb7f1ddfdb
Author: James E Keenan <[email protected]>
Date:   Sat Feb 16 19:58:26 2013 -0500

    Move folding rules warning from 'D' to 'S'.
    
    For RT #89648

M       pod/perldiag.pod

commit b23eb183132149ee555dc8b3584ec72b177e747e
Author: Father Chrysostomos <[email protected]>
Date:   Sat Jul 13 00:07:20 2013 -0700

    [perl #89648] Remove ‘Perl folding rules...’ from dep cat
    
    This warning message:
    
    Perl folding rules are not up-to-date for 0x%x; please use the perlbug 
utility to report;
    
    is in both ‘regexp’ and ‘deprecated’ warning categories. It is under
    deprecated warnings so that it has a better chance of showing up.
    
    I think this logic is faulty, because it’s not the deprecatedness that
    makes a warning show up by default, but its defaultness; i.e., whether
    Perl_ck_warner_d is used instead of Perl_ck_warner. The wide character
    warning, for instance, is not under ‘deprecated’, but only ‘utf8’. 
Yet
    it’s a default warning marked as S in perldiag. I think this message
    should be treated similarly (and listed with (S regex)).
    
    The next commit will update perldiag accordingly.

M       regcomp.c
-----------------------------------------------------------------------

Summary of changes:
 Porting/checkAUTHORS.pl |  1 +
 lib/diagnostics.t       |  2 +-
 pod/perl5180delta.pod   | 16 ++++++++++------
 pod/perldiag.pod        | 10 ++++------
 pod/perlvar.pod         | 21 +++++++++++++++++++++
 regcomp.c               |  6 +++---
 t/porting/diag.t        |  1 +
 7 files changed, 41 insertions(+), 16 deletions(-)

diff --git a/Porting/checkAUTHORS.pl b/Porting/checkAUTHORS.pl
index c1e108b..a2d60c9 100755
--- a/Porting/checkAUTHORS.pl
+++ b/Porting/checkAUTHORS.pl
@@ -685,6 +685,7 @@ kane\100dwim.org                        kane\100xs4all.net
 keith.s.thompson\100gmail.com           kst\100mib.org
 ken\100mathforum.org                    kenahoo\100gmail.com
 +                                       ken.williams\100thomsonreuters.com
+kentfredric\100gmail.com                kentnl\100cpan.org
 kroepke\100dolphin-services.de          kay\100dolphin-services.de
 kst\100mib.org                          kst\100cts.com
 +                                       kst\100SDSC.EDU
diff --git a/lib/diagnostics.t b/lib/diagnostics.t
index 206d2a4..497caaa 100644
--- a/lib/diagnostics.t
+++ b/lib/diagnostics.t
@@ -109,7 +109,7 @@ seek STDERR, 0,0;
 $warning = '';
 warn "Perl folding rules are not up-to-date for 0xA; please use the perlbug 
utility to report; in regex; marked by <-- HERE in m/\ <-- HERE q/";
 like $warning,
-    qr/regular expression folding rules/s,
+    qr/You used a regular expression with case-insensitive matching/s,
     '; works at the end of entries in perldiag.pod';
 
 # Differences in spaces in warnings (Why not be nice and accept them?)
diff --git a/pod/perl5180delta.pod b/pod/perl5180delta.pod
index 66439413..86c4289 100644
--- a/pod/perl5180delta.pod
+++ b/pod/perl5180delta.pod
@@ -534,12 +534,16 @@ in L<perlsub/Lexical Subroutines>.
 
 =head2 Defined values stored in environment are forced to byte strings
 
-A value stored in an environment variable has always been stringified.  In this
-release, it is converted to be only a byte string.  First, it is forced to be
-only a string.  Then if the string is utf8 and the equivalent of
-C<utf8::downgrade()> works, that result is used; otherwise, the equivalent of
-C<utf8::encode()> is used, and a warning is issued about wide characters
-(L</Diagnostics>).
+A value stored in an environment variable has always been stringified when
+inherited by child processes.
+
+In this release, when assigning to C<%ENV>, values are immediately stringified,
+and converted to be only a byte string.
+
+First, it is forced to be a only a string.  Then if the string is utf8 and the
+equivalent of C<utf8::downgrade()> works, that result is used; otherwise, the
+equivalent of C<utf8::encode()> is used, and a warning is issued about wide
+characters (L</Diagnostics>).
 
 =head2 C<require> dies for unreadable files
 
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 2d31a09..9aca0db 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -4020,12 +4020,10 @@ that a method requires a package that has not been 
loaded.
 =item Perl folding rules are not up-to-date for 0x%X; please use the perlbug 
 utility to report; in regex; marked by <-- HERE in m/%s/
 
-(D regexp, deprecated) You used a regular expression with
-case-insensitive matching, and there is a bug in Perl in which the
-built-in regular expression folding rules are not accurate.  This
-may lead to incorrect results.  Please report this as a bug using the
-L<perlbug> utility.  (This message is marked deprecated, so that it by
-default will be turned-on.)
+(S regexp) You used a regular expression with case-insensitive matching,
+and there is a bug in Perl in which the built-in regular expression
+folding rules are not accurate.  This may lead to incorrect results.
+Please report this as a bug using the L<perlbug> utility.
 
 =item Perl_my_%s() not available
 
diff --git a/pod/perlvar.pod b/pod/perlvar.pod
index 4bbfba2..7cc0a18 100644
--- a/pod/perlvar.pod
+++ b/pod/perlvar.pod
@@ -410,6 +410,27 @@ The hash C<%ENV> contains your current environment.  
Setting a
 value in C<ENV> changes the environment for any child processes
 you subsequently C<fork()> off.
 
+As of v5.18.0, both keys and values stored in C<%ENV> are stringified.
+
+    my $foo = 1;
+    $ENV{'bar'} = \$foo;
+    if( ref $ENV{'bar'} ) {
+        say "Pre 5.18.0 Behaviour";
+    } else {
+        say "Post 5.18.0 Behaviour";
+    }
+
+Previously, only child processes received stringified values:
+
+    my $foo = 1;
+    $ENV{'bar'} = \$foo;
+
+    # Always printed 'non ref'
+    system($^X,'-e',q/print ( ref $ENV{'bar'}  ? 'ref' : 'non ref' ) /);
+
+This happens because you can't really share arbitrary data structures with
+foreign processes.
+
 =item $SYSTEM_FD_MAX
 
 =item $^F
diff --git a/regcomp.c b/regcomp.c
index 4885c0b..e150654 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -574,9 +574,9 @@ static const scan_data_t zero_scan_data =
            (int)offset, RExC_precomp, RExC_precomp + offset);          \
 } STMT_END
 
-#define        ckWARN2regdep(loc,m, a1) STMT_START {                           
\
+#define        ckWARN2reg_d(loc,m, a1) STMT_START {                            
\
     const IV offset = loc - RExC_precomp;                              \
-    Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED, WARN_REGEXP),    \
+    Perl_ck_warner_d(aTHX_ packWARN(WARN_REGEXP),                      \
            m REPORT_LOCATION,                                          \
            a1, (int)offset, RExC_precomp, RExC_precomp + offset);      \
 } STMT_END
@@ -13562,7 +13562,7 @@ parseit:
                             default:
                                 /* Use deprecated warning to increase the
                                  * chances of this being output */
-                                ckWARN2regdep(RExC_parse, "Perl folding rules 
are not up-to-date for 0x%"UVXf"; please use the perlbug utility to report;", 
j);
+                                ckWARN2reg_d(RExC_parse, "Perl folding rules 
are not up-to-date for 0x%"UVXf"; please use the perlbug utility to report;", 
j);
                                 break;
                         }
                     }
diff --git a/t/porting/diag.t b/t/porting/diag.t
index 69d9363..ce2a0e8 100644
--- a/t/porting/diag.t
+++ b/t/porting/diag.t
@@ -306,6 +306,7 @@ sub check_file {
                  :  $routine =~ /warner/       ? '[WDS]'
                  :  $routine =~ /warn/         ?  'S'
                  :  $routine =~ /ckWARN.*dep/  ?  'D'
+                 :  $routine =~ /ckWARN\d*reg_d/? 'S'
                  :  $routine =~ /ckWARN\d*reg/ ?  'W'
                  :  $routine =~ /vWARN\d/      ? '[WDS]'
                  :                             '[PFX]';

--
Perl5 Master Repository

Reply via email to