Integrate with perlio. (No changes, but that's okay.)
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
index dfb71f9..9ac2964 100644 (file)
@@ -300,11 +300,19 @@ the child process.
 
 =back
 
-=head2 Signals Are Now Safe
+=head2 Safe Signals
 
 Perl used to be fragile in that signals arriving at inopportune moments
 could corrupt Perl's internal state.  Now Perl postpones handling of
-signals until it's safe.
+signals until it's safe (between opcodes).
+
+This change may have surprising side effects because signals no more
+interrupt Perl instantly.  Perl will now first finish whatever it was
+doing, like finishing an internal operation (like sort()) or an
+external operation (like an I/O operation), and only then look at any
+arrived signals (and before starting the next operation).  No more corrupt
+internal state since the current operation is always finished first,
+but the signal may take more time to get heard.
 
 =head2 Unicode Overhaul
 
@@ -457,6 +465,22 @@ simply B<between digits>.
 
 =item *
 
+C<Attribute::Handlers> allows a class to define attribute handlers.
+
+    package MyPack;
+    use Attribute::Handlers;
+    sub Wolf :ATTR(SCALAR) { print "howl!\n" }
+
+    # later, in some package using or inheriting from MyPack...
+
+    my MyPack $Fluffy : Wolf; # the attribute handler Wolf will be called
+
+Both variables and routines can have attribute handlers.  Handlers can
+be specific to type (SCALAR, ARRAY, HASH, or CODE), or specific to the
+exact compilation phase (BEGIN, CHECK, INIT, or END).
+
+=item *
+
 B<B::Concise> is a new compiler backend for walking the Perl syntax
 tree, printing concise info about ops, from Stephen McCamant.  The
 output is highly customisable.  See L<B::Concise>.