Change 33803 by [EMAIL PROTECTED] on 2008/05/10 15:10:17

        Integrate:
        [ 33734]
        Add "safely supporting POSIX SA_SIGINFO" to perltodo, as described in
        the thread starting with
        
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-03/msg00305.html
        
        [ 33748]
        Note about moving modules to ext/
        
        [ 33759]
        Subject: [PATCH] doc patch for perlfunc/split (was: RE: [perl #46073] 
split
        From: Bram <[EMAIL PROTECTED]>
        Date: Sun, 27 Apr 2008 21:36:57 +0200
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33760]
        Subject: [PATCH] doc patch for perlrun -x
        From: Bram <[EMAIL PROTECTED]>
        Date: Sun, 27 Apr 2008 21:13:36 +0200
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33761]
        clarification about @ISA declaration in perlboot.pod
        Patch provided by John Heidemann <[EMAIL PROTECTED]>
        in perlbug #45733.
        
        [ 33797]
        Subject: [perl #53908] perlpodspec typo "Encoding::Supported" 
        From: Kevin Ryde (via RT) <[EMAIL PROTECTED]>
        Date: Thu, 08 May 2008 17:38:00 -0700
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33798]
        Subject: [PATCH] perlunitut link
        From: Ricardo SIGNES <[EMAIL PROTECTED]>
        Date: Fri, 9 May 2008 14:12:31 -0400
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/maint-5.10/perl/pod/perlboot.pod#2 integrate
... //depot/maint-5.10/perl/pod/perlfunc.pod#6 integrate
... //depot/maint-5.10/perl/pod/perlpodspec.pod#2 integrate
... //depot/maint-5.10/perl/pod/perlrun.pod#3 integrate
... //depot/maint-5.10/perl/pod/perltodo.pod#9 integrate
... //depot/maint-5.10/perl/pod/perlunicode.pod#3 integrate

Differences ...

==== //depot/maint-5.10/perl/pod/perlboot.pod#2 (text) ====
Index: perl/pod/perlboot.pod
--- perl/pod/perlboot.pod#1~32694~      2007-12-22 01:23:09.000000000 -0800
+++ perl/pod/perlboot.pod       2008-05-10 08:10:17.000000000 -0700
@@ -253,6 +253,11 @@
 
     @Cow::ISA = qw(Animal);
 
+Or declare it as package global variable:
+
+    package Cow;
+    our @ISA = qw(Animal);
+
 Or allow it as an implicitly named package variable:
 
     package Cow;

==== //depot/maint-5.10/perl/pod/perlfunc.pod#6 (text) ====
Index: perl/pod/perlfunc.pod
--- perl/pod/perlfunc.pod#5~33745~      2008-04-24 20:30:37.000000000 -0700
+++ perl/pod/perlfunc.pod       2008-05-10 08:10:17.000000000 -0700
@@ -5435,7 +5435,7 @@
 matching a null string) will split the value of EXPR into separate
 characters at each point it matches that way.  For example:
 
-    print join(':', split(/ */, 'hi there'));
+    print join(':', split(/ */, 'hi there')), "\n";
 
 produces the output 'h:i:t:h:e:r:e'.
 
@@ -5444,7 +5444,7 @@
 of C<//> to mean "the last successful pattern match".  So, for C<split>,
 the following:
 
