This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: close/unopened warnings
[perl5.git] / pod / perldelta.pod
index 0b9a3f3..36189a2 100644 (file)
@@ -65,6 +65,10 @@ standard, are now always legal internally.  But inputting or outputting
 them will work the same as for the non-legal Unicode code points, as the
 Unicode standard says they are illegal for "open interchange".
 
+=head2 Regular expression debugging output improvement
+
+Regular expression debugging output (turned on by C<use re 'debug';>) now
+uses hexadecimal when escaping non-ASCII characters, instead of octal.
 
 =head1 Security
 
@@ -124,7 +128,7 @@ cribbed.
 
 =item *
 
-L<CPAN::Meta::YAML> 0.002 has been added as a dual-life module.  It supports a
+L<CPAN::Meta::YAML> 0.003 has been added as a dual-life module.  It supports a
 subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files
 included with CPAN distributions or generated by the module installation
 toolchain. It should not be used for any other general YAML parsing or
@@ -245,6 +249,14 @@ C<Term::UI> has been upgraded from version 0.20 to 0.24
 
 =item *
 
+C<Thread::Queue> has been upgraded from version 2.11 to 2.12.
+
+=item *
+
+C<Thread::Semaphore> has been upgraded from version 2.11 to 2.12.
+
+=item *
+
 C<threads> has been upgraded from version 1.81_03 to 1.82
 
 =item *
@@ -290,13 +302,13 @@ XXX Changes which significantly change existing files in F<pod/> go here.
 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
 section.
 
-=head3 L<XXX>
+=head3 L<perlfunc>
 
 =over 4
 
 =item *
 
-XXX Description of the change here
+It has now been documented that C<ord> returns 0 for an empty string.
 
 =back
 
@@ -483,6 +495,12 @@ three static in-line functions for accessing the information:
 C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>,
 which are defined in the places where the orginal flags were.
 
+=item *
+
+A new option has been added to C<pv_escape> to dump all characters above
+ASCII in hexadecimal. Before, one could get all characters as hexadecimal
+or the Latin1 non-ASCII as octal
+
 =back
 
 =head1 Selected Bug Fixes
@@ -508,6 +526,20 @@ L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
 L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
 L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
 
+=item *
+
+Sometimes magic (ties, tainted, etc.) attached to variables could cause an
+object to last longer than it should, or cause a crash if a tied variable
+were freed from within a tie method. These have been fixed
+L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
+
+=item *
+
+Most I/O functions were not warning for unopened handles unless the
+'closed' and 'unopened' warnings categories were both enabled. Now only
+C<use warnings 'unopened'> is necessary to trigger these warnings (as was
+always meant to be the case.
+
 =back
 
 =head1 Known Problems
@@ -588,12 +620,6 @@ It hasn't yet been deduped with the entries that _are_ in the perldelta.
 
     Remove Mac OS classic code from numerous places throughout the core
 
-commit c0395286602760bd9b6d761786177bee69f9b3f5
-Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
-Date:   Wed Jan 19 10:27:27 2011 +0000
-
-    Update Log-Message-Simple to CPAN version 0.08
-
 commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e
 Author: Leon Timmermans <fawaka@gmail.com>
 Date:   Tue Jan 18 16:40:07 2011 +0100
@@ -1262,12 +1288,6 @@ Date:   Sun Jan 2 14:33:16 2011 -0800
     defined. Neither the dtrace binary on OS X nor SystemTap's dtrace
     compatibility layer accept the -G option.)
 
-commit 42467a219c70177fc2004ed9b73d6c3db59dba5c
-Author: David Golden <dagolden@cpan.org>
-Date:   Sun Jan 2 17:34:44 2011 -0500
-
-    Update CPAN::Meta::YAML to 0.003
-
 commit 9426e1a55981168c83a030df9bce5e0b46586581
 Author: David Mitchell <davem@iabyn.com>
 Date:   Sun Jan 2 19:38:30 2011 +0000
@@ -1301,91 +1321,6 @@ Date:   Sat Jan 1 10:37:04 2011 +0000
 
     Update Encode to CPAN version 2.42
 
-
-commit fbcda526a9bbe2ee1302d6f4507b07f83661fc0d
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Thu Dec 30 17:30:24 2010 +0000
-
-    Most socket ops weren't warning for unopened handles unless 'closed' was enabled
-
-    They were checking that category 'closed' was enabled for warnings before
-    calling report_evil_fh(), which in turn was (correctly) checking category
-    'unopened'.
-commit c521cf7c8af1697e5efd8ce3ad75ed00606db13b
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Thu Dec 30 16:52:22 2010 +0000
-
-    pp_leavewrite wasn't warning for unopened handles unless 'closed' was enabled.
-
-    It was checking that category 'closed' was enabled for warnings before calling
-    report_evil_fh(), which in turn was (correctly) checking category 'unopened'.
-
-commit 8985fe98dcc5c0af2fadeac15dfbc13f553ee7fc
-Author: David Mitchell <davem@iabyn.com>
-Date:   Thu Dec 30 10:32:44 2010 +0000
-
-    Better handling of magic methods freeing the SV
-
-    This is a fix for RT #81230 (and more). Currently, mg_get() works around
-    the case where the called magic (e.g. FETCH) frees the magic SV. It does
-    this by unconditionally pushing the SV on the tmps stack before invoking
-    the method.
-
-    There are two issues with this. Firstly, it may artificially extend the
-    life of the SV. This was the root of the problem with #81230. There, the
-    DB_File code, under -T, created a tainted tied object. Accessing the
-    object (within FETCH as it happens), caused mg_get() to be invoked on the
-    object (due to the taint magic), and thus extend the life of the object.
-    This then caused c<untie %h if $h{k}> to give the warning
-        untie attempted while 1 inner references still exist.
-    This only became noticeable after efaf36747029c85b4d8825318cb4d485a0bb350e,
-    which stopped wrapping magic method calls in SAVETMPS/FREETMPS.
-
-    The second issue issue that this protection only applies to mg_get();
-    functions like mg_set() can still segfault if the SV is deleted.
-
-    This commit fixes both problems as follows:
-
-    First, the protection mechanism is moved out of mg_get() and into
-    save_magic() / restore_magic(), so that it protects more things.
-    Secondly, the protection is now:
-
-    * in save_magic(), SvREFCNT_inc() the SV, thus protecting it from being
-      freed during FETCH (or whatever)
-
-    * in restore_magic(), SvREFCNT_dec() the SV, undoing the protection
-      without extending the life of the SV, *except* if the refcount is
-      1 (ie FETCH tried to free it), then push it on the mortals stack
-      to extend it life a bit so our callers wont choke on it.
-
-
-commit e8a07a125ebebaf06dc890127439c7461a063b35
-Author: David Golden <dagolden@cpan.org>
-Date:   Mon Dec 27 14:50:31 2010 -0500
-
-    Add CPAN::Meta::YAML as a dual-life core module
-
-commit 6fae7aa4cab68dd6bb59af7f22c85e77eb8a1b0c
-Author: Zsbán Ambrus <ambrus@math.bme.hu>
-Date:   Sun Dec 26 18:10:57 2010 -0800
-
-    [perl #81016] Document ord("")
-
-    The following patch clarifies what ord("") does in pod/perlfunc.pod.
-
-    From the current documentation, it's not documented what it does, and one
-    could guess several different things: returns zero, returns undef, returns
-    zero with a warning, returns undef with a warning, dies.  (There's precedent
-    for dying: some BASIC implementations give an error if you ask for ASC("")
-    -- here ASC is their equivalent of our ord function.)
-
-commit 23e2fda90bc3d33c854bd36de712a45aca7a7711
-Author: Jerry D. Hedden <jdhedden@cpan.org>
-Date:   Fri Dec 24 12:53:28 2010 -0500
-
-    Upgrade to Thread::Queue 2.12
-    Upgrade to Thread::Semaphore 2.12
-
 commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4
 Author: David Golden <dagolden@cpan.org>
 Date:   Mon Dec 13 17:36:33 2010 -0500
@@ -1403,32 +1338,4 @@ Date:   Mon Dec 13 17:36:33 2010 -0500
 
     I see this change as the first step towards future improvements.
 
-commit 0b76a1aba72393931944e93dffe81e1937ff3ac4
-Author: Jerry D. Hedden <jdhedden@cpan.org>
-Date:   Fri Dec 24 22:29:14 2010 +0000
-
-    [PATCH] Upgrade to threads::shared 1.36
-    [PATCH] Upgrade to threads 1.82
-
-commit c89df6cf6f70d6460ca3fec9d465e5e6e17fb3a7
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Sun Dec 19 11:08:47 2010 -0700
-
-    Change regexes to debug dump non-ASCII as hex.
-
-    instead of the less familiar octal for larger values.  Perhaps they
-    should actually print the actual character, but this is far easier than
-    the previous to understand.
-
-commit 681f01c2a5ff0846090d78599b3d4caeb93fda26
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Sun Dec 19 11:00:49 2010 -0700
-
-    pv_escape: Add option to dump all non-ascii as hex
-
-    This patch adds an option to pv_escape() to dump all characters above ASCII
-    in hex.  Before, you could get all chars as hex or the Latin1 non-ASCII
-    as octal, whereas the typical values for these that people think in are
-    given in hex.
-
 =cut