-    print join(':', split(//, 'hi there'));
+    print join(':', split(//, 'hi there')), "\n";
 
 produces the output 'h:i: :t:h:e:r:e'.
 
@@ -5459,8 +5459,8 @@
 when LIMIT is given and is not 0), regardless of the length of the match.
 For example:
 
-   print join(':', split(//,   'hi there!', -1));
-   print join(':', split(/\W/, 'hi there!', -1));
+   print join(':', split(//,   'hi there!', -1)), "\n";
+   print join(':', split(/\W/, 'hi there!', -1)), "\n";
 
 produce the output 'h:i: :t:h:e:r:e:!:' and 'hi:there:', respectively,
 both with an empty trailing field.

==== //depot/maint-5.10/perl/pod/perlpodspec.pod#2 (text) ====
Index: perl/pod/perlpodspec.pod
--- perl/pod/perlpodspec.pod#1~32694~   2007-12-22 01:23:09.000000000 -0800
+++ perl/pod/perlpodspec.pod    2008-05-10 08:10:17.000000000 -0700
@@ -338,7 +338,7 @@
 before any non-US-ASCII data!), declares that this document is
 encoded in the encoding I<encodingname>, which must be
 an encoding name that L<Encoding> recognizes.  (Encoding's list
-of supported encodings, in L<Encoding::Supported>, is useful here.)
+of supported encodings, in L<Encode::Supported>, is useful here.)
 If the Pod parser cannot decode the declared encoding, it 
 should emit a warning and may abort parsing the document
 altogether.

==== //depot/maint-5.10/perl/pod/perlrun.pod#3 (text) ====
Index: perl/pod/perlrun.pod
--- perl/pod/perlrun.pod#2~33123~       2008-01-30 03:45:08.000000000 -0800
+++ perl/pod/perlrun.pod        2008-05-10 08:10:17.000000000 -0700
@@ -970,6 +970,14 @@
 ASCII text, such as in a mail message.  Leading garbage will be
 discarded until the first line that starts with #! and contains the
 string "perl".  Any meaningful switches on that line will be applied.
+
+All references to line numbers by the program (warnings, errors, ...)
+will treat the #! line as the first line.
+Thus a warning on the 2nd line of the program (which is on the 100th
+line in the file) will be reported as line 2, and not as line 100.
+This can be overridden by using the #line directive.
+(See L<perlsyn/"Plain-Old-Comments-(Not!)">)
+
 If a directory name is specified, Perl will switch to that directory
 before running the program.  The B<-x> switch controls only the
 disposal of leading garbage.  The program must be terminated with

==== //depot/maint-5.10/perl/pod/perltodo.pod#9 (text) ====
Index: perl/pod/perltodo.pod
--- perl/pod/perltodo.pod#8~33731~      2008-04-22 12:31:58.000000000 -0700
+++ perl/pod/perltodo.pod       2008-05-10 08:10:17.000000000 -0700
@@ -157,6 +157,15 @@
 To make a minimal perl distribution, it's useful to look at
 F<t/lib/commonsense.t>.
 
+=head2 Bundle dual life modules in ext/
+
+For maintenance (and branch merging) reasons, it would be useful to move
+some architecture-independent dual-life modules from lib/ to ext/, if this
+has no negative impact on the build of perl itself.
+
+However, we need to make sure that they are still installed in
+architecture-independent directories by C<make install>.
+
 =head2 Improving C<threads::shared>
 
 Investigate whether C<threads::shared> could share aggregates properly with
@@ -542,6 +551,81 @@
 the perl API that comes from writing modules that use XS to interface to
 C.
 
+=head2 safely supporting POSIX SA_SIGINFO
+
+Some years ago Jarkko supplied patches to provide support for the POSIX
+SA_SIGINFO feature in Perl, passing the extra data to the Perl signal handler.
+
+Unfortunately, it only works with "unsafe" signals, because under safe
+signals, by the time Perl gets to run the signal handler, the extra
+information has been lost. Moreover, it's not easy to store it somewhere,
+as you can't call mutexs, or do anything else fancy, from inside a signal
+handler.
+
+So it strikes me that we could provide safe SA_SIGINFO support
+
+=over 4
+
+=item 1
+
+Provide global variables for two file descriptors
+
+=item 2
+
+When the first request is made via C<sigaction> for C<SA_SIGINFO>, create a
+pipe, store the reader in one, the writer in the other
+
+=item 3
+
+In the "safe" signal handler (C<Perl_csighandler()>/C<S_raise_signal()>), if
+the C<siginfo_t> pointer non-C<NULL>, and the writer file handle is open,
+
+=over 8
+
+=item 1
+
+serialise signal number, C<struct siginfo_t> (or at least the parts we care
+about) into a small auto char buff
+
+=item 2
+
+C<write()> that (non-blocking) to the writer fd
+
+=over 12
+
+=item 1
+
+if it writes 100%, flag the signal in a counter of "signals on the pipe" akin
+to the current per-signal-number counts
+
+=item 2
+
+if it writes 0%, assume the pipe is full. Flag the data as lost?
+
+=item 3
+
+if it writes partially, croak a panic, as your OS is broken.
+
+=back
+
+=back
+
+=item 4
+
+in the regular C<PERL_ASYNC_CHECK()> processing, if there are "signals on
+the pipe", read the data out, deserialise, build the Perl structures on
+the stack (code in C<Perl_sighandler()>, the "unsafe" handler), and call as
+usual.
+
+=back
+
+I think that this gets us decent C<SA_SIGINFO> support, without the current 
risk
+of running Perl code inside the signal handler context. (With all the dangers
+of things like C<malloc> corruption that that currently offers us)
+
+For more information see the thread starting with this message:
+http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-03/msg00305.html
+
 =head2 autovivification
 
 Make all autovivification consistent w.r.t LVALUE/RVALUE and strict/no strict;

==== //depot/maint-5.10/perl/pod/perlunicode.pod#3 (text) ====
Index: perl/pod/perlunicode.pod
--- perl/pod/perlunicode.pod#2~33610~   2008-03-30 16:20:46.000000000 -0700
+++ perl/pod/perlunicode.pod    2008-05-10 08:10:17.000000000 -0700
@@ -11,8 +11,8 @@
 from cover to cover, Perl does support many Unicode features.
 
 People who want to learn to use Unicode in Perl, should probably read
-L<the Perl Unicode tutorial|perlunitut> before reading this reference
-document.
+L<the Perl Unicode tutorial, perlunitut|perlunitut>, before reading
+this reference document.
 
 =over 4
 
End of Patch.

Reply via email